v3dv/device: set DescriptorUpdateAfterBind limits

We were exposing them as zero, as based on just the name, we assumed
that it was about the descriptors using the
VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit.

But from spec, that limit takes into account descriptors created *with
or without*, so for example:

  "maxPerStageDescriptorUpdateAfterBindUniformBuffers is similar to
   maxPerStageDescriptorUniformBuffers but counts descriptors from
   descriptor sets created with or without the
   VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit
   set."

As we don't support the feature, those limits are the same of the
existing without the DescriptorUpdateAfterBind.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29430>
This commit is contained in:
Alejandro Piñeiro 2024-05-28 13:05:20 +02:00 committed by Marge Bot
parent d6ac631c43
commit 03554f18b3

View file

@ -1088,6 +1088,27 @@ get_device_properties(const struct v3dv_physical_device *device,
.shaderRoundingModeRTZFloat32 = false,
.shaderRoundingModeRTZFloat64 = false,
.maxPerStageDescriptorUpdateAfterBindSamplers = V3D_MAX_TEXTURE_SAMPLERS,
.maxPerStageDescriptorUpdateAfterBindUniformBuffers = MAX_UNIFORM_BUFFERS,
.maxPerStageDescriptorUpdateAfterBindStorageBuffers = MAX_STORAGE_BUFFERS,
.maxPerStageDescriptorUpdateAfterBindSampledImages = MAX_SAMPLED_IMAGES,
.maxPerStageDescriptorUpdateAfterBindStorageImages = MAX_STORAGE_IMAGES,
.maxPerStageDescriptorUpdateAfterBindInputAttachments = MAX_INPUT_ATTACHMENTS,
.maxPerStageUpdateAfterBindResources = max_per_stage_resources,
.maxDescriptorSetUpdateAfterBindSamplers =
V3DV_SUPPORTED_SHADER_STAGES * V3D_MAX_TEXTURE_SAMPLERS,
.maxDescriptorSetUpdateAfterBindUniformBuffers =
V3DV_SUPPORTED_SHADER_STAGES * MAX_UNIFORM_BUFFERS,
.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = MAX_DYNAMIC_UNIFORM_BUFFERS,
.maxDescriptorSetUpdateAfterBindStorageBuffers =
V3DV_SUPPORTED_SHADER_STAGES * MAX_STORAGE_BUFFERS,
.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = MAX_DYNAMIC_UNIFORM_BUFFERS,
.maxDescriptorSetUpdateAfterBindSampledImages =
V3DV_SUPPORTED_SHADER_STAGES * MAX_SAMPLED_IMAGES,
.maxDescriptorSetUpdateAfterBindStorageImages =
V3DV_SUPPORTED_SHADER_STAGES * MAX_STORAGE_IMAGES,
.maxDescriptorSetUpdateAfterBindInputAttachments = MAX_INPUT_ATTACHMENTS,
/* V3D doesn't support min/max filtering */
.filterMinmaxSingleComponentFormats = false,
.filterMinmaxImageComponentMapping = false,