If a format is not supported by the TLB, we can still use the TLB path if we setup the render target using a compatible format. The only caveat is that for clears we need to pack the clear value using the original format of the underlying image, not the compatible format.
With this change we get to use the TLB path successfully for all supported image formats (except a1r5g5b5, at least for now) so long as the region starts at (0,0), and we only need to consider fallback paths for partial copies and clears, not because of the format.
This gets us to pass a few extra hundreds of tests in: dEQP-VK.api.image_clearing.core.clear_color_image.*
7de80fad741 v3dv: use compatible TLB formats if possible during copies and clears
src/broadcom/vulkan/v3dv_meta_copy.c | 253 ++++++++++++++++++++++++++---------
1 file changed, 189 insertions(+), 64 deletions(-)