An unknown issue is causing vs push constants to become corrupted
during object-level preemption. For now, restrict to command
buffer level preemption to avoid rendering corruption.
Cc: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5110>
lri.DataDWord = cache_mode_0;
}
}
+
+ /* an unknown issue is causing vs push constants to become
+ * corrupted during object-level preemption. For now, restrict
+ * to command buffer level preemption to avoid rendering
+ * corruption.
+ */
+ uint32_t cs_chicken1;
+ anv_pack_struct(&cs_chicken1,
+ GENX(CS_CHICKEN1),
+ .ReplayMode = MidcmdbufferPreemption,
+ .ReplayModeMask = true);
+
+ anv_batch_emit(&batch, GENX(MI_LOAD_REGISTER_IMM), lri) {
+ lri.RegisterOffset = GENX(CS_CHICKEN1_num);
+ lri.DataDWord = cs_chicken1;
+ }
#endif
#if GEN_GEN == 12