This fallback is required when we have to do partial resolves. It works the same way as other blit fallbacks for copy operations: it will bind the source image as a source texture and blit the selected region to the destination image.
The difference in this case is that the source image is multisampled and the blit shader needs to fetch and average individual samples for each texel.
This gets us to pass all the remaining test cases in dEQP-VK.api.copy_and_blit.core.resolve_image.*
f219795a269 v3dv: add a blit fallback path for vkCmdResolveImage
src/broadcom/vulkan/v3dv_meta_copy.c | 175 +++++++++++++++++++++++++++++++----
src/broadcom/vulkan/v3dv_private.h | 2 +-
2 files changed, 156 insertions(+), 21 deletions(-)