anv/gen11+: Disable object level preemption

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>
This commit is contained in:
D Scott Phillips 2020-05-19 13:42:26 -07:00 committed by Marge Bot
parent 5a6beb6a24
commit 81201e4617
1 changed files with 16 additions and 0 deletions

View File

@ -237,6 +237,22 @@ genX(init_device_state)(struct anv_device *device)
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