mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-25 08:18:11 +02:00
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>
(cherry picked from commit 768cd5715d)
This commit is contained in:
parent
09588251ff
commit
95d522f475
2 changed files with 8 additions and 1 deletions
|
|
@ -1444,7 +1444,7 @@
|
|||
"description": "radv: Fix vkCmdCopyQueryResults -> vkCmdResetPool hazard.",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -854,6 +854,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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue