diff --git a/src/intel/blorp/blorp.h b/src/intel/blorp/blorp.h index 2d01fbcb0da..31ca74cd707 100644 --- a/src/intel/blorp/blorp.h +++ b/src/intel/blorp/blorp.h @@ -135,6 +135,9 @@ enum blorp_batch_flags { /** Use the hardware blitter to perform any operations in this batch */ BLORP_BATCH_USE_BLITTER = BITFIELD_BIT(4), + + /** Wa_18038825448 */ + BLORP_BATCH_FORCE_CPS_DEPENDENCY = BITFIELD_BIT(5), }; struct blorp_batch { diff --git a/src/intel/blorp/blorp_genX_exec_brw.h b/src/intel/blorp/blorp_genX_exec_brw.h index 59133699f08..fdbefa2fe63 100644 --- a/src/intel/blorp/blorp_genX_exec_brw.h +++ b/src/intel/blorp/blorp_genX_exec_brw.h @@ -877,6 +877,12 @@ blorp_emit_ps_config(struct blorp_batch *batch, psx.PixelShaderComputedDepthMode = prog_data->computed_depth_mode; psx.PixelShaderComputesStencil = prog_data->computed_stencil; psx.PixelShaderIsPerSample = prog_data->persample_dispatch; + +#if INTEL_WA_18038825448_GFX_VER + psx.EnablePSDependencyOnCPsizeChange = + batch->flags & BLORP_BATCH_FORCE_CPS_DEPENDENCY; +#endif + #if GFX_VER < 20 psx.AttributeEnable = prog_data->num_varying_inputs > 0; #else