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

Author: Tapani Pälli <[email protected]>
Date:   Mon Sep  5 08:23:20 2022 +0300

anv: implement Wa_14015946265 for DG2

SOL unit issues, wa is to send PC with CS stall after SO_DECL.

v2: emit also in genX_gpu_memcpy (Lionel)

Signed-off-by: Tapani Pälli <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18409>

---

 src/intel/vulkan/genX_gpu_memcpy.c | 7 +++++++
 src/intel/vulkan/genX_pipeline.c   | 7 +++++++
 2 files changed, 14 insertions(+)

diff --git a/src/intel/vulkan/genX_gpu_memcpy.c 
b/src/intel/vulkan/genX_gpu_memcpy.c
index 98ea96ac85b..bdeaf91fcde 100644
--- a/src/intel/vulkan/genX_gpu_memcpy.c
+++ b/src/intel/vulkan/genX_gpu_memcpy.c
@@ -184,6 +184,13 @@ emit_so_memcpy(struct anv_batch *batch, struct anv_device 
*device,
          },
       });
 
+#if GFX_VERx10 == 125
+      /* Wa_14015946265: Send PC with CS stall after SO_DECL. */
+      anv_batch_emit(batch, GENX(PIPE_CONTROL), pc) {
+         pc.CommandStreamerStallEnable = true;
+      }
+#endif
+
    anv_batch_emit(batch, GENX(3DSTATE_STREAMOUT), so) {
       so.SOFunctionEnable = true;
       so.RenderingDisable = true;
diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c
index 5cb747d9b9d..c0ea00bfe1a 100644
--- a/src/intel/vulkan/genX_pipeline.c
+++ b/src/intel/vulkan/genX_pipeline.c
@@ -1241,6 +1241,13 @@ emit_3dstate_streamout(struct anv_graphics_pipeline 
*pipeline,
                .Stream3Decl = so_decl[3][i],
             });
       }
+
+#if GFX_VERx10 == 125
+      /* Wa_14015946265: Send PC with CS stall after SO_DECL. */
+      anv_batch_emit(&pipeline->base.batch, GENX(PIPE_CONTROL), pc) {
+         pc.CommandStreamerStallEnable = true;
+      }
+#endif
    }
 
    struct GENX(3DSTATE_STREAMOUT) so = {

Reply via email to