Module: Mesa Branch: main Commit: 695b4a299250ee7ff5da5f7eda70c6b245dd0f78 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=695b4a299250ee7ff5da5f7eda70c6b245dd0f78
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> --- src/intel/vulkan/anv_private.h | 1 + src/intel/vulkan/genX_gfx_state.c | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h index 7b0eb1180dc..b0bf6ba53b3 100644 --- a/src/intel/vulkan/anv_private.h +++ b/src/intel/vulkan/anv_private.h @@ -1479,6 +1479,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 d3fca497893..66af91f8f62 100644 --- a/src/intel/vulkan/genX_gfx_state.c +++ b/src/intel/vulkan/genX_gfx_state.c @@ -496,8 +496,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: * @@ -525,8 +525,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) { @@ -1526,6 +1527,7 @@ cmd_buffer_gfx_state_emission(struct anv_cmd_buffer *cmd_buffer) SET(so, so, RenderingDisable); SET(so, so, RenderStreamSelect); SET(so, so, ReorderMode); + SET(so, so, ForceRendering); } }