From b4852c4efbd3bf71edde97d202927dc8284e78a2 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Wed, 24 May 2023 10:41:40 -0700 Subject: [PATCH] dzn: Partial revert of 8887852d Turns out there was a good reason for having both buffer count and desc_count. They served different purposes. Fixes: 8887852d ("dzn: Add some docs around descriptor sets and remove redundant/unused data") Part-of: --- src/microsoft/vulkan/dzn_descriptor_set.c | 8 +++++--- src/microsoft/vulkan/dzn_private.h | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/microsoft/vulkan/dzn_descriptor_set.c b/src/microsoft/vulkan/dzn_descriptor_set.c index 15eaa109013..792222d5344 100644 --- a/src/microsoft/vulkan/dzn_descriptor_set.c +++ b/src/microsoft/vulkan/dzn_descriptor_set.c @@ -421,8 +421,9 @@ dzn_descriptor_set_layout_create(struct dzn_device *device, if (is_dynamic) { range->OffsetInDescriptorsFromTableStart = set_layout->dynamic_buffers.range_offset + - set_layout->dynamic_buffers.count; + set_layout->dynamic_buffers.desc_count; set_layout->dynamic_buffers.count += range->NumDescriptors; + set_layout->dynamic_buffers.desc_count += range->NumDescriptors; } else { range->OffsetInDescriptorsFromTableStart = set_layout->range_desc_count[type]; if (!binfos[binding].variable_size) @@ -440,7 +441,8 @@ dzn_descriptor_set_layout_create(struct dzn_device *device, if (is_dynamic) { range->OffsetInDescriptorsFromTableStart = set_layout->dynamic_buffers.range_offset + - set_layout->dynamic_buffers.count; + set_layout->dynamic_buffers.desc_count; + set_layout->dynamic_buffers.desc_count += range->NumDescriptors; } else { range->OffsetInDescriptorsFromTableStart = set_layout->range_desc_count[type]; set_layout->range_desc_count[type] += range->NumDescriptors; @@ -679,7 +681,7 @@ dzn_pipeline_layout_create(struct dzn_device *device, } if (!device->bindless) - layout->desc_count[D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV] += set_layout->dynamic_buffers.count; + layout->desc_count[D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV] += set_layout->dynamic_buffers.desc_count; dynamic_buffer_base += set_layout->dynamic_buffers.count; for (uint32_t o = 0, elem = 0; o < set_layout->dynamic_buffers.count; o++, elem++) { diff --git a/src/microsoft/vulkan/dzn_private.h b/src/microsoft/vulkan/dzn_private.h index 03764d524e2..3e4777bf101 100644 --- a/src/microsoft/vulkan/dzn_private.h +++ b/src/microsoft/vulkan/dzn_private.h @@ -769,6 +769,7 @@ struct dzn_descriptor_set_layout { struct { uint32_t bindings[MAX_DYNAMIC_BUFFERS]; uint32_t count; + uint32_t desc_count; uint32_t range_offset; } dynamic_buffers; uint32_t buffer_count;