anv: Use vk_buffer_view
authorFaith Ekstrand <faith.ekstrand@collabora.com>
Mon, 31 Jul 2023 16:15:29 +0000 (11:15 -0500)
committerMarge Bot <emma+marge@anholt.net>
Tue, 1 Aug 2023 19:17:05 +0000 (19:17 +0000)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24409>

src/intel/vulkan/anv_descriptor_set.c
src/intel/vulkan/anv_image.c
src/intel/vulkan/anv_private.h

index 96aeccb..4b82a02 100644 (file)
@@ -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,
index 275af9e..d0cf6ae 100644 (file)
@@ -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);
 }
index f40adae..e9a4c04 100644 (file)
@@ -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)