diff options
Diffstat (limited to 'src/intel/vulkan/anv_device.c')
-rw-r--r-- | src/intel/vulkan/anv_device.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 3d0198958f3..bb1834e1867 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1277,10 +1277,12 @@ void anv_GetPhysicalDeviceProperties( const uint32_t max_images = pdevice->has_bindless_images ? UINT16_MAX : MAX_IMAGES; - /* The moment we have anything bindless, claim a high per-stage limit */ + /* If we can use bindless for everything, claim a high per-stage limit, + * otherwise use the binding table size, minus the slots reserved for + * render targets and one slot for the descriptor buffer. */ const uint32_t max_per_stage = - pdevice->has_a64_buffer_access ? UINT32_MAX : - MAX_BINDING_TABLE_SIZE - MAX_RTS; + 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; |