mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 11:38:05 +02:00
turnip: flush cache for dstBuffer in vkCmdCopyQueryPoolResults
There can be other writes to the dstBuffer gated by proper barriers
beforehand.
TEST=dEQP-VK.pipeline.*.timestamp.* with Venus on Turnip
Fixes: 487aa807bd ("tu: Rewrite flushing to use barriers")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24245>
This commit is contained in:
parent
950a0b6a63
commit
a89752d630
3 changed files with 7 additions and 1 deletions
|
|
@ -184,7 +184,7 @@ tu6_emit_flushes(struct tu_cmd_buffer *cmd_buffer,
|
|||
}
|
||||
|
||||
/* "Normal" cache flushes outside the renderpass, that don't require any special handling */
|
||||
static void
|
||||
void
|
||||
tu_emit_cache_flush(struct tu_cmd_buffer *cmd_buffer)
|
||||
{
|
||||
tu6_emit_flushes(cmd_buffer, &cmd_buffer->cs, &cmd_buffer->state.cache);
|
||||
|
|
|
|||
|
|
@ -624,6 +624,9 @@ void tu_render_pass_state_merge(struct tu_render_pass_state *dst,
|
|||
VkResult tu_cmd_buffer_begin(struct tu_cmd_buffer *cmd_buffer,
|
||||
const VkCommandBufferBeginInfo *pBeginInfo);
|
||||
|
||||
void
|
||||
tu_emit_cache_flush(struct tu_cmd_buffer *cmd_buffer);
|
||||
|
||||
void tu_emit_cache_flush_renderpass(struct tu_cmd_buffer *cmd_buffer);
|
||||
|
||||
void tu_emit_cache_flush_ccu(struct tu_cmd_buffer *cmd_buffer,
|
||||
|
|
|
|||
|
|
@ -614,6 +614,9 @@ emit_copy_query_pool_results(struct tu_cmd_buffer *cmdbuf,
|
|||
VkDeviceSize stride,
|
||||
VkQueryResultFlags flags)
|
||||
{
|
||||
/* Flush cache for the buffer to copy to. */
|
||||
tu_emit_cache_flush(cmdbuf);
|
||||
|
||||
/* From the Vulkan 1.1.130 spec:
|
||||
*
|
||||
* vkCmdCopyQueryPoolResults is guaranteed to see the effect of previous
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue