/** Use the hardware blitter to perform any operations in this batch */
BLORP_BATCH_USE_BLITTER = (1 << 4),
+
+ /** Need a PSS Stall Sync, Wa_18019816803. */
+ BLORP_BATCH_NEED_PSS_STALL_SYNC = (1 << 5),
};
struct blorp_batch {
return 0;
GENX(3DSTATE_WM_DEPTH_STENCIL_pack)(NULL, dw, &ds);
+
+#if INTEL_NEEDS_WA_18019816803
+ /* Check if need PSS Stall sync. */
+ if (intel_needs_workaround(batch->blorp->compiler->devinfo, 18019816803) &&
+ batch->flags & BLORP_BATCH_NEED_PSS_STALL_SYNC) {
+ blorp_emit(batch, GENX(PIPE_CONTROL), pc) {
+ pc.PSSStallSyncEnable = true;
+ }
+ batch->flags &= ~BLORP_BATCH_NEED_PSS_STALL_SYNC;
+ }
+#endif
+
#else
uint32_t offset;
void *state = blorp_alloc_dynamic_state(batch,