anv: deal with isl format swizzles for buffer views
For some formats like VK_FORMAT_B5G6R5_UNORM_PACK16, we have no direct matching HW format. We can support it by swizzling. We already apply those swizzles for image views. We just forgot to deal with buffer views. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Cc: mesa-stable Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6235 Reviewed-by: Nanley Chery <nanley.g.chery@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17385>
This commit is contained in:
committed by
Marge Bot
parent
a841300384
commit
57a8efa222
@@ -2568,8 +2568,8 @@ emit_binding_table(struct anv_cmd_buffer *cmd_buffer,
|
||||
const enum isl_format format =
|
||||
anv_isl_format_for_descriptor_type(cmd_buffer->device,
|
||||
VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER);
|
||||
anv_fill_buffer_surface_state(cmd_buffer->device,
|
||||
surface_state, format,
|
||||
anv_fill_buffer_surface_state(cmd_buffer->device, surface_state,
|
||||
format, ISL_SWIZZLE_IDENTITY,
|
||||
ISL_SURF_USAGE_CONSTANT_BUFFER_BIT,
|
||||
constant_data, constant_data_size, 1);
|
||||
|
||||
@@ -2590,7 +2590,7 @@ emit_binding_table(struct anv_cmd_buffer *cmd_buffer,
|
||||
anv_isl_format_for_descriptor_type(cmd_buffer->device,
|
||||
VK_DESCRIPTOR_TYPE_STORAGE_BUFFER);
|
||||
anv_fill_buffer_surface_state(cmd_buffer->device, surface_state,
|
||||
format,
|
||||
format, ISL_SWIZZLE_IDENTITY,
|
||||
ISL_SURF_USAGE_CONSTANT_BUFFER_BIT,
|
||||
cmd_buffer->state.compute.num_workgroups,
|
||||
12, 1);
|
||||
@@ -2752,7 +2752,8 @@ emit_binding_table(struct anv_cmd_buffer *cmd_buffer,
|
||||
ISL_SURF_USAGE_STORAGE_BIT;
|
||||
|
||||
anv_fill_buffer_surface_state(cmd_buffer->device, surface_state,
|
||||
format, usage, address, range, 1);
|
||||
format, ISL_SWIZZLE_IDENTITY,
|
||||
usage, address, range, 1);
|
||||
if (need_client_mem_relocs)
|
||||
add_surface_reloc(cmd_buffer, surface_state, address);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user