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: <mesa/mesa!4964>
- src/freedreno/vulkan/tu_clear_blit.c 62 additions, 48 deletionssrc/freedreno/vulkan/tu_clear_blit.c
- src/freedreno/vulkan/tu_cmd_buffer.c 558 additions, 104 deletionssrc/freedreno/vulkan/tu_cmd_buffer.c
- src/freedreno/vulkan/tu_pass.c 291 additions, 0 deletionssrc/freedreno/vulkan/tu_pass.c
- src/freedreno/vulkan/tu_private.h 138 additions, 2 deletionssrc/freedreno/vulkan/tu_private.h