Module: Mesa
Branch: main
Commit: a77ea9555aa00cc12f3d1c440252e940ff552500
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=a77ea9555aa00cc12f3d1c440252e940ff552500

Author: Rohan Garg <rohan.g...@intel.com>
Date:   Thu Oct 26 17:35:58 2023 +0200

blorp: WA 16014538804 for DG2, MTL A0

Send empty/dummy PIPE_CONTROL after every third 3DPRIMITIVE command.

Signed-off-by: Rohan Garg <rohan.g...@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25039>

---

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

Reply via email to