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 as easy and backward compatible as possible, while dancing around missing private fields and non-virtual methods. (more…)

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 stress test.

Point Clouds are now ubiquitous with the advent of 3D capture devices, which go from LIDAR to RGB-D cameras and all kinds of AI augmented approaches. So there is a plethora of 3D point cloud datasets out there.

(more…)

The Curiouser and Curiouser Case of Case-Insensitive Tweaks

Recent commits to the DWScript repository doubled the compiler performance when compiling many small scripts, like happens in the unit tests suites.

This started from a first profiling run where the memory allocations around the UnicodeLowerCase function came out as top bottlenecks.

Thing is, Pascal being a case-insensitive language, there are lots of case-insensitive comparisons, lookups, searches and hashes, and turns out a key hash code was computed with code like

(more…)

DWScript update for Delphi 12

DWScript has been updated for Delphi 12 support, there are only minor changes required and they are in the DWScript repository.

On a side note, the Delphi 12 IDE definitely feels more snappy when navigating code or invoking code insight (ctrl+space) on large projects (more than 2 MLOC), which is nice!