radv: Properly use Wave64 for non-NGG GS and copy shader.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Sat, 3 Aug 2019 23:29:53 +0000 (01:29 +0200)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Mon, 12 Aug 2019 13:32:18 +0000 (13:32 +0000)
Fixes: 8a86908e9a7 "radv/gfx10: add Wave32 support for vertex, tessellation and geometry shaders"
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_shader.c

index ed62bf80543d24358e894e413bf369934ddbf718..c74bfa2e2818f457b1c4604d14e17e05d33822a9 100644 (file)
@@ -1127,7 +1127,10 @@ shader_variant_compile(struct radv_device *device,
        options->tess_offchip_block_dw_size = device->tess_offchip_block_dw_size;
        options->address32_hi = device->physical_device->rad_info.address32_hi;
 
-       if (stage == MESA_SHADER_COMPUTE)
+       if ((stage == MESA_SHADER_GEOMETRY && !options->key.vs_common_out.as_ngg) ||
+           gs_copy_shader)
+               options->wave_size = 64;
+       else if (stage == MESA_SHADER_COMPUTE)
                options->wave_size = device->physical_device->cs_wave_size;
        else if (stage == MESA_SHADER_FRAGMENT)
                options->wave_size = device->physical_device->ps_wave_size;