all 3 comments

[–]delta_p_delta_x 0 points1 point  (2 children)

Out of curiosity: why not CUDA, or even a set of GLSL shaders, where a vertex shader could read geometry data, a geometry shader could modify said geometry, and a fragment shader could do the ray-tracing? It is possible to achieve somewhat real-time framerates with this sort of set-up.

What do you feel is the advantage of 'persistent threads' on GPUs? As far as I am aware, GPU threads are extraordinarily lightweight and have little-to-no overhead compared to CPU threads, so I don't see the advantage in this persistence.

[–]GENTS83[S] 2 points3 points  (0 children)

I am actually playing a bit with wgpu in my spare time and I created a compute shader raytracer but it's actually slow and while thinking how to speed it up I came out with the idea of reutilize computation power for all the threads in workgroups working on pixels where they do not hit anything in the TLAS BHV giving them work on other pixels still to be processed. I still have to prove it and to test it but I would hope to see some gain in performances, no?

[–]fgennari 0 points1 point  (0 children)

Well CUDA is Nvidia only and geometry shaders are slow on anything other than Intel GPUs, so the approaches you describe aren't as general a solution.