anv: Refactor dirty masking in cmd_buffer_flush_state

Instead of masking the dirty variable itself, use an appropriate mask
in the users of dirty.  This will avoid extra tracking when dealing
with Task/Mesh later.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14275>
This commit is contained in:
Caio Oliveira 2021-12-21 00:40:53 -08:00 committed by Marge Bot
parent 37fca614b8
commit de916d827f
1 changed files with 6 additions and 4 deletions

View File

@ -3759,12 +3759,14 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer *cmd_buffer)
* descriptors or push constants is dirty.
*/
dirty |= cmd_buffer->state.push_constants_dirty;
dirty &= ANV_STAGE_MASK & VK_SHADER_STAGE_ALL_GRAPHICS;
cmd_buffer_flush_push_constants(cmd_buffer, dirty);
cmd_buffer_flush_push_constants(cmd_buffer,
dirty & VK_SHADER_STAGE_ALL_GRAPHICS);
}
if (dirty)
cmd_buffer_emit_descriptor_pointers(cmd_buffer, dirty);
if (dirty & VK_SHADER_STAGE_ALL_GRAPHICS) {
cmd_buffer_emit_descriptor_pointers(cmd_buffer,
dirty & VK_SHADER_STAGE_ALL_GRAPHICS);
}
cmd_buffer_emit_clip(cmd_buffer);