anv: implement occlusion query related Wa_14017076903

Fixes artifacts on some games that relied on occlusion query
results when no PS or depth buffers are bound.

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21721>
This commit is contained in:
Tapani Pälli
2022-11-02 12:38:52 +02:00
committed by Marge Bot
parent c10a9372d6
commit c34916f841

View File

@@ -1089,6 +1089,17 @@ emit_3dstate_streamout(struct anv_graphics_pipeline *pipeline,
so.Stream2VertexReadLength = urb_entry_read_length - 1;
so.Stream3VertexReadOffset = urb_entry_read_offset;
so.Stream3VertexReadLength = urb_entry_read_length - 1;
#if INTEL_NEEDS_WA_14017076903
/* Wa_14017076903 : SOL should be programmed to force the
* rendering to be enabled.
*
* This fixes a rare case where SOL must render to get correct
* occlusion query results even when no PS and depth buffers are
* bound.
*/
so.ForceRendering = Force_on;
#endif
}
GENX(3DSTATE_STREAMOUT_pack)(NULL, pipeline->gfx8.streamout_state, &so);