From 7eb8e711829bdb2238db5c0c28e9fb4e2e854140 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Mon, 20 Mar 2023 16:35:46 +0200 Subject: [PATCH] anv: track pipeline in anv_cmd_pipeline_state Signed-off-by: Lionel Landwerlin Reviewed-by: Kenneth Graunke Part-of: --- src/intel/vulkan/anv_cmd_buffer.c | 3 +++ src/intel/vulkan/anv_private.h | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/intel/vulkan/anv_cmd_buffer.c b/src/intel/vulkan/anv_cmd_buffer.c index 6b986b1bb71..39b39956bb0 100644 --- a/src/intel/vulkan/anv_cmd_buffer.c +++ b/src/intel/vulkan/anv_cmd_buffer.c @@ -399,6 +399,7 @@ void anv_CmdBindPipeline( if (cmd_buffer->state.compute.pipeline == compute_pipeline) return; + cmd_buffer->state.compute.base.pipeline = pipeline; cmd_buffer->state.compute.pipeline = compute_pipeline; cmd_buffer->state.compute.pipeline_dirty = true; set_dirty_for_bind_map(cmd_buffer, MESA_SHADER_COMPUTE, @@ -415,6 +416,7 @@ void anv_CmdBindPipeline( if (cmd_buffer->state.gfx.pipeline == gfx_pipeline) return; + cmd_buffer->state.gfx.base.pipeline = pipeline; cmd_buffer->state.gfx.pipeline = gfx_pipeline; cmd_buffer->state.gfx.dirty |= ANV_CMD_DIRTY_PIPELINE; @@ -474,6 +476,7 @@ void anv_CmdBindPipeline( if (cmd_buffer->state.rt.pipeline == rt_pipeline) return; + cmd_buffer->state.rt.base.pipeline = pipeline; cmd_buffer->state.rt.pipeline = rt_pipeline; cmd_buffer->state.rt.pipeline_dirty = true; diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 28694bd1833..73770c33be7 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -2551,6 +2551,8 @@ struct anv_cmd_pipeline_state { struct { uint32_t offsets[MAX_DYNAMIC_BUFFERS]; } dynamic_offsets[MAX_SETS]; + + struct anv_pipeline *pipeline; }; /** State tracking for graphics pipeline