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;
    }
 

Reply via email to