anv: Expose CS workgroup sizes based on a maximum of 64 threads
authorJason Ekstrand <jason@jlekstrand.net>
Sat, 25 Apr 2020 00:07:44 +0000 (19:07 -0500)
committerMarge Bot <eric+marge@anholt.net>
Tue, 28 Apr 2020 14:51:08 +0000 (14:51 +0000)
Otherwise, we'll hit asserts in brw_compile_cs.

Fixes: cf12faef614ab "intel/compiler: Restrict cs_threads to 64"
Closes: #2835
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4746>

src/intel/vulkan/anv_device.c

index 7d5b3a2a839ed25d4867c741b89930219214f5d7..c5c56fbc20f583b1e8a279e946385a6558536e64 100644 (file)
@@ -1412,7 +1412,8 @@ void anv_GetPhysicalDeviceProperties(
       pdevice->has_bindless_images && pdevice->has_a64_buffer_access
       ? UINT32_MAX : MAX_BINDING_TABLE_SIZE - MAX_RTS - 1;
 
-   const uint32_t max_workgroup_size = 32 * devinfo->max_cs_threads;
+   /* Limit max_threads to 64 for the GPGPU_WALKER command */
+   const uint32_t max_workgroup_size = 32 * MIN2(64, devinfo->max_cs_threads);
 
    VkSampleCountFlags sample_counts =
       isl_device_get_sample_counts(&pdevice->isl_dev);