anv: Add a device parameter to format_for_descriptor_type
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3932>
diff --git a/src/intel/vulkan/anv_cmd_buffer.c b/src/intel/vulkan/anv_cmd_buffer.c
index 3b76d8f..b7f46bf 100644
--- a/src/intel/vulkan/anv_cmd_buffer.c
+++ b/src/intel/vulkan/anv_cmd_buffer.c
@@ -975,7 +975,8 @@
}
enum isl_format
-anv_isl_format_for_descriptor_type(VkDescriptorType type)
+anv_isl_format_for_descriptor_type(const struct anv_device *device,
+ VkDescriptorType type)
{
switch (type) {
case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:
diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c
index 7ea6c0c..d9a31f6 100644
--- a/src/intel/vulkan/anv_descriptor_set.c
+++ b/src/intel/vulkan/anv_descriptor_set.c
@@ -1355,7 +1355,7 @@
struct anv_buffer_view *bview =
&set->buffer_views[bind_layout->buffer_view_index + element];
- bview->format = anv_isl_format_for_descriptor_type(type);
+ bview->format = anv_isl_format_for_descriptor_type(device, type);
bview->range = bind_range;
bview->address = bind_addr;
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index e35b499..76477f8 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -4208,7 +4208,8 @@
VkImage *pImage);
enum isl_format
-anv_isl_format_for_descriptor_type(VkDescriptorType type);
+anv_isl_format_for_descriptor_type(const struct anv_device *device,
+ VkDescriptorType type);
static inline VkExtent3D
anv_sanitize_image_extent(const VkImageType imageType,
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index a2d185b..c2ce1ca 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -2539,7 +2539,8 @@
unsigned constant_data_size = shader->prog_data->const_data_size;
const enum isl_format format =
- anv_isl_format_for_descriptor_type(VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER);
+ 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,
constant_data, constant_data_size, 1);
@@ -2558,7 +2559,8 @@
anv_cmd_buffer_alloc_surface_state(cmd_buffer);
const enum isl_format format =
- anv_isl_format_for_descriptor_type(VK_DESCRIPTOR_TYPE_STORAGE_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,
cmd_buffer->state.compute.num_workgroups,
@@ -2693,7 +2695,8 @@
surface_state =
anv_state_stream_alloc(&cmd_buffer->surface_state_stream, 64, 64);
enum isl_format format =
- anv_isl_format_for_descriptor_type(desc->type);
+ anv_isl_format_for_descriptor_type(cmd_buffer->device,
+ desc->type);
anv_fill_buffer_surface_state(cmd_buffer->device, surface_state,
format, address, range, 1);