Module: Mesa Branch: main Commit: 6bb3ae99c52be4707ccebc5d62b6215e5a52baee URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6bb3ae99c52be4707ccebc5d62b6215e5a52baee
Author: Lionel Landwerlin <lionel.g.landwer...@intel.com> Date: Wed Jan 10 14:07:31 2024 +0200 anv: export descriptor flushing functions Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> Reviewed-by: Tapani Pälli <tapani.pa...@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26989> --- src/intel/vulkan/anv_genX.h | 11 ++++++++ src/intel/vulkan/genX_cmd_buffer.c | 57 +++++++++++++++++++------------------- 2 files changed, 40 insertions(+), 28 deletions(-) diff --git a/src/intel/vulkan/anv_genX.h b/src/intel/vulkan/anv_genX.h index 477f1688353..bd3dc52f910 100644 --- a/src/intel/vulkan/anv_genX.h +++ b/src/intel/vulkan/anv_genX.h @@ -133,6 +133,17 @@ void genX(emit_l3_config)(struct anv_batch *batch, void genX(cmd_buffer_config_l3)(struct anv_cmd_buffer *cmd_buffer, const struct intel_l3_config *cfg); +uint32_t +genX(cmd_buffer_flush_descriptor_sets)(struct anv_cmd_buffer *cmd_buffer, + struct anv_cmd_pipeline_state *pipe_state, + const VkShaderStageFlags dirty, + struct anv_shader_bin **shaders, + uint32_t num_shaders); +void +genX(cmd_buffer_flush_push_descriptor_set)(struct anv_cmd_buffer *cmd_buffer, + struct anv_cmd_pipeline_state *state, + struct anv_pipeline *pipeline); + void genX(cmd_buffer_flush_gfx_hw_state)(struct anv_cmd_buffer *cmd_buffer); void genX(cmd_buffer_flush_gfx_runtime_state)(struct anv_cmd_buffer *cmd_buffer); diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index e922ffd60a9..01fa76b16a5 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -2266,12 +2266,12 @@ emit_samplers(struct anv_cmd_buffer *cmd_buffer, return VK_SUCCESS; } -static uint32_t -flush_descriptor_sets(struct anv_cmd_buffer *cmd_buffer, - struct anv_cmd_pipeline_state *pipe_state, - const VkShaderStageFlags dirty, - struct anv_shader_bin **shaders, - uint32_t num_shaders) +uint32_t +genX(cmd_buffer_flush_descriptor_sets)(struct anv_cmd_buffer *cmd_buffer, + struct anv_cmd_pipeline_state *pipe_state, + const VkShaderStageFlags dirty, + struct anv_shader_bin **shaders, + uint32_t num_shaders) { VkShaderStageFlags flushed = 0; @@ -2346,10 +2346,10 @@ flush_descriptor_sets(struct anv_cmd_buffer *cmd_buffer, * and surface state generation when a pipeline is not going to use the * binding table to access any push descriptor data. */ -static void -flush_push_descriptor_set(struct anv_cmd_buffer *cmd_buffer, - struct anv_cmd_pipeline_state *state, - struct anv_pipeline *pipeline) +void +genX(cmd_buffer_flush_push_descriptor_set)(struct anv_cmd_buffer *cmd_buffer, + struct anv_cmd_pipeline_state *state, + struct anv_pipeline *pipeline) { assert(pipeline->use_push_descriptor && pipeline->layout.push_descriptor_set_index != -1); @@ -3167,9 +3167,9 @@ genX(cmd_buffer_flush_gfx_state)(struct anv_cmd_buffer *cmd_buffer) cmd_buffer->state.push_descriptors_dirty & pipeline->base.base.use_push_descriptor; if (push_descriptor_dirty) { - flush_push_descriptor_set(cmd_buffer, - &cmd_buffer->state.gfx.base, - &pipeline->base.base); + genX(cmd_buffer_flush_push_descriptor_set)(cmd_buffer, + &cmd_buffer->state.gfx.base, + &pipeline->base.base); descriptors_dirty |= push_descriptor_dirty; cmd_buffer->state.push_descriptors_dirty &= ~push_descriptor_dirty; } @@ -3280,11 +3280,12 @@ genX(cmd_buffer_flush_gfx_state)(struct anv_cmd_buffer *cmd_buffer) */ uint32_t dirty = 0; if (descriptors_dirty) { - dirty = flush_descriptor_sets(cmd_buffer, - &cmd_buffer->state.gfx.base, - descriptors_dirty, - pipeline->base.shaders, - ARRAY_SIZE(pipeline->base.shaders)); + dirty = genX(cmd_buffer_flush_descriptor_sets)( + cmd_buffer, + &cmd_buffer->state.gfx.base, + descriptors_dirty, + pipeline->base.shaders, + ARRAY_SIZE(pipeline->base.shaders)); cmd_buffer->state.descriptors_dirty &= ~dirty; } @@ -5779,19 +5780,19 @@ genX(cmd_buffer_flush_compute_state)(struct anv_cmd_buffer *cmd_buffer) cmd_buffer->state.push_descriptors_dirty & pipeline->base.use_push_descriptor; if (push_descriptor_dirty) { - flush_push_descriptor_set(cmd_buffer, - &cmd_buffer->state.compute.base, - &pipeline->base); + genX(cmd_buffer_flush_push_descriptor_set)(cmd_buffer, + &cmd_buffer->state.compute.base, + &pipeline->base); cmd_buffer->state.descriptors_dirty |= push_descriptor_dirty; cmd_buffer->state.push_descriptors_dirty &= ~push_descriptor_dirty; } if ((cmd_buffer->state.descriptors_dirty & VK_SHADER_STAGE_COMPUTE_BIT) || cmd_buffer->state.compute.pipeline_dirty) { - flush_descriptor_sets(cmd_buffer, - &cmd_buffer->state.compute.base, - VK_SHADER_STAGE_COMPUTE_BIT, - &pipeline->cs, 1); + genX(cmd_buffer_flush_descriptor_sets)(cmd_buffer, + &cmd_buffer->state.compute.base, + VK_SHADER_STAGE_COMPUTE_BIT, + &pipeline->cs, 1); cmd_buffer->state.descriptors_dirty &= ~VK_SHADER_STAGE_COMPUTE_BIT; #if GFX_VERx10 < 125 @@ -6525,9 +6526,9 @@ cmd_buffer_trace_rays(struct anv_cmd_buffer *cmd_buffer, cmd_buffer->state.push_descriptors_dirty & pipeline->base.use_push_descriptor; if (push_descriptor_dirty) { - flush_push_descriptor_set(cmd_buffer, - &cmd_buffer->state.rt.base, - &pipeline->base); + genX(cmd_buffer_flush_push_descriptor_set)(cmd_buffer, + &cmd_buffer->state.rt.base, + &pipeline->base); cmd_buffer->state.push_descriptors_dirty &= ~push_descriptor_dirty; }