Source

Branch

1/ @Dispatch_Graph

@SebAaltonen

Very nice. I’m surprised you didn’t talk about raytracing at all in your post/talk though! I think there’s quite a few issues with the RT APIs as we speak…

Like Vulkan/Metal not exposing AS memory, so you can’t store BLASes on disk, no indirect TLAS build…

2/ @Dispatch_Graph

@SebAaltonen

One thing I’d love to see in a new shading language and API is the concept of shader function pointers — they respect a certain signature (return type, parameters), and instead of SBT madness, you can assign a BLAS instance a pointer to a GPU function

3/ @Dispatch_Graph

@SebAaltonen

Something like this would be awesome. Would solve the whole material classification fiasco you need to go through with V-Buffer, it would eliminate the need for SBTs/Uber-shader approaches for RT reflections/ReSTIR etc. Shader graph/custom materials could work for raster AND RT

4/ @GaySpaceAngel

@Dispatch_Graph @SebAaltonen

Something very similar to this API shape exists with Shader Subroutine Linkage (GL)/Dynamic Shader Linkage (D3D11). Unfortunately I think the function pointer has to be uniform so it’s an almost worthless feature in practice.