mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 22:10:10 +01:00
anv: workaround Gfx11 with optimized state emission
No real explanation so far.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 50f6903bd9 ("anv: add new low level emission & dirty state tracking")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9781
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25750>
This commit is contained in:
parent
d8a41a27b9
commit
f900b763b1
1 changed files with 16 additions and 0 deletions
|
|
@ -1151,6 +1151,11 @@ genX(cmd_buffer_flush_gfx_hw_state)(struct anv_cmd_buffer *cmd_buffer)
|
|||
device->gfx_dirty_state);
|
||||
}
|
||||
|
||||
/**
|
||||
* Put potential workarounds here if you need to reemit an instruction
|
||||
* because of another one is changing.
|
||||
*/
|
||||
|
||||
/* Since Wa_16011773973 will disable 3DSTATE_STREAMOUT, we need to reemit
|
||||
* it after.
|
||||
*/
|
||||
|
|
@ -1160,6 +1165,17 @@ genX(cmd_buffer_flush_gfx_hw_state)(struct anv_cmd_buffer *cmd_buffer)
|
|||
BITSET_SET(hw_state->dirty, ANV_GFX_STATE_STREAMOUT);
|
||||
}
|
||||
|
||||
/* Gfx11 undocumented issue :
|
||||
* https://gitlab.freedesktop.org/mesa/mesa/-/issues/9781
|
||||
*/
|
||||
#if GFX_VER == 11
|
||||
if (BITSET_TEST(hw_state->dirty, ANV_GFX_STATE_WM))
|
||||
BITSET_SET(hw_state->dirty, ANV_GFX_STATE_MULTISAMPLE);
|
||||
#endif
|
||||
|
||||
/**
|
||||
* State emission
|
||||
*/
|
||||
if (BITSET_TEST(hw_state->dirty, ANV_GFX_STATE_URB))
|
||||
anv_batch_emit_pipeline_state(&cmd_buffer->batch, pipeline, final.urb);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue