X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fvulkan%2Fwsi%2Fwsi_common_wayland.c;h=dcea92a858a02b5bdeaced883f6acaaab032a72b;hb=7893872a6c46a65d2f12bc0ae6bc4bd61fd3f8a1;hp=438c2f50da39e57fe5d88fa554954252b824bf0f;hpb=6659d11ff0c639c49823fdaa0cf23c7fef7f2582;p=mesa.git diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c index 438c2f50da3..dcea92a858a 100644 --- a/src/vulkan/wsi/wsi_common_wayland.c +++ b/src/vulkan/wsi/wsi_common_wayland.c @@ -421,6 +421,21 @@ wsi_wl_display_init(struct wsi_wayland *wsi_wl, if (display->drm.wl_drm || display->dmabuf.wl_dmabuf) wl_display_roundtrip_queue(display->wl_display, display->queue); + if (wsi_wl->wsi->force_bgra8_unorm_first) { + /* Find BGRA8_UNORM in the list and swap it to the first position if we + * can find it. Some apps get confused if SRGB is first in the list. + */ + VkFormat *first_fmt = u_vector_head(display->formats); + VkFormat *iter_fmt; + u_vector_foreach(iter_fmt, display->formats) { + if (*iter_fmt == VK_FORMAT_B8G8R8A8_UNORM) { + *iter_fmt = *first_fmt; + *first_fmt = VK_FORMAT_B8G8R8A8_UNORM; + break; + } + } + } + /* We need prime support for wl_drm */ if (display->drm.wl_drm && (display->drm.capabilities & WL_DRM_CAPABILITY_PRIME)) {