anv: handle new VkBufferViewUsageCreateInfoKHR

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24387>
This commit is contained in:
Lionel Landwerlin 2023-03-08 13:33:21 +02:00
parent 5c2aca456e
commit 4bd864c487

View file

@ -2951,6 +2951,11 @@ anv_CreateBufferView(VkDevice _device,
if (!view)
return vk_error(device, VK_ERROR_OUT_OF_HOST_MEMORY);
const VkBufferUsageFlags2CreateInfoKHR *view_usage_info =
vk_find_struct_const(pCreateInfo->pNext, BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR);
const VkBufferUsageFlags buffer_usage =
view_usage_info != NULL ? view_usage_info->usage : buffer->vk.usage;
struct anv_format_plane format;
format = anv_get_format_plane(device->info, pCreateInfo->format,
0, VK_IMAGE_TILING_LINEAR);
@ -2961,7 +2966,7 @@ anv_CreateBufferView(VkDevice _device,
view->address = anv_address_add(buffer->address, pCreateInfo->offset);
if (buffer->vk.usage & VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT) {
if (buffer_usage & VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT) {
view->general.state = maybe_alloc_surface_state(device);
anv_fill_buffer_view_surface_state(device,
@ -2974,7 +2979,7 @@ anv_CreateBufferView(VkDevice _device,
view->general.state = ANV_STATE_NULL;
}
if (buffer->vk.usage & VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT) {
if (buffer_usage & VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT) {
view->storage.state = maybe_alloc_surface_state(device);
anv_fill_buffer_view_surface_state(device,