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

Reply via email to