From bc42bbff4ce8bbfe45b0ae593cfeb218bc068200 Mon Sep 17 00:00:00 2001 From: "Zhang, Jianxun" Date: Tue, 10 May 2022 12:55:13 -0700 Subject: [PATCH] iris: Wa_14016820455 for GFX_VERx10 == 12.5 Reprogram SF CLIP viewport pointer by not skipping its dirty flag bit. Many thanks to Lin, Shuicheng , Jerez Plata, Francisco , Graunke, Kenneth W , and others for their great help. Signed-off-by: Zhang, Jianxun Reviewed-by: Francisco Jerez Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_blorp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/iris/iris_blorp.c b/src/gallium/drivers/iris/iris_blorp.c index a0af9d6..2a43ca8 100644 --- a/src/gallium/drivers/iris/iris_blorp.c +++ b/src/gallium/drivers/iris/iris_blorp.c @@ -353,8 +353,15 @@ iris_blorp_exec_render(struct blorp_batch *blorp_batch, IRIS_DIRTY_LINE_STIPPLE | IRIS_ALL_DIRTY_FOR_COMPUTE | IRIS_DIRTY_SCISSOR_RECT | - IRIS_DIRTY_VF | - IRIS_DIRTY_SF_CL_VIEWPORT); + IRIS_DIRTY_VF); + /* Wa_14016820455 + * On Gfx 12.5 platforms, the SF_CL_VIEWPORT pointer can be invalidated + * likely by a read cache invalidation when clipping is disabled, so we + * don't skip its dirty bit here, in order to reprogram it. + */ + if (GFX_VERx10 != 125) + skip_bits |= IRIS_DIRTY_SF_CL_VIEWPORT; + uint64_t skip_stage_bits = (IRIS_ALL_STAGE_DIRTY_FOR_COMPUTE | IRIS_STAGE_DIRTY_UNCOMPILED_VS | IRIS_STAGE_DIRTY_UNCOMPILED_TCS | -- 2.7.4