[Mesa-dev] [PATCH 3/3] radv: Remove binding buffer count.
Bas Nieuwenhuizen
bas at basnieuwenhuizen.nl
Mon Apr 17 22:35:18 UTC 2017
In cases where it is used it is always 1.
Signed-off-by: Bas Nieuwenhuizen <basni at google.com>
---
src/amd/vulkan/radv_descriptor_set.c | 21 ++++++++++-----------
src/amd/vulkan/radv_descriptor_set.h | 1 -
src/amd/vulkan/radv_private.h | 1 -
3 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/src/amd/vulkan/radv_descriptor_set.c b/src/amd/vulkan/radv_descriptor_set.c
index 6dce5c66937..80088bdf154 100644
--- a/src/amd/vulkan/radv_descriptor_set.c
+++ b/src/amd/vulkan/radv_descriptor_set.c
@@ -77,6 +77,7 @@ VkResult radv_CreateDescriptorSetLayout(
const VkDescriptorSetLayoutBinding *binding = &pCreateInfo->pBindings[j];
uint32_t b = binding->binding;
uint32_t alignment;
+ unsigned binding_buffer_count = 0;
switch (binding->descriptorType) {
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:
@@ -85,7 +86,7 @@ VkResult radv_CreateDescriptorSetLayout(
set_layout->binding[b].dynamic_offset_count = 1;
set_layout->dynamic_shader_stages |= binding->stageFlags;
set_layout->binding[b].size = 0;
- set_layout->binding[b].buffer_count = 1;
+ binding_buffer_count = 1;
alignment = 1;
break;
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:
@@ -93,7 +94,7 @@ VkResult radv_CreateDescriptorSetLayout(
case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:
case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:
set_layout->binding[b].size = 16;
- set_layout->binding[b].buffer_count = 1;
+ binding_buffer_count = 1;
alignment = 16;
break;
case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:
@@ -101,13 +102,13 @@ VkResult radv_CreateDescriptorSetLayout(
case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
/* main descriptor + fmask descriptor */
set_layout->binding[b].size = 64;
- set_layout->binding[b].buffer_count = 1;
+ binding_buffer_count = 1;
alignment = 32;
break;
case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:
/* main descriptor + fmask descriptor + sampler */
set_layout->binding[b].size = 96;
- set_layout->binding[b].buffer_count = 1;
+ binding_buffer_count = 1;
alignment = 32;
break;
case VK_DESCRIPTOR_TYPE_SAMPLER:
@@ -150,7 +151,7 @@ VkResult radv_CreateDescriptorSetLayout(
}
set_layout->size += binding->descriptorCount * set_layout->binding[b].size;
- buffer_count += binding->descriptorCount * set_layout->binding[b].buffer_count;
+ buffer_count += binding->descriptorCount * binding_buffer_count;
dynamic_offset_count += binding->descriptorCount *
set_layout->binding[b].dynamic_offset_count;
set_layout->shader_stages |= binding->stageFlags;
@@ -666,7 +667,7 @@ void radv_update_descriptor_sets(
ptr += binding_layout->offset / 4;
ptr += binding_layout->size * writeset->dstArrayElement / 4;
buffer_list += binding_layout->buffer_offset;
- buffer_list += binding_layout->buffer_count * writeset->dstArrayElement;
+ buffer_list += writeset->dstArrayElement;
for (j = 0; j < writeset->descriptorCount; ++j) {
switch(writeset->descriptorType) {
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:
@@ -717,7 +718,7 @@ void radv_update_descriptor_sets(
break;
}
ptr += binding_layout->size / 4;
- buffer_list += binding_layout->buffer_count;
+ ++buffer_list;
}
}
@@ -761,8 +762,7 @@ VkResult radv_CreateDescriptorUpdateTemplateKHR(VkDevice _device,
const VkDescriptorUpdateTemplateEntryKHR *entry = &pCreateInfo->pDescriptorUpdateEntries[i];
const struct radv_descriptor_set_binding_layout *binding_layout =
set_layout->binding + entry->dstBinding;
- const uint32_t buffer_offset = binding_layout->buffer_offset +
- binding_layout->buffer_count * entry->dstArrayElement;
+ const uint32_t buffer_offset = binding_layout->buffer_offset + entry->dstArrayElement;
const uint32_t *immutable_samplers = NULL;
uint32_t dst_offset;
uint32_t dst_stride;
@@ -802,7 +802,6 @@ VkResult radv_CreateDescriptorUpdateTemplateKHR(VkDevice _device,
.dst_offset = dst_offset,
.dst_stride = dst_stride,
.buffer_offset = buffer_offset,
- .buffer_count = binding_layout->buffer_count,
.has_sampler = !binding_layout->immutable_samplers_offset,
.immutable_samplers = immutable_samplers
};
@@ -886,7 +885,7 @@ void radv_update_descriptor_set_with_template(struct radv_device *device,
}
pSrc += templ->entry[i].src_stride;
pDst += templ->entry[i].dst_stride;
- buffer_list += templ->entry[i].buffer_count;
+ ++buffer_list;
}
}
}
diff --git a/src/amd/vulkan/radv_descriptor_set.h b/src/amd/vulkan/radv_descriptor_set.h
index a9f4bc6497e..8e038a3cf23 100644
--- a/src/amd/vulkan/radv_descriptor_set.h
+++ b/src/amd/vulkan/radv_descriptor_set.h
@@ -40,7 +40,6 @@ struct radv_descriptor_set_binding_layout {
/* redundant with the type, each for a single array element */
uint32_t size;
- uint32_t buffer_count;
uint16_t dynamic_offset_count;
/* Offset in the radv_descriptor_set_layout of the immutable samplers, or 0
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index 3d51dbd2c59..42ece32a8b1 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -589,7 +589,6 @@ struct radv_descriptor_update_template_entry {
uint32_t dst_stride;
uint32_t buffer_offset;
- uint32_t buffer_count;
/* Only valid for combined image samplers and samplers */
uint16_t has_sampler;
--
2.12.2
More information about the mesa-dev
mailing list