nvk: Re-format pipeline layouts

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
This commit is contained in:
Faith Ekstrand
2023-01-30 20:11:47 -06:00
committed by Marge Bot
parent e9fbac9002
commit f57a3ef7f3
2 changed files with 43 additions and 40 deletions
+37 -34
View File
@@ -5,51 +5,54 @@
#include "util/mesa-sha1.h"
VKAPI_ATTR VkResult VKAPI_CALL nvk_CreatePipelineLayout(
VkDevice _device, const VkPipelineLayoutCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator,
VkPipelineLayout *pPipelineLayout) {
VK_FROM_HANDLE(nvk_device, device, _device);
struct nvk_pipeline_layout *layout;
VKAPI_ATTR VkResult VKAPI_CALL
nvk_CreatePipelineLayout(VkDevice _device,
const VkPipelineLayoutCreateInfo *pCreateInfo,
const VkAllocationCallbacks *pAllocator,
VkPipelineLayout *pPipelineLayout)
{
VK_FROM_HANDLE(nvk_device, device, _device);
struct nvk_pipeline_layout *layout;
layout = vk_object_alloc(&device->vk, pAllocator, sizeof(*layout),
VK_OBJECT_TYPE_PIPELINE_LAYOUT);
if (layout == NULL)
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
layout = vk_object_alloc(&device->vk, pAllocator, sizeof(*layout),
VK_OBJECT_TYPE_PIPELINE_LAYOUT);
if (layout == NULL)
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
layout->num_sets = pCreateInfo->setLayoutCount;
layout->num_sets = pCreateInfo->setLayoutCount;
for (uint32_t s = 0; s < pCreateInfo->setLayoutCount; s++) {
VK_FROM_HANDLE(nvk_descriptor_set_layout, set_layout,
pCreateInfo->pSetLayouts[s]);
layout->set[s].layout = nvk_descriptor_set_layout_ref(set_layout);
}
for (uint32_t s = 0; s < pCreateInfo->setLayoutCount; s++) {
VK_FROM_HANDLE(nvk_descriptor_set_layout, set_layout,
pCreateInfo->pSetLayouts[s]);
layout->set[s].layout = nvk_descriptor_set_layout_ref(set_layout);
}
struct mesa_sha1 sha1_ctx;
_mesa_sha1_init(&sha1_ctx);
_mesa_sha1_update(&sha1_ctx, &layout->num_sets, sizeof(layout->num_sets));
for (uint32_t s = 0; s < pCreateInfo->setLayoutCount; s++) {
_mesa_sha1_update(&sha1_ctx, layout->set[s].layout->sha1,
sizeof(layout->set[s].layout->sha1));
}
_mesa_sha1_final(&sha1_ctx, layout->sha1);
struct mesa_sha1 sha1_ctx;
_mesa_sha1_init(&sha1_ctx);
_mesa_sha1_update(&sha1_ctx, &layout->num_sets, sizeof(layout->num_sets));
for (uint32_t s = 0; s < pCreateInfo->setLayoutCount; s++) {
_mesa_sha1_update(&sha1_ctx, layout->set[s].layout->sha1,
sizeof(layout->set[s].layout->sha1));
}
_mesa_sha1_final(&sha1_ctx, layout->sha1);
*pPipelineLayout = nvk_pipeline_layout_to_handle(layout);
*pPipelineLayout = nvk_pipeline_layout_to_handle(layout);
return VK_SUCCESS;
return VK_SUCCESS;
}
VKAPI_ATTR void VKAPI_CALL
nvk_DestroyPipelineLayout(VkDevice _device, VkPipelineLayout pipelineLayout,
const VkAllocationCallbacks *pAllocator) {
VK_FROM_HANDLE(nvk_device, device, _device);
VK_FROM_HANDLE(nvk_pipeline_layout, layout, pipelineLayout);
const VkAllocationCallbacks *pAllocator)
{
VK_FROM_HANDLE(nvk_device, device, _device);
VK_FROM_HANDLE(nvk_pipeline_layout, layout, pipelineLayout);
if (!layout)
return;
if (!layout)
return;
for (uint32_t s = 0; s < layout->num_sets; s++)
nvk_descriptor_set_layout_unref(device, layout->set[s].layout);
for (uint32_t s = 0; s < layout->num_sets; s++)
nvk_descriptor_set_layout_unref(device, layout->set[s].layout);
vk_object_free(&device->vk, pAllocator, layout);
vk_object_free(&device->vk, pAllocator, layout);
}
+6 -6
View File
@@ -8,15 +8,15 @@
struct nvk_descriptor_set_layout;
struct nvk_pipeline_layout {
struct vk_object_base base;
struct vk_object_base base;
unsigned char sha1[20];
unsigned char sha1[20];
uint32_t num_sets;
uint32_t num_sets;
struct {
struct nvk_descriptor_set_layout *layout;
} set[NVK_MAX_SETS];
struct {
struct nvk_descriptor_set_layout *layout;
} set[NVK_MAX_SETS];
};
VK_DEFINE_HANDLE_CASTS(nvk_pipeline_layout, base, VkPipelineLayout,