mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 05:28:05 +02:00
anv: dirty only state impacted by blorp_exec
Instead of dirtying all state after blorp operations, avoid dirtying state that blorp never touches. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5077 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12567>
This commit is contained in:
parent
fab1ad1a11
commit
5bf6987873
1 changed files with 19 additions and 1 deletions
|
|
@ -332,7 +332,25 @@ genX(blorp_exec)(struct blorp_batch *batch,
|
|||
"after blorp BTI change");
|
||||
#endif
|
||||
|
||||
/* Calculate state that does not get touched by blorp.
|
||||
* Flush everything else.
|
||||
*/
|
||||
anv_cmd_dirty_mask_t skip_bits = ANV_CMD_DIRTY_DYNAMIC_SCISSOR |
|
||||
ANV_CMD_DIRTY_DYNAMIC_DEPTH_BOUNDS |
|
||||
ANV_CMD_DIRTY_INDEX_BUFFER |
|
||||
ANV_CMD_DIRTY_XFB_ENABLE |
|
||||
ANV_CMD_DIRTY_DYNAMIC_LINE_STIPPLE |
|
||||
ANV_CMD_DIRTY_DYNAMIC_DEPTH_BOUNDS_TEST_ENABLE |
|
||||
ANV_CMD_DIRTY_DYNAMIC_SAMPLE_LOCATIONS |
|
||||
ANV_CMD_DIRTY_DYNAMIC_SHADING_RATE |
|
||||
ANV_CMD_DIRTY_DYNAMIC_PRIMITIVE_RESTART_ENABLE;
|
||||
|
||||
if (!params->wm_prog_data) {
|
||||
skip_bits |= ANV_CMD_DIRTY_DYNAMIC_COLOR_BLEND_STATE |
|
||||
ANV_CMD_DIRTY_DYNAMIC_LOGIC_OP;
|
||||
}
|
||||
|
||||
cmd_buffer->state.gfx.vb_dirty = ~0;
|
||||
cmd_buffer->state.gfx.dirty = ~0;
|
||||
cmd_buffer->state.gfx.dirty |= ~skip_bits;
|
||||
cmd_buffer->state.push_constants_dirty = ~0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue