anv: Use vk_buffer_view

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24409>
This commit is contained in:
Faith Ekstrand
2023-07-31 11:15:29 -05:00
committed by Marge Bot
parent 92f996d0fa
commit 1d6d775ffe
3 changed files with 13 additions and 15 deletions
+3 -3
View 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,
+7 -8
View 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);
}
+3 -4
View 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)