radv: Use access helpers for flushing with meta operations.
This way we're properly using the vulkan barrier paradigm instead of adhoc guessing what caches need to be flushed. This is more robust for cache policy changes as we now don't have to revisit all the meta operations all the time. Note that a barrier has both a src and dst part though. So barrier: flush src meta op flush dst becomes barrier: flush barrier src flush meta op dst meta op flush meta op src flush barrier dst And there are some places where we've been able to replace a CB flush with a shader flush because that is what we'd need according to vulkan rules (and it turns out that in the cases the CB flush mattered the app will set the bit in one of the relevant flushes or it was needed as a result of an optimization that we counter-acted in the previous patch.) Reviewed-by:Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <mesa/mesa!7202>
- src/amd/vulkan/radv_cmd_buffer.c 21 additions, 26 deletionssrc/amd/vulkan/radv_cmd_buffer.c
- src/amd/vulkan/radv_meta_buffer.c 9 additions, 6 deletionssrc/amd/vulkan/radv_meta_buffer.c
- src/amd/vulkan/radv_meta_clear.c 15 additions, 12 deletionssrc/amd/vulkan/radv_meta_clear.c
- src/amd/vulkan/radv_meta_fast_clear.c 7 additions, 8 deletionssrc/amd/vulkan/radv_meta_fast_clear.c
- src/amd/vulkan/radv_meta_fmask_expand.c 3 additions, 1 deletionsrc/amd/vulkan/radv_meta_fmask_expand.c
- src/amd/vulkan/radv_meta_resolve.c 13 additions, 4 deletionssrc/amd/vulkan/radv_meta_resolve.c
- src/amd/vulkan/radv_meta_resolve_cs.c 12 additions, 10 deletionssrc/amd/vulkan/radv_meta_resolve_cs.c
- src/amd/vulkan/radv_meta_resolve_fs.c 5 additions, 2 deletionssrc/amd/vulkan/radv_meta_resolve_fs.c
- src/amd/vulkan/radv_private.h 9 additions, 1 deletionsrc/amd/vulkan/radv_private.h
- src/amd/vulkan/radv_query.c 2 additions, 2 deletionssrc/amd/vulkan/radv_query.c