vk/meta: add buffer view tracking
honeykrisp will use this, at least for now. Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30382>
This commit is contained in:

committed by
Marge Bot

parent
d5b0526507
commit
0d66ba6e5d
@@ -537,3 +537,23 @@ vk_meta_create_image_view(struct vk_command_buffer *cmd,
|
||||
(uint64_t)*image_view_out);
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
||||
VkResult
|
||||
vk_meta_create_buffer_view(struct vk_command_buffer *cmd,
|
||||
struct vk_meta_device *meta,
|
||||
const VkBufferViewCreateInfo *info,
|
||||
VkBufferView *buffer_view_out)
|
||||
{
|
||||
struct vk_device *device = cmd->base.device;
|
||||
const struct vk_device_dispatch_table *disp = &device->dispatch_table;
|
||||
VkDevice _device = vk_device_to_handle(device);
|
||||
|
||||
VkResult result = disp->CreateBufferView(_device, info, NULL, buffer_view_out);
|
||||
if (unlikely(result != VK_SUCCESS))
|
||||
return result;
|
||||
|
||||
vk_meta_object_list_add_handle(&cmd->meta_objects,
|
||||
VK_OBJECT_TYPE_BUFFER_VIEW,
|
||||
(uint64_t)*buffer_view_out);
|
||||
return VK_SUCCESS;
|
||||
}
|
||||
|
@@ -34,6 +34,7 @@ extern "C" {
|
||||
|
||||
struct hash_table;
|
||||
struct vk_command_buffer;
|
||||
struct vk_buffer;
|
||||
struct vk_device;
|
||||
struct vk_image;
|
||||
|
||||
@@ -184,6 +185,11 @@ VkResult vk_meta_create_buffer(struct vk_command_buffer *cmd,
|
||||
struct vk_meta_device *meta,
|
||||
const VkBufferCreateInfo *info,
|
||||
VkBuffer *buffer_out);
|
||||
|
||||
VkResult vk_meta_create_buffer_view(struct vk_command_buffer *cmd,
|
||||
struct vk_meta_device *meta,
|
||||
const VkBufferViewCreateInfo *info,
|
||||
VkBufferView *buffer_view_out);
|
||||
VkResult vk_meta_create_image_view(struct vk_command_buffer *cmd,
|
||||
struct vk_meta_device *meta,
|
||||
const VkImageViewCreateInfo *info,
|
||||
|
@@ -17,6 +17,9 @@ vk_meta_destroy_object(struct vk_device *device, struct vk_object_base *obj)
|
||||
case VK_OBJECT_TYPE_BUFFER:
|
||||
disp->DestroyBuffer(_device, (VkBuffer)(uintptr_t)obj, NULL);
|
||||
break;
|
||||
case VK_OBJECT_TYPE_BUFFER_VIEW:
|
||||
disp->DestroyBufferView(_device, (VkBufferView)(uintptr_t)obj, NULL);
|
||||
break;
|
||||
case VK_OBJECT_TYPE_IMAGE_VIEW:
|
||||
disp->DestroyImageView(_device, (VkImageView)(uintptr_t)obj, NULL);
|
||||
break;
|
||||
|
Reference in New Issue
Block a user