The Mischievous Case-Insensitive Hash
In a comment to the previous article on a case insensitive hash code, Stefan Glienke pointed to an approach used in Spring4D’s comparers, which is a delightful hack. Rather than converting the string...
View ArticleTurning 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...
View ArticleExploring 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...
View ArticleFaster 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...
View ArticleAnnouncing 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,...
View ArticleSupporting 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...
View ArticleThe 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”,...
View ArticleGPU 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 &...
View ArticleSamplingProfiler 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....
View ArticleTextures 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...
View Article