Module: Mesa
Branch: staging/23.3
Commit: 572e3a1bfae941d2b6ad2c37aa0ffa7c47df4bd3
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=572e3a1bfae941d2b6ad2c37aa0ffa7c47df4bd3

Author: Lionel Landwerlin <lionel.g.landwer...@intel.com>
Date:   Thu Jan 11 17:40:39 2024 +0200

anv: fix disabled Wa_14017076903/18022508906

Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com>
Fixes: d0669f3ede ("intel/dev: switch defect identifiers to use lineage 
numbers")
Reviewed-by: José Roberto de Souza <jose.so...@intel.com>
Reviewed-by: Tapani Pälli <tapani.pa...@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27008>
(cherry picked from commit 695b4a299250ee7ff5da5f7eda70c6b245dd0f78)

---

 .pick_status.json                 |  2 +-
 src/intel/vulkan/anv_private.h    |  1 +
 src/intel/vulkan/genX_gfx_state.c | 10 ++++++----
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 998541abb8a..9a8f56ce3b3 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -574,7 +574,7 @@
         "description": "anv: fix disabled Wa_14017076903/18022508906",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "d0669f3ede53cccc245efaf27e32b68f6150549a",
         "notes": null
diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index fe5544addd5..436ead9b38f 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -1342,6 +1342,7 @@ struct anv_gfx_dynamic_state {
       bool     RenderingDisable;
       uint32_t RenderStreamSelect;
       uint32_t ReorderMode;
+      uint32_t ForceRendering;
    } so;
 
    /* 3DSTATE_SAMPLE_MASK */
diff --git a/src/intel/vulkan/genX_gfx_state.c 
b/src/intel/vulkan/genX_gfx_state.c
index 7d3c63705e9..9f9ffde4e09 100644
--- a/src/intel/vulkan/genX_gfx_state.c
+++ b/src/intel/vulkan/genX_gfx_state.c
@@ -354,8 +354,8 @@ genX(cmd_buffer_flush_gfx_runtime_state)(struct 
anv_cmd_buffer *cmd_buffer)
       SET(STREAMOUT, so.RenderingDisable, dyn->rs.rasterizer_discard_enable);
       SET(STREAMOUT, so.RenderStreamSelect, dyn->rs.rasterization_stream);
 
-#if INTEL_NEEDS_WA_14017076903
-      /* Wa_14017076903 :
+#if INTEL_NEEDS_WA_18022508906
+      /* Wa_18022508906 :
        *
        * SKL PRMs, Volume 7: 3D-Media-GPGPU, Stream Output Logic (SOL) Stage:
        *
@@ -383,8 +383,9 @@ genX(cmd_buffer_flush_gfx_runtime_state)(struct 
anv_cmd_buffer *cmd_buffer)
        * Here we force rendering to get SOL_INT::Render_Enable when occlusion
        * queries are active.
        */
-      if (!GET(so.RenderingDisable) && gfx->n_occlusion_queries > 0)
-         SET(STREAMOUT, so.ForceRendering, Force_on);
+      SET(STREAMOUT, so.ForceRendering,
+          (!GET(so.RenderingDisable) && gfx->n_occlusion_queries > 0) ?
+          Force_on : 0);
 #endif
 
       switch (dyn->rs.provoking_vertex) {
@@ -1304,6 +1305,7 @@ genX(cmd_buffer_flush_gfx_hw_state)(struct anv_cmd_buffer 
*cmd_buffer)
          SET(so, so, RenderingDisable);
          SET(so, so, RenderStreamSelect);
          SET(so, so, ReorderMode);
+         SET(so, so, ForceRendering);
       }
    }
 

Reply via email to