radv: Fix vkCmdCopyQueryResults -> vkCmdResetPool hazard.

The Vulkan specification states:

> Query commands, for the same query and submitted to the same queue,
> execute in their entirety in submission order, relative to each other. In
> effect there is an implicit execution dependency from each such query
> command to all query commands previously submitted to the same queue.

Fixes dEQP-VK.query_pool.statistics_query.reset_after_copy.*

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17400>
This commit is contained in:
Tatsuyuki Ishi 2022-05-10 13:44:05 +09:00 committed by Marge Bot
parent 4f5e25ea8d
commit 768cd5715d

View file

@ -1046,6 +1046,13 @@ radv_query_shader(struct radv_cmd_buffer *cmd_buffer, VkPipeline *pipeline,
radv_unaligned_dispatch(cmd_buffer, count, 1, 1);
/* Ensure that the query copy dispatch is complete before a potential vkCmdResetPool because
* there is an implicit execution dependency from each such query command to all query commands
* previously submitted to the same queue.
*/
cmd_buffer->active_query_flush_bits |=
RADV_CMD_FLAG_CS_PARTIAL_FLUSH | RADV_CMD_FLAG_INV_L2 | RADV_CMD_FLAG_INV_VCACHE;
/* Restore conditional rendering. */
cmd_buffer->state.predicating = old_predicating;