From 1d6d775ffeb942d18389dfd42bb3a8783f43184f Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 31 Jul 2023 11:15:29 -0500 Subject: [PATCH] anv: Use vk_buffer_view Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/vulkan/anv_descriptor_set.c | 6 +++--- src/intel/vulkan/anv_image.c | 15 +++++++-------- src/intel/vulkan/anv_private.h | 7 +++---- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c index 96aeccb..4b82a02 100644 --- a/src/intel/vulkan/anv_descriptor_set.c +++ b/src/intel/vulkan/anv_descriptor_set.c @@ -1818,7 +1818,7 @@ anv_descriptor_write_surface_state(struct anv_device *device, anv_isl_format_for_descriptor_type(device, desc->type); anv_fill_buffer_surface_state(device, bview->general.state.map, format, ISL_SWIZZLE_IDENTITY, - usage, bview->address, bview->range, 1); + usage, bview->address, bview->vk.range, 1); } void @@ -1909,7 +1909,7 @@ anv_descriptor_set_write_buffer(struct anv_device *device, desc->set_buffer_view = bview; - bview->range = desc->bind_range; + bview->vk.range = desc->bind_range; bview->address = bind_addr; if (set->is_push) @@ -2124,7 +2124,7 @@ void anv_UpdateDescriptorSets( dst_desc->set_buffer_view = dst_bview; - dst_bview->range = src_bview->range; + dst_bview->vk.range = src_bview->vk.range; dst_bview->address = src_bview->address; memcpy(dst_bview->general.state.map, diff --git a/src/intel/vulkan/anv_image.c b/src/intel/vulkan/anv_image.c index 275af9e..d0cf6ae 100644 --- a/src/intel/vulkan/anv_image.c +++ b/src/intel/vulkan/anv_image.c @@ -2899,8 +2899,8 @@ anv_CreateBufferView(VkDevice _device, ANV_FROM_HANDLE(anv_buffer, buffer, pCreateInfo->buffer); struct anv_buffer_view *view; - view = vk_object_alloc(&device->vk, pAllocator, sizeof(*view), - VK_OBJECT_TYPE_BUFFER_VIEW); + view = vk_buffer_view_create(&device->vk, pCreateInfo, + pAllocator, sizeof(*view)); if (!view) return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY); @@ -2909,9 +2909,8 @@ anv_CreateBufferView(VkDevice _device, 0, VK_IMAGE_TILING_LINEAR); const uint32_t format_bs = isl_format_get_layout(format.isl_format)->bpb / 8; - view->range = vk_buffer_range(&buffer->vk, pCreateInfo->offset, - pCreateInfo->range); - view->range = align_down_npot_u32(view->range, format_bs); + const uint32_t align_range = + align_down_npot_u32(view->vk.range, format_bs); view->address = anv_address_add(buffer->address, pCreateInfo->offset); @@ -2923,7 +2922,7 @@ anv_CreateBufferView(VkDevice _device, format.isl_format, format.swizzle, ISL_SURF_USAGE_TEXTURE_BIT, - view->address, view->range, format_bs); + view->address, align_range, format_bs); } else { view->general.state = ANV_STATE_NULL; } @@ -2935,7 +2934,7 @@ anv_CreateBufferView(VkDevice _device, &view->storage, format.isl_format, format.swizzle, ISL_SURF_USAGE_STORAGE_BIT, - view->address, view->range, format_bs); + view->address, align_range, format_bs); } else { view->storage.state = ANV_STATE_NULL; } @@ -2965,5 +2964,5 @@ anv_DestroyBufferView(VkDevice _device, VkBufferView bufferView, view->storage.state); } - vk_object_free(&device->vk, pAllocator, view); + vk_buffer_view_destroy(&device->vk, pAllocator, &view->vk); } diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index f40adae..e9a4c04 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -70,6 +70,7 @@ #include "vk_acceleration_structure.h" #include "vk_alloc.h" #include "vk_buffer.h" +#include "vk_buffer_view.h" #include "vk_command_buffer.h" #include "vk_command_pool.h" #include "vk_debug_report.h" @@ -1941,9 +1942,7 @@ struct anv_buffer_state { }; struct anv_buffer_view { - struct vk_object_base base; - - uint64_t range; /**< VkBufferViewCreateInfo::range */ + struct vk_buffer_view vk; struct anv_address address; @@ -4757,7 +4756,7 @@ VK_DEFINE_HANDLE_CASTS(anv_queue, vk.base, VkQueue, VK_OBJECT_TYPE_QUEUE) VK_DEFINE_NONDISP_HANDLE_CASTS(anv_buffer, vk.base, VkBuffer, VK_OBJECT_TYPE_BUFFER) -VK_DEFINE_NONDISP_HANDLE_CASTS(anv_buffer_view, base, VkBufferView, +VK_DEFINE_NONDISP_HANDLE_CASTS(anv_buffer_view, vk.base, VkBufferView, VK_OBJECT_TYPE_BUFFER_VIEW) VK_DEFINE_NONDISP_HANDLE_CASTS(anv_descriptor_pool, base, VkDescriptorPool, VK_OBJECT_TYPE_DESCRIPTOR_POOL) -- 2.7.4