anv: export descriptor flushing functions

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26989>
This commit is contained in:
Lionel Landwerlin
2024-01-10 14:07:31 +02:00
committed by Marge Bot
parent 43fb43ba2c
commit 6bb3ae99c5
2 changed files with 40 additions and 28 deletions

View File

@@ -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);

View File

@@ -2266,8 +2266,8 @@ emit_samplers(struct anv_cmd_buffer *cmd_buffer,
return VK_SUCCESS;
}
static uint32_t
flush_descriptor_sets(struct anv_cmd_buffer *cmd_buffer,
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,
@@ -2346,8 +2346,8 @@ 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,
void
genX(cmd_buffer_flush_push_descriptor_set)(struct anv_cmd_buffer *cmd_buffer,
struct anv_cmd_pipeline_state *state,
struct anv_pipeline *pipeline)
{
@@ -3167,7 +3167,7 @@ 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,
genX(cmd_buffer_flush_push_descriptor_set)(cmd_buffer,
&cmd_buffer->state.gfx.base,
&pipeline->base.base);
descriptors_dirty |= push_descriptor_dirty;
@@ -3280,7 +3280,8 @@ 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,
dirty = genX(cmd_buffer_flush_descriptor_sets)(
cmd_buffer,
&cmd_buffer->state.gfx.base,
descriptors_dirty,
pipeline->base.shaders,
@@ -5779,7 +5780,7 @@ 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,
genX(cmd_buffer_flush_push_descriptor_set)(cmd_buffer,
&cmd_buffer->state.compute.base,
&pipeline->base);
cmd_buffer->state.descriptors_dirty |= push_descriptor_dirty;
@@ -5788,7 +5789,7 @@ genX(cmd_buffer_flush_compute_state)(struct anv_cmd_buffer *cmd_buffer)
if ((cmd_buffer->state.descriptors_dirty & VK_SHADER_STAGE_COMPUTE_BIT) ||
cmd_buffer->state.compute.pipeline_dirty) {
flush_descriptor_sets(cmd_buffer,
genX(cmd_buffer_flush_descriptor_sets)(cmd_buffer,
&cmd_buffer->state.compute.base,
VK_SHADER_STAGE_COMPUTE_BIT,
&pipeline->cs, 1);
@@ -6525,7 +6526,7 @@ 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,
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;