turnip: Update query availability on render pass end
authorBrian Ho <brian@brkho.com>
Thu, 16 Jan 2020 17:15:45 +0000 (12:15 -0500)
committerMarge Bot <eric+marge@anholt.net>
Fri, 24 Jan 2020 18:14:01 +0000 (18:14 +0000)
commit24b95485dc814c84dbf53f4bf299f9b298a566c4
tree81dacc509669fecda8aa7e11055ddd0d16384a86
parentf750dd2ab8b4479f0ada0c49f13870e75cc5cd08
turnip: Update query availability on render pass end

Unlike on an immidiate-mode renderer, Turnip only renders tiles on
vkCmdEndRenderPass. As such, we need to track all queries that were
active in a given render pass and defer setting the available bit
on those queries until after all tiles have rendered.

This commit adds a draw_epilogue_cs to tu_cmd_buffer that is
executed as an IB at the end of tu_CmdEndRenderPass. We then emit
packets to this command stream that update the availability bit of a
given query in tu_CmdEndQuery.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3279>
src/freedreno/vulkan/tu_cmd_buffer.c
src/freedreno/vulkan/tu_pass.c
src/freedreno/vulkan/tu_private.h
src/freedreno/vulkan/tu_query.c