diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index 44113d91410..5e7e5dd9f19 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -527,7 +527,8 @@ iris_get_compute_param(struct pipe_screen *pscreen, struct iris_screen *screen = (struct iris_screen *)pscreen; const struct intel_device_info *devinfo = &screen->devinfo; - const uint32_t max_invocations = 32 * devinfo->max_cs_workgroup_threads; + const uint32_t max_invocations = + MIN2(1024, 32 * devinfo->max_cs_workgroup_threads); #define RET(x) do { \ if (ret) \ diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 0c903deb6a8..af6e261cc9e 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1817,7 +1817,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_workgroup_threads; + const uint32_t max_workgroup_size = + MIN2(1024, 32 * devinfo->max_cs_workgroup_threads); VkSampleCountFlags sample_counts = isl_device_get_sample_counts(&pdevice->isl_dev);