mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-09 02:28:10 +02:00
vulkan/wsi/wayland: fix crash when force_bgra8_unorm_first is true
When force_bgra8_unorm_first is true, we access display->formats and change the order of certain formats. The final result is BGRA8_UNORM being the first in the format list, as some clients require this. But we are trying to do this before before setting up display->formats, so it should result in a crash. Fix this by changing the order of things. Now we first set up display->formats before trying to access it. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Reviewed-by: Simon Ser <contact@emersion.fr> Reviewed-by: Eric Engestrom <eric@engestrom.ch> Acked-by: Daniel Stone <daniels@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12117>
This commit is contained in:
parent
db2635020f
commit
1c9299eade
1 changed files with 5 additions and 5 deletions
|
|
@ -492,6 +492,11 @@ wsi_wl_display_init(struct wsi_wayland *wsi_wl,
|
|||
/* Round-trip again to get formats and modifiers */
|
||||
wl_display_roundtrip_queue(display->wl_display, display->queue);
|
||||
|
||||
if (display->sw)
|
||||
display->formats = &display->swrast.formats;
|
||||
else if (display->dmabuf.wl_dmabuf)
|
||||
display->formats = &display->dmabuf.formats;
|
||||
|
||||
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.
|
||||
|
|
@ -507,11 +512,6 @@ wsi_wl_display_init(struct wsi_wayland *wsi_wl,
|
|||
}
|
||||
}
|
||||
|
||||
if (display->sw)
|
||||
display->formats = &display->swrast.formats;
|
||||
else if (display->dmabuf.wl_dmabuf)
|
||||
display->formats = &display->dmabuf.formats;
|
||||
|
||||
out:
|
||||
/* We don't need this anymore */
|
||||
wl_registry_destroy(registry);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue