BukeBeyond wrote: > Also, if you're compiling C++26, why is it enabling OpenCL language features? > You can already do this pretty easily with `clang > --target=spirv64-amd-amdhsa` so long as you're okay with using vendor > intrinsic extensions in SPIR-V. That's pretty much what the HIP support for > SPIR-V does anyways.
Because we are targeting just Vulkan, no special installations, or vendor specific libraries are required. We prepare IL for Clspv for Vulkan SPIRV with Physical Addressing. While Clang is slightly modified to lift some artificial limits in OpenCL, Clspv is not modified. We do a custom order Clspv-opt pass. So a current 2Mb single exe can do Real-time raytracing 2.5D UI, with diffuse reflection, refraction, soft shadows, 4k depth, sdf shape, bevel profile generation, sdf cubic beziers, smooth sdf compositing, mapless multi container compositing, custom images, all in C++26 compute in Vulkan. The CPU side works with the same object types, same images, same concepts, and methods. And we call the GPU functions, pass it our object references, just like they are local, and they dispatch automatically, and controls theirs own Parallelization with lambda scanners (some special parallelizations like recursive filters need sequential line sweeps). That is the biggest advantage of having modern C++ on the GPU, the same modern structures and code on both sides. We have been testing this for 2 years, and believe it is the future! Clang has already done most of the work, and we are just building around it. Going forward, we hope changes like in this commit preserve this potential. https://github.com/llvm/llvm-project/pull/115821 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits