Reprogram SF CLIP viewport pointer by not skipping its
dirty flag bit.
Many thanks to Lin, Shuicheng <shuicheng.lin@intel.com>,
Jerez Plata, Francisco <francisco.jerez.plata@intel.com>,
Graunke, Kenneth W <kenneth.w.graunke@intel.com>,
and others for their great help.
Signed-off-by: Zhang, Jianxun <jianxun.zhang@intel.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17171>
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 |