Mesa (master): tu: Rewrite flushing to use barriers

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jun 9 15:03:44 UTC 2020


Module: Mesa
Branch: master
Commit: 487aa807bd1b70602fcb6fbdabd101d4cff7c07b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=487aa807bd1b70602fcb6fbdabd101d4cff7c07b

Author: Connor Abbott <cwabbott0 at gmail.com>
Date:   Thu Apr  2 17:48:19 2020 +0200

tu: Rewrite flushing to use barriers

Replace the various ad-hoc flushes that we've inserted, copied from
freedreno, etc. with a unified system that uses the user-supplied
information via vkCmdPipelineBarrier() and subpass dependencies.

There are a few notable differences in behavior:

- We now move setting RB_CCU_CNTL up a little in the gmem case, but
hopefully that won't matter too much. This matches what the Vulkan blob
does.

- We properly implement delayed setting of events, completing our
implementaton of events.

- Finally, of course, we should be a lot less flush-happy. We won't emit
useless CCU/cache flushes with multiple copies, renderpasses, etc. that
don't depend on each other, and also won't flush/invalidate the cache
around renderpasses unless we actually need to.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4964>

---

 src/freedreno/vulkan/tu_clear_blit.c | 110 +++---
 src/freedreno/vulkan/tu_cmd_buffer.c | 662 +++++++++++++++++++++++++++++------
 src/freedreno/vulkan/tu_pass.c       | 291 +++++++++++++++
 src/freedreno/vulkan/tu_private.h    | 140 +++++++-
 4 files changed, 1049 insertions(+), 154 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=487aa807bd1b70602fcb6fbdabd101d4cff7c07b


More information about the mesa-commit mailing list