diff --git a/src/intel/vulkan/genX_gfx_state.c b/src/intel/vulkan/genX_gfx_state.c index f88e02c138c..da37966ee38 100644 --- a/src/intel/vulkan/genX_gfx_state.c +++ b/src/intel/vulkan/genX_gfx_state.c @@ -2834,6 +2834,15 @@ genX(cmd_buffer_flush_gfx_hw_state)(struct anv_cmd_buffer *cmd_buffer) * because of another one is changing. */ + /* Reproduce the programming done on Windows drivers. + * Fixes flickering issues with multiple workloads. + */ + if (BITSET_TEST(hw_state->dirty, ANV_GFX_STATE_VIEWPORT_SF_CLIP) || + BITSET_TEST(hw_state->dirty, ANV_GFX_STATE_VIEWPORT_CC_PTR)) { + BITSET_SET(hw_state->dirty, ANV_GFX_STATE_VIEWPORT_SF_CLIP); + BITSET_SET(hw_state->dirty, ANV_GFX_STATE_VIEWPORT_CC_PTR); + } + /* Wa_16012775297 - Emit dummy VF statistics before each 3DSTATE_VF. */ #if INTEL_WA_16012775297_GFX_VER if (intel_needs_workaround(device->info, 16012775297) &&