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