From a77ea9555aa00cc12f3d1c440252e940ff552500 Mon Sep 17 00:00:00 2001 From: Rohan Garg Date: Thu, 26 Oct 2023 17:35:58 +0200 Subject: [PATCH] blorp: WA 16014538804 for DG2, MTL A0 Send empty/dummy PIPE_CONTROL after every third 3DPRIMITIVE command. Signed-off-by: Rohan Garg Reviewed-by: Lionel Landwerlin Part-of: --- src/gallium/drivers/iris/iris_blorp.c | 3 +++ src/intel/vulkan/genX_blorp_exec.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/gallium/drivers/iris/iris_blorp.c b/src/gallium/drivers/iris/iris_blorp.c index 0612da4826e..63f212976ca 100644 --- a/src/gallium/drivers/iris/iris_blorp.c +++ b/src/gallium/drivers/iris/iris_blorp.c @@ -515,6 +515,9 @@ static void blorp_emit_post_draw(struct blorp_batch *blorp_batch, const struct blorp_params *params) { struct iris_batch *batch = blorp_batch->driver_batch; + + // A _3DPRIM_RECTLIST is a MESA_PRIM_QUAD_STRIP with a implied vertex + genX(emit_3dprimitive_was)(batch, NULL, MESA_PRIM_QUAD_STRIP, 3); genX(maybe_emit_breakpoint)(batch, false); blorp_measure_end(blorp_batch, params); } diff --git a/src/intel/vulkan/genX_blorp_exec.c b/src/intel/vulkan/genX_blorp_exec.c index 7bc3488b2ca..9f3bb5b0282 100644 --- a/src/intel/vulkan/genX_blorp_exec.c +++ b/src/intel/vulkan/genX_blorp_exec.c @@ -469,6 +469,12 @@ static void blorp_emit_post_draw(struct blorp_batch *batch, const struct blorp_params *params) { struct anv_cmd_buffer *cmd_buffer = batch->driver_batch; + + genX(batch_emit_post_3dprimitive_was)(&cmd_buffer->batch, + cmd_buffer->device, + _3DPRIM_RECTLIST, + 3); + genX(emit_breakpoint)(&cmd_buffer->batch, cmd_buffer->device, false); blorp_measure_end(batch, params); }