
Natalie Vock opened a merge request two days ago to switch to using Wave32 rather than Wave64 for ray-tracing with GFX11 and newer. For now that amounts to AMD's Radeon RDNA3 and RDNA4 graphics processors.
RDNA1/RDNA2 GPUs were already using Wave32 for ray-tracing shaders but until the code was merged today RDNA3 and RDNA4 were still using Wave64. With Mesa 26.0, all RDNA GPUs now will use Wave32 for ray-tracing shaders. Vock explained in this commit the change and the somewhat small but still notable impact now that the ACO compiler back-end is in better shape:
ACO got a lot better at forming VOPD instructions, and testing feedback seems to point in a slightly positive direction for this.
gfx12 will also start requiring wave32 for dynamic VGPR allocation at some point.
Measurements on navi31:
Cyberpunk 2077:
Difference at 95.0% confidence
1.12333 +/- 0.42876
1.88216% +/- 0.718391%
(Student's t, pooled s = 0.189165)
Black Myth Wukong benchmark:
Difference at 95.0% confidence
4 +/- 1.30862
13.9535% +/- 4.56495%
(Student's t, pooled s = 0.57735)
Portal with RTX:
66.2ms->61.5ms (~7.64% improvement)
Wave32 for 32 threads per clock cycle can offer lower latency and better efficiency for graphics over Wave64 even though RDNA GPUs support both modes.
Great seeing all the ray-tracing improvements that Valve has been working on for the AMD RADV open-source driver for not only benefiting the Steam Deck and upcoming Steam Machine but Radeon Linux graphics at large.