mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 00:30:13 +01:00
anv: Emit a dummy MEDIA_VFE_STATE before switching from GPGPU to 3D
There is an object-level preemption workaround which requires this. However, even without object-level preemption, we seem to have issues with geometry flickering when 3D and compute are combined in the same batch and this appears to fix it. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109630 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111267 Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
5544b2cbbd
commit
bc612536eb
1 changed files with 19 additions and 0 deletions
|
|
@ -3827,6 +3827,25 @@ genX(flush_pipeline_select)(struct anv_cmd_buffer *cmd_buffer,
|
||||||
anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CC_STATE_POINTERS), t);
|
anv_batch_emit(&cmd_buffer->batch, GENX(3DSTATE_CC_STATE_POINTERS), t);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if GEN_GEN == 9
|
||||||
|
if (pipeline == _3D) {
|
||||||
|
/* There is a mid-object preemption workaround which requires you to
|
||||||
|
* re-emit MEDIA_VFE_STATE after switching from GPGPU to 3D. However,
|
||||||
|
* even without preemption, we have issues with geometry flickering when
|
||||||
|
* GPGPU and 3D are back-to-back and this seems to fix it. We don't
|
||||||
|
* really know why.
|
||||||
|
*/
|
||||||
|
const uint32_t subslices =
|
||||||
|
MAX2(cmd_buffer->device->instance->physicalDevice.subslice_total, 1);
|
||||||
|
anv_batch_emit(&cmd_buffer->batch, GENX(MEDIA_VFE_STATE), vfe) {
|
||||||
|
vfe.MaximumNumberofThreads =
|
||||||
|
devinfo->max_cs_threads * subslices - 1;
|
||||||
|
vfe.NumberofURBEntries = 2;
|
||||||
|
vfe.URBEntryAllocationSize = 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* From "BXML » GT » MI » vol1a GPU Overview » [Instruction]
|
/* From "BXML » GT » MI » vol1a GPU Overview » [Instruction]
|
||||||
* PIPELINE_SELECT [DevBWR+]":
|
* PIPELINE_SELECT [DevBWR+]":
|
||||||
*
|
*
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue