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:
committed by
Marge Bot
parent
92f996d0fa
commit
1d6d775ffe
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user