v3dv/format: add v3dv_get_format_swizzle

Heavily based on the equivalent v3d v3d_get_formar_swizzle.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
diff --git a/src/broadcom/vulkan/v3dv_formats.c b/src/broadcom/vulkan/v3dv_formats.c
index 81aa5e2..64fc9f7 100644
--- a/src/broadcom/vulkan/v3dv_formats.c
+++ b/src/broadcom/vulkan/v3dv_formats.c
@@ -201,6 +201,18 @@
    }
 }
 
+const uint8_t *
+v3dv_get_format_swizzle(VkFormat f)
+{
+   const struct v3dv_format *vf = v3dv_get_format(f);
+   static const uint8_t fallback[] = {0, 1, 2, 3};
+
+   if (!vf)
+      return fallback;
+
+   return vf->swizzle;
+}
+
 static VkFormatFeatureFlags
 image_format_features(VkFormat vk_format,
                       const struct v3dv_format *v3dv_format,
diff --git a/src/broadcom/vulkan/v3dv_private.h b/src/broadcom/vulkan/v3dv_private.h
index d23ba76..9d9030e 100644
--- a/src/broadcom/vulkan/v3dv_private.h
+++ b/src/broadcom/vulkan/v3dv_private.h
@@ -457,6 +457,7 @@
 void v3dv_loge_v(const char *format, va_list va);
 
 const struct v3dv_format *v3dv_get_format(VkFormat);
+const uint8_t *v3dv_get_format_swizzle(VkFormat f);
 void v3dv_get_internal_type_bpp_for_output_format(uint32_t format, uint32_t *type, uint32_t *bpp);
 
 uint32_t v3d_utile_width(int cpp);