Delphi tools
-
DWScript MCP server samples
Recently added a small DWScript-MCP repository with MCP (Model Context Protocol) samples for DWScript. This showcases how you can deploy a custom MCP server with basically nothing else than the DWSWebServer.exe. That’s less than 8 MB, a couple small script files and no dependencies… and it can even run under Linux with Wine! Two tools…
The post DWScript MCP server samples first appeared on DelphiTools. -
Textures in FMX Vertex Shaders
Just before Christmas, the FMXutils DX11 driver received two additions: texture binding support in vertex shaders and GPU device selection. Vertex shader texture binding enables advanced techniques including displacement mapping and GPU-side heightmaps, which were previously not possible with FMX. The RegisterDX11ContextU function now includes a new parameter for GPU selection in FMX, allowing users…
The post Textures in FMX Vertex Shaders first appeared on DelphiTools. -
SamplingProfiler 24.11.26 update
A new version 24.11.26 of SamplingProfiler is available. The only significant change in this version is the support for sampling code that is in “.inc” files in addition to regular “.pas” unit files. The file name is now actually tracked from the map file, while previously it was obtained by appending “.pas” to the unit…
The post SamplingProfiler 24.11.26 update first appeared on DelphiTools. -
GPU Computing with Delphi + FMX + WebGPU
A couple weeks I added to FMXutils repository a conversion of the “Compute Boids” flocking demo. This builds upon the WebGPU driver for FireMonkey, but uses a dedicated class where the Compute & rendering shaders are hosted. Two ping-pong buffers are used to store and updated particle data, which are used to mimic the flocking…
The post GPU Computing with Delphi + FMX + WebGPU first appeared on DelphiTools. -
The Three Unities of Development
There are many patterns, principles, and development methodologies out there that are evangelized. They can have fancy names, some are old, some are new. But they all boil down to just three “Unities”, which have nothing in particular to do with computing or development, and all to do with those that are doing development and…
The post The Three Unities of Development first appeared on DelphiTools. -
Supporting GPU Buffers for FMX
The FMXUtils repository now implements support for GPU Buffers for Delphi FMX (with DX11 or WebGPU). Adding GPU buffers required some trickery and hackery, but the speedups can be massive: 2x to 3x speedups on low-end integrated GPUs, with reports of 20x (twenty times) speedups on discrete GPUs! I tried to make the support…
The post Supporting GPU Buffers for FMX first appeared on DelphiTools. -
Announcing Delphi headers for WebGPU
Just a quick post to announce the Delphi-WebGPU repository. What ? Why ? To take the words from webgpu-headers: While WebGPU is a JavaScript API made for the Web, it is a good tradeoff of ergonomic, efficient and portable graphics API. Almost all of its concepts are not specific to the Web platform and the…
The post Announcing Delphi headers for WebGPU first appeared on DelphiTools. -
Faster 3D Point Cloud with FMX
In the previous article on 3D point cloud for FMX, systematic memory copy when drawing primitives came out as #1 bottleneck in FMX performance when rendering millions of points. But was it just a false positive ? I hacked FMXU.Context.DX11 to eliminate the memory copies… in the most hacky way, don’t ask for code it’s…
The post Faster 3D Point Cloud with FMX first appeared on DelphiTools. -
Exploring 3D Point Clouds for FMX
With Delphi 12.Community Edition released not too long ago, it was an opportunity to test run what’s possible with FMX on the 3D side. And while Delphi FireMonkey has 3D support, it’s not really a core feature. For a test run, the simplest of all 3D entities, a point cloud can serve as a decent…
The post Exploring 3D Point Clouds for FMX first appeared on DelphiTools. -
Turning lowers to uppers without a branch
In another comment of the Curiouser Case, Arnaud Bouchez pointed to an interesting optimization that is use in mORMot‘s UpperCopy255Buf function: a branchless parallel upper case conversion. At the core of that implementation are the following lines of code c := src[i]; d := c or _80; dest[i] := c - ((d - _61) and…
The post Turning lowers to uppers without a branch first appeared on DelphiTools.