Skip to content

turnip: fix dstBuffer coherence before copying queries

Yiwei Zhang requested to merge zzyiwei/mesa:tu-fix-copy-query into main

What does this MR do and why?

There can be other writes to the dstBuffer gated by proper barriers beforehand. e.g.

vkBeginCommandBuffer
vkCmdResetQueryPool
vkCmdFillBuffer -> fill dstBuffer to all zero
vkCmdPipelineBarrier -> barrier for dstBuffer
vkCmdWriteTimestamp
vkCmdCopyQueryPoolResults
vkCmdPipelineBarrier
vkEndCommandBuffer

Filed follow up cts issue: https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/4567

TEST=dEQP-VK.pipeline.*.timestamp.* with Venus on Turnip

Fixes: 487aa807 ("tu: Rewrite flushing to use barriers")

To be noted: this fix is independent from !6320 (merged) (which no longer matters after turnip uses global bo list)

Edited by Yiwei Zhang

Merge request reports