mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-05 22:00:11 +01:00
blorp: fix hangs with mesh enabled
Move mesh URB allocations together with the other stages. This fixes a hang that started happening with mesh enabled after419531c5d9("intel/blorp: add a new flag to communicate PSS sync need") Bspec 45352 says: L3 Space allocation can only be changed when the GPU pipeline is completely flushed. It's likely that the PIPE_CONTROL added in that commit was breaking that assumption and the URB allocation happening afterwards at the end of the pipeline emission would then hang. And before that, we were probably just getting lucky. Reviewed-by: Caio Oliveira <caio.oliveira@intel.com> (cherry picked from commitbcde58ea86) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25188>
This commit is contained in:
parent
7f766cfb79
commit
73ccbcab60
1 changed files with 8 additions and 6 deletions
|
|
@ -267,6 +267,14 @@ emit_urb_config(struct blorp_batch *batch,
|
|||
urb.VSNumberofURBEntries = entries[i];
|
||||
}
|
||||
}
|
||||
|
||||
if (batch->blorp->config.use_mesh_shading) {
|
||||
#if GFX_VERx10 >= 125
|
||||
blorp_emit(batch, GENX(3DSTATE_URB_ALLOC_MESH), zero);
|
||||
blorp_emit(batch, GENX(3DSTATE_URB_ALLOC_TASK), zero);
|
||||
#endif
|
||||
}
|
||||
|
||||
#else /* GFX_VER < 7 */
|
||||
blorp_emit_urb_config(batch, vs_entry_size, sf_entry_size);
|
||||
#endif
|
||||
|
|
@ -1422,12 +1430,6 @@ blorp_emit_pipeline(struct blorp_batch *batch,
|
|||
|
||||
if (batch->blorp->config.use_mesh_shading) {
|
||||
#if GFX_VERx10 >= 125
|
||||
blorp_emit(batch, GENX(3DSTATE_URB_ALLOC_MESH), zero);
|
||||
blorp_emit(batch, GENX(3DSTATE_URB_ALLOC_TASK), zero);
|
||||
|
||||
blorp_emit(batch, GENX(3DSTATE_MESH_SHADER), zero);
|
||||
blorp_emit(batch, GENX(3DSTATE_TASK_SHADER), zero);
|
||||
|
||||
blorp_emit(batch, GENX(3DSTATE_MESH_CONTROL), zero);
|
||||
blorp_emit(batch, GENX(3DSTATE_TASK_CONTROL), zero);
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue