From b703e0be530aa7a13eaa468cbceb05ba51f753b9 Mon Sep 17 00:00:00 2001 From: Rohan Garg Date: Thu, 25 Jan 2024 14:24:11 +0100 Subject: [PATCH] anv: factor out common code for determining surface usage from a VkDescriptorType MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rohan Garg Reviewed-by: Tapani Pälli Part-of: --- src/intel/vulkan/anv_descriptor_set.c | 9 ++------- src/intel/vulkan/anv_private.h | 12 ++++++++++++ src/intel/vulkan/genX_cmd_buffer.c | 4 +--- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/intel/vulkan/anv_descriptor_set.c b/src/intel/vulkan/anv_descriptor_set.c index ee28557e8fd..33388cd6c19 100644 --- a/src/intel/vulkan/anv_descriptor_set.c +++ b/src/intel/vulkan/anv_descriptor_set.c @@ -2208,10 +2208,7 @@ anv_descriptor_write_surface_state(struct anv_device *device, bview->general.state = surface_state; isl_surf_usage_flags_t usage = - (desc->type == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER || - desc->type == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC) ? - ISL_SURF_USAGE_CONSTANT_BUFFER_BIT : - ISL_SURF_USAGE_STORAGE_BIT; + anv_isl_usage_for_descriptor_type(desc->type); enum isl_format format = anv_isl_format_for_descriptor_type(device, desc->type); @@ -2282,9 +2279,7 @@ anv_descriptor_set_write_buffer(struct anv_device *device, if (data & ANV_DESCRIPTOR_SURFACE) { isl_surf_usage_flags_t usage = - desc->type == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER ? - ISL_SURF_USAGE_CONSTANT_BUFFER_BIT : - ISL_SURF_USAGE_STORAGE_BIT; + anv_isl_usage_for_descriptor_type(desc->type); enum isl_format format = anv_isl_format_for_descriptor_type(device, desc->type); diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 1216cbb6170..bc98189fd45 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -5373,6 +5373,18 @@ enum isl_format anv_isl_format_for_descriptor_type(const struct anv_device *device, VkDescriptorType type); +static inline isl_surf_usage_flags_t +anv_isl_usage_for_descriptor_type(const VkDescriptorType type) +{ + switch(type) { + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER: + case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC: + return ISL_SURF_USAGE_CONSTANT_BUFFER_BIT; + default: + return ISL_SURF_USAGE_STORAGE_BIT; + } +} + static inline uint32_t anv_rasterization_aa_mode(VkPolygonMode raster_mode, VkLineRasterizationModeEXT line_mode) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 1e4c2a81637..5145512ea5f 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -1849,9 +1849,7 @@ emit_dynamic_buffer_binding_table_entry(struct anv_cmd_buffer *cmd_buffer, desc->type); isl_surf_usage_flags_t usage = - desc->type == VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC ? - ISL_SURF_USAGE_CONSTANT_BUFFER_BIT : - ISL_SURF_USAGE_STORAGE_BIT; + anv_isl_usage_for_descriptor_type(desc->type); anv_fill_buffer_surface_state(cmd_buffer->device, surface_state.map,