Prior to supporting VK_EXT_descriptor_indexing all of our descriptor limits where below 64k which fitted a uint16_t. Now all of those can go up to 2^20 entries so we need 32bits indexes to keep track of them.
This change leaves the dynamic indexes at 16bits. We could arguably bump them too, up to the reviewer's taste.
###
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index 35bc5ba0cdf..44ce29127f8 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -1834,16 +1834,16 @@ struct anv_descriptor_set_binding_layout {
/* Number of array elements in this binding (or size in bytes for inline
* uniform data)
*/
- uint16_t array_size;
+ uint32_t array_size;
/* Index into the flattend descriptor set */
- uint16_t descriptor_index;
+ uint32_t descriptor_index;
/* Index into the dynamic state array for a dynamic buffer */
int16_t dynamic_offset_index;
/* Index into the descriptor set buffer views */
- int16_t buffer_view_index;
+ int32_t buffer_view_index;
/* Offset into the descriptor buffer where this descriptor lives */
uint32_t descriptor_offset;
@@ -1872,16 +1872,16 @@ struct anv_descriptor_set_layout {
uint32_t ref_cnt;
/* Number of bindings in this descriptor set */
- uint16_t binding_count;
+ uint32_t binding_count;
/* Total number of descriptors */
- uint16_t descriptor_count;
+ uint32_t descriptor_count;
/* Shader stages affected by this descriptor set */
uint16_t shader_stages;
/* Number of buffer views in this descriptor set */
- uint16_t buffer_view_count;
+ uint32_t buffer_view_count;
/* Number of dynamic offsets used by this descriptor set */
uint16_t dynamic_offset_count;
23c4b59b46e anv: bump internal descriptor index fields to 32bits
src/intel/vulkan/anv_private.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
Upstream: cgit.freedesktop.org