From 72fc56aa37ab683b31731cdd6542071b1a047db3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tapani=20P=C3=A4lli?= Date: Mon, 24 Apr 2023 13:10:31 +0300 Subject: [PATCH] anv: cleanup bitmask construction for PIPELINE_SELECT MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Cc: mesa-stable Signed-off-by: Tapani Pälli Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/vulkan/genX_cmd_buffer.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 6e5c913..fe3f7e6 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -6491,7 +6491,6 @@ genX(flush_pipeline_select)(struct anv_cmd_buffer *cmd_buffer, cmd_buffer->state.compute.pipeline_dirty = true; #endif - #if GFX_VERx10 < 125 /* We apparently cannot flush the tile cache (color/depth) from the GPGPU * pipeline. That means query clears will not be visible to query @@ -6506,6 +6505,9 @@ genX(flush_pipeline_select)(struct anv_cmd_buffer *cmd_buffer, } #endif + /* Flush and invalidate bits done needed prior PIPELINE_SELECT. */ + enum anv_pipe_bits bits = 0; + #if GFX_VER >= 12 /* From Tigerlake PRM, Volume 2a, PIPELINE_SELECT: * @@ -6521,8 +6523,7 @@ genX(flush_pipeline_select)(struct anv_cmd_buffer *cmd_buffer, * Note: Issuing PIPE_CONTROL_MEDIA_STATE_CLEAR causes GPU hangs, probably * because PIPE was not in MEDIA mode?! */ - enum anv_pipe_bits bits = ANV_PIPE_CS_STALL_BIT | - ANV_PIPE_HDC_PIPELINE_FLUSH_BIT; + bits |= ANV_PIPE_CS_STALL_BIT | ANV_PIPE_HDC_PIPELINE_FLUSH_BIT; if (cmd_buffer->state.current_pipeline == _3D) { bits |= ANV_PIPE_RENDER_TARGET_CACHE_FLUSH_BIT | @@ -6530,7 +6531,6 @@ genX(flush_pipeline_select)(struct anv_cmd_buffer *cmd_buffer, } else { bits |= ANV_PIPE_UNTYPED_DATAPORT_CACHE_FLUSH_BIT; } - anv_add_pending_pipe_bits(cmd_buffer, bits, "flush PIPELINE_SELECT"); #else /* From "BXML » GT » MI » vol1a GPU Overview » [Instruction] * PIPELINE_SELECT [DevBWR+]": @@ -6545,18 +6545,18 @@ genX(flush_pipeline_select)(struct anv_cmd_buffer *cmd_buffer, * Note the cmd_buffer_apply_pipe_flushes will split this into two * PIPE_CONTROLs. */ - anv_add_pending_pipe_bits(cmd_buffer, - ANV_PIPE_RENDER_TARGET_CACHE_FLUSH_BIT | - ANV_PIPE_DEPTH_CACHE_FLUSH_BIT | - ANV_PIPE_HDC_PIPELINE_FLUSH_BIT | - ANV_PIPE_CS_STALL_BIT | - ANV_PIPE_TEXTURE_CACHE_INVALIDATE_BIT | - ANV_PIPE_CONSTANT_CACHE_INVALIDATE_BIT | - ANV_PIPE_STATE_CACHE_INVALIDATE_BIT | - ANV_PIPE_INSTRUCTION_CACHE_INVALIDATE_BIT | - ANV_PIPE_UNTYPED_DATAPORT_CACHE_FLUSH_BIT, - "flush and invalidate for PIPELINE_SELECT"); + bits |= ANV_PIPE_RENDER_TARGET_CACHE_FLUSH_BIT | + ANV_PIPE_DEPTH_CACHE_FLUSH_BIT | + ANV_PIPE_HDC_PIPELINE_FLUSH_BIT | + ANV_PIPE_CS_STALL_BIT | + ANV_PIPE_TEXTURE_CACHE_INVALIDATE_BIT | + ANV_PIPE_CONSTANT_CACHE_INVALIDATE_BIT | + ANV_PIPE_STATE_CACHE_INVALIDATE_BIT | + ANV_PIPE_INSTRUCTION_CACHE_INVALIDATE_BIT | + ANV_PIPE_UNTYPED_DATAPORT_CACHE_FLUSH_BIT; #endif + + anv_add_pending_pipe_bits(cmd_buffer, bits, "flush/invalidate PIPELINE_SELECT"); genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer); #if GFX_VER == 9 -- 2.7.4