radv: use rt wave size in fragment shaders with ray queries

Usually wave64 performs better for fragment shaders,
because LDS sharing for interpolation is better.

But the rt traversal loop divergence is likely high enough to make
wave32 better on GFX10.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37360>
This commit is contained in:
Georg Lehmann
2025-09-14 15:49:41 +02:00
committed by Marge Bot
parent 4a080a8904
commit 14dfc05f83
+4 -1
View File
@@ -392,7 +392,10 @@ radv_shader_choose_subgroup_size(struct radv_device *device, nir_shader *nir,
/* Legacy GS doesn't support wave32. */
wave_size = 64;
} else if (nir->info.stage == MESA_SHADER_FRAGMENT) {
wave_size = pdev->ps_wave_size;
if (nir->info.ray_queries)
wave_size = pdev->rt_wave_size;
else
wave_size = pdev->ps_wave_size;
} else if (mesa_shader_stage_is_rt(nir->info.stage)) {
wave_size = pdev->rt_wave_size;
} else {