v3dv: be more careful when restoring dirty state after meta operations
authorIago Toral Quiroga <itoral@igalia.com>
Fri, 16 Dec 2022 11:31:27 +0000 (12:31 +0100)
committerMarge Bot <emma+marge@anholt.net>
Fri, 16 Dec 2022 12:18:36 +0000 (12:18 +0000)
commitdf8611e816295eb27139ce966a6d37d78893fa65
treec2cc14bdfc62ad3cc249d88b6376d3c152b3844b
parent3cc863649fe6040c1284d8ac753cd418aaad3c75
v3dv: be more careful when restoring dirty state after meta operations

So far we have been only restoring dirty dynamic states used by meta
pipelines however, static state from meta pipelines will also clear
dirty flags, preventing follow-up draw calls in the command buffer
to honor these if they are flagged as dynamic states in their
pipelines. Fix this by always resetting all dirty state flags after
a meta operation so we re-emit all the state we need with the next draw
call.

Fixes:
dEQP-VK.dynamic_state.monolithic.image.clear

cc: mesa-stable

Reviewed-by: Alejandro PiƱeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20356>
src/broadcom/vulkan/v3dv_cmd_buffer.c
src/broadcom/vulkan/v3dv_event.c
src/broadcom/vulkan/v3dv_meta_clear.c
src/broadcom/vulkan/v3dv_meta_copy.c
src/broadcom/vulkan/v3dv_private.h
src/broadcom/vulkan/v3dv_query.c