From 0930936a6ebbc7e698b716377e838b2998c59279 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 6 Jun 2022 13:12:09 +1000 Subject: [PATCH] nvk: reindent descriptor sets to mesa std. Part-of: --- src/nouveau/vulkan/nvk_descriptor_set.c | 218 ++++++++++++++++---------------- src/nouveau/vulkan/nvk_descriptor_set.h | 16 +-- 2 files changed, 117 insertions(+), 117 deletions(-) diff --git a/src/nouveau/vulkan/nvk_descriptor_set.c b/src/nouveau/vulkan/nvk_descriptor_set.c index d11444e..73b4bd7 100644 --- a/src/nouveau/vulkan/nvk_descriptor_set.c +++ b/src/nouveau/vulkan/nvk_descriptor_set.c @@ -7,159 +7,159 @@ static void *desc_ubo_data(struct nvk_descriptor_set *set, uint32_t binding, uint32_t elem) { - const struct nvk_descriptor_set_binding_layout *binding_layout = + const struct nvk_descriptor_set_binding_layout *binding_layout = &set->layout->binding[binding]; - return (char *)set->map + binding_layout->offset + - elem * binding_layout->stride; + return (char *)set->map + binding_layout->offset + + elem * binding_layout->stride; } static void write_sampler_desc(struct nvk_descriptor_set *set, const VkDescriptorImageInfo *const info, uint32_t binding, uint32_t elem) { - const struct nvk_descriptor_set_binding_layout *binding_layout = + const struct nvk_descriptor_set_binding_layout *binding_layout = &set->layout->binding[binding]; - if (binding_layout->immutable_samplers) - return; + if (binding_layout->immutable_samplers) + return; - VK_FROM_HANDLE(nvk_sampler, sampler, info->sampler); + VK_FROM_HANDLE(nvk_sampler, sampler, info->sampler); - struct nvk_image_descriptor *desc = desc_ubo_data(set, binding, elem); - assert(sampler->desc_index < (1 << 12)); - desc->sampler_index = sampler->desc_index; + struct nvk_image_descriptor *desc = desc_ubo_data(set, binding, elem); + assert(sampler->desc_index < (1 << 12)); + desc->sampler_index = sampler->desc_index; } static void write_image_view_desc(struct nvk_descriptor_set *set, const VkDescriptorImageInfo *const info, uint32_t binding, uint32_t elem) { - VK_FROM_HANDLE(nvk_image_view, view, info->imageView); + VK_FROM_HANDLE(nvk_image_view, view, info->imageView); - struct nvk_image_descriptor *desc = desc_ubo_data(set, binding, elem); - assert(view->desc_index < (1 << 20)); - desc->image_index = view->desc_index; + struct nvk_image_descriptor *desc = desc_ubo_data(set, binding, elem); + assert(view->desc_index < (1 << 20)); + desc->image_index = view->desc_index; } static void write_buffer_desc(struct nvk_descriptor_set *set, const VkDescriptorBufferInfo *const info, uint32_t binding, uint32_t elem) { - VK_FROM_HANDLE(nvk_buffer, buffer, info->buffer); + VK_FROM_HANDLE(nvk_buffer, buffer, info->buffer); - struct nvk_buffer_address *desc = desc_ubo_data(set, binding, elem); - *desc = (struct nvk_buffer_address){ + struct nvk_buffer_address *desc = desc_ubo_data(set, binding, elem); + *desc = (struct nvk_buffer_address){ .base_addr = nvk_buffer_address(buffer) + info->offset, .size = vk_buffer_range(&buffer->vk, info->offset, info->range), - }; + }; } static void write_buffer_view_desc(struct nvk_descriptor_set *set, const VkBufferView bufferView, uint32_t binding, uint32_t elem) { - /* TODO */ + /* TODO */ } static void write_inline_uniform_data(struct nvk_descriptor_set *set, const VkWriteDescriptorSetInlineUniformBlock *info, uint32_t binding, uint32_t offset) { - memcpy((char *)desc_ubo_data(set, binding, 0) + offset, info->pData, - info->dataSize); + memcpy((char *)desc_ubo_data(set, binding, 0) + offset, info->pData, + info->dataSize); } VKAPI_ATTR void VKAPI_CALL nvk_UpdateDescriptorSets( - VkDevice device, uint32_t descriptorWriteCount, - const VkWriteDescriptorSet *pDescriptorWrites, uint32_t descriptorCopyCount, - const VkCopyDescriptorSet *pDescriptorCopies) { - for (uint32_t w = 0; w < descriptorWriteCount; w++) { - const VkWriteDescriptorSet *write = &pDescriptorWrites[w]; - VK_FROM_HANDLE(nvk_descriptor_set, set, write->dstSet); - - switch (write->descriptorType) { - case VK_DESCRIPTOR_TYPE_SAMPLER: - for (uint32_t j = 0; j < write->descriptorCount; j++) { - write_sampler_desc(set, write->pImageInfo + j, write->dstBinding, - write->dstArrayElement + j); - } - break; - - case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER: - for (uint32_t j = 0; j < write->descriptorCount; j++) { - write_sampler_desc(set, write->pImageInfo + j, write->dstBinding, - write->dstArrayElement + j); - write_image_view_desc(set, write->pImageInfo + j, write->dstBinding, - write->dstArrayElement + j); - } - break; - - case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE: - case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE: - case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT: - for (uint32_t j = 0; j < write->descriptorCount; j++) { - write_image_view_desc(set, write->pImageInfo + j, write->dstBinding, + VkDevice device, uint32_t descriptorWriteCount, + const VkWriteDescriptorSet *pDescriptorWrites, uint32_t descriptorCopyCount, + const VkCopyDescriptorSet *pDescriptorCopies) { + for (uint32_t w = 0; w < descriptorWriteCount; w++) { + const VkWriteDescriptorSet *write = &pDescriptorWrites[w]; + VK_FROM_HANDLE(nvk_descriptor_set, set, write->dstSet); + + switch (write->descriptorType) { + case VK_DESCRIPTOR_TYPE_SAMPLER: + for (uint32_t j = 0; j < write->descriptorCount; j++) { + write_sampler_desc(set, write->pImageInfo + j, write->dstBinding, + write->dstArrayElement + j); + } + break; + + case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER: + for (uint32_t j = 0; j < write->descriptorCount; j++) { + write_sampler_desc(set, write->pImageInfo + j, write->dstBinding, + write->dstArrayElement + j); + write_image_view_desc(set, write->pImageInfo + j, write->dstBinding, + write->dstArrayElement + j); + } + break; + + case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE: + case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE: + case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT: + for (uint32_t j = 0; j < write->descriptorCount; j++) { + write_image_view_desc(set, write->pImageInfo + j, write->dstBinding, + write->dstArrayElement + j); + } + break; + + case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: + case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: + for (uint32_t j = 0; j < write->descriptorCount; j++) { + write_buffer_view_desc(set, write->pTexelBufferView[j], + write->dstBinding, write->dstArrayElement + j); + } + break; + + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: + case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER: + for (uint32_t j = 0; j < write->descriptorCount; j++) { + write_buffer_desc(set, write->pBufferInfo + j, write->dstBinding, write->dstArrayElement + j); + } + break; + + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: + case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC: + unreachable("Dynamic buffers not yet supported"); + + case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK: { + const VkWriteDescriptorSetInlineUniformBlock *write_inline = + vk_find_struct_const(write->pNext, + WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK); + assert(write_inline->dataSize == write->descriptorCount); + write_inline_uniform_data(set, write_inline, write->dstBinding, + write->dstArrayElement); + break; } - break; - - case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER: - case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: - for (uint32_t j = 0; j < write->descriptorCount; j++) { - write_buffer_view_desc(set, write->pTexelBufferView[j], - write->dstBinding, write->dstArrayElement + j); - } - break; - case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: - case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER: - for (uint32_t j = 0; j < write->descriptorCount; j++) { - write_buffer_desc(set, write->pBufferInfo + j, write->dstBinding, - write->dstArrayElement + j); + default: + break; } - break; - - case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: - case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC: - unreachable("Dynamic buffers not yet supported"); - - case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK: { - const VkWriteDescriptorSetInlineUniformBlock *write_inline = - vk_find_struct_const(write->pNext, - WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK); - assert(write_inline->dataSize == write->descriptorCount); - write_inline_uniform_data(set, write_inline, write->dstBinding, - write->dstArrayElement); - break; - } - - default: - break; - } - } - - for (uint32_t i = 0; i < descriptorCopyCount; i++) { - const VkCopyDescriptorSet *copy = &pDescriptorCopies[i]; - VK_FROM_HANDLE(nvk_descriptor_set, src, copy->srcSet); - VK_FROM_HANDLE(nvk_descriptor_set, dst, copy->dstSet); - - const struct nvk_descriptor_set_binding_layout *src_binding_layout = - &src->layout->binding[copy->srcBinding]; - const struct nvk_descriptor_set_binding_layout *dst_binding_layout = - &dst->layout->binding[copy->dstBinding]; - - assert(dst_binding_layout->type == src_binding_layout->type); - - if (dst_binding_layout->stride > 0 && src_binding_layout->stride > 0) { - for (uint32_t j = 0; j < copy->descriptorCount; j++) { - memcpy(desc_ubo_data(dst, copy->dstBinding, copy->dstArrayElement + j), - desc_ubo_data(src, copy->srcBinding, copy->srcArrayElement + j), - MIN2(dst_binding_layout->stride, src_binding_layout->stride)); + } + + for (uint32_t i = 0; i < descriptorCopyCount; i++) { + const VkCopyDescriptorSet *copy = &pDescriptorCopies[i]; + VK_FROM_HANDLE(nvk_descriptor_set, src, copy->srcSet); + VK_FROM_HANDLE(nvk_descriptor_set, dst, copy->dstSet); + + const struct nvk_descriptor_set_binding_layout *src_binding_layout = + &src->layout->binding[copy->srcBinding]; + const struct nvk_descriptor_set_binding_layout *dst_binding_layout = + &dst->layout->binding[copy->dstBinding]; + + assert(dst_binding_layout->type == src_binding_layout->type); + + if (dst_binding_layout->stride > 0 && src_binding_layout->stride > 0) { + for (uint32_t j = 0; j < copy->descriptorCount; j++) { + memcpy(desc_ubo_data(dst, copy->dstBinding, copy->dstArrayElement + j), + desc_ubo_data(src, copy->srcBinding, copy->srcArrayElement + j), + MIN2(dst_binding_layout->stride, src_binding_layout->stride)); + } } - } - switch (src_binding_layout->type) { - /* Insert any special copy stuff here */ + switch (src_binding_layout->type) { + /* Insert any special copy stuff here */ - default: - break; - } - } + default: + break; + } + } } diff --git a/src/nouveau/vulkan/nvk_descriptor_set.h b/src/nouveau/vulkan/nvk_descriptor_set.h index ad76ae1..5fe38c5 100644 --- a/src/nouveau/vulkan/nvk_descriptor_set.h +++ b/src/nouveau/vulkan/nvk_descriptor_set.h @@ -8,23 +8,23 @@ struct nvk_descriptor_set_layout; struct nvk_image_descriptor { - unsigned image_index:20; - unsigned sampler_index:12; + unsigned image_index:20; + unsigned sampler_index:12; }; /* This has to match nir_address_format_64bit_bounded_global */ struct nvk_buffer_address { - uint64_t base_addr; - uint32_t size; - uint32_t zero; /* Must be zero! */ + uint64_t base_addr; + uint32_t size; + uint32_t zero; /* Must be zero! */ }; struct nvk_descriptor_set { - struct vk_object_base base; + struct vk_object_base base; - struct nvk_descriptor_set_layout *layout; + struct nvk_descriptor_set_layout *layout; - void *map; + void *map; }; VK_DEFINE_HANDLE_CASTS(nvk_descriptor_set, base, VkDescriptorSet, -- 2.7.4