Experimental RADV Code Allows Vulkan Ray-Tracing On Older AMD GPUs
AMD currently just supports Vulkan ray-tracing with their Radeon RX 6000 series graphics cards while now there is independent work being done on Mesa's unofficial Radeon Vulkan driver (RADV) to allow ray-tracing to work with older generations of GPUs like Vega and Polaris.
Joshua Ashton who is known for his work on VKD3D-Proton, DXVK/D9VK, and related projects while working under contract for Valve has been experimenting with bringing RADV Vulkan ray-tracing to pre-RDNA2 GPUs.
While RDNA2 GPUs offer hardware acceleration around BVH ray intersection tests, there isn't much more that is actually new silicon for ray-tracing with these latest consumer GPUs. But the ray intersection tests can also be handled as a SPIR-V shader for any GPU as well, so that is what Ashton has been experimenting with.
With a lot of work, he does have some RADV experimental code working that besides using the branched code also requires some environment variables be set (RADV_PERFTEST=rt RADV_DEBUG=nocache). He has some very basic Vulkan ray-tracing demos now rendering for Polaris/Vega graphics processors.
RADV in general still needs more Vulkan ray-tracing wokr before it can handle more advanced Vulkan RT demos or games like Quake II RTX. There is also the in-progress VKD3D-Proton support for DirectX Ray-Tracing over Vulkan Ray-Tracing, which will be another target to experiment with in time.
So there's more work ahead before this RADV code would really be usable or ready for mainlining to entertain Linux gamers on older graphics cards. It also remains to be seen how this shader-based implementation will perform if it will even be good enough for handling any ray-traced games.
In any case, see Joshua's blog for more details on this ongoing effort for Vulkan ray-tracing on older generations of AMD GPUs.
Joshua Ashton who is known for his work on VKD3D-Proton, DXVK/D9VK, and related projects while working under contract for Valve has been experimenting with bringing RADV Vulkan ray-tracing to pre-RDNA2 GPUs.
While RDNA2 GPUs offer hardware acceleration around BVH ray intersection tests, there isn't much more that is actually new silicon for ray-tracing with these latest consumer GPUs. But the ray intersection tests can also be handled as a SPIR-V shader for any GPU as well, so that is what Ashton has been experimenting with.
With a lot of work, he does have some RADV experimental code working that besides using the branched code also requires some environment variables be set (RADV_PERFTEST=rt RADV_DEBUG=nocache). He has some very basic Vulkan ray-tracing demos now rendering for Polaris/Vega graphics processors.
RADV in general still needs more Vulkan ray-tracing wokr before it can handle more advanced Vulkan RT demos or games like Quake II RTX. There is also the in-progress VKD3D-Proton support for DirectX Ray-Tracing over Vulkan Ray-Tracing, which will be another target to experiment with in time.
So there's more work ahead before this RADV code would really be usable or ready for mainlining to entertain Linux gamers on older graphics cards. It also remains to be seen how this shader-based implementation will perform if it will even be good enough for handling any ray-traced games.
In any case, see Joshua's blog for more details on this ongoing effort for Vulkan ray-tracing on older generations of AMD GPUs.
36 Comments