Is there a way to increase the max recursion depth of my GPU?


I’m currently experimenting with ray tracing using RX 7800XT, and i have found out the maxRayRecursionDepth of this device is only 1.

Is there any way to change this value, hopefully up to 31 just like the NVIDIA GPUs?

I’m almost certain it is impossible because that’s how the GPU is made in the first place, and Vulkan does point out that maxPipelineRayRecursionDepth must be less than or equal to [VkPhysicalDeviceRayTracingPipelinePropertiesKHR] in their documentation, but i’m asking just in case someone has any information about this.

Also, does anyone know if there is a Radeon GPU with a max recursion depth of 31 or more?

I’ve noticed RX7700S might have the value of 31 according to a random benchmark, but I’m not sure if the information is legit.

These values are what the driver says it supports, so unless there is some driver setting that affects this only a driver update could change the value (is your graphics driver current?).
There are AMD devices on vulkan.gpuinfo.org that list a maxRayRecursionDepth of 31. It looks like those entries are from the Linux drivers, so it doesn’t look like this is necessarily a hardware limit.

Sorry for the late reply.

Thanks to the information you’ve provided, I found out that maxRayRecursionDepth of 31 with RX7800 XT is only obtainable with some of the latest versions of Linux. I was getting a value of 1 because I was trying it on Windows 10.

However, it seems that tracing the rays with more than 2 recursion depth with Vulkan isn’t working properly. For example, this program is supposed to print out the same ID (prd: xxx) with depth increasing by 1. So, in this case, the next line of “prd: 0, ~~~, depth: 1” should be “prd: 0, ~~~, depth: 2”, but the actual printed value is going bonkers. The exact same program runs totally fine in NVIDIA GPUs.

I have no idea why this is happening, and trying to figure out why.

Anyways, thanks for the reply, it was really helpful.