egl/wayland: Pass the original wl_surface to kopper

The Vulkan WSI code creates its own proxies so there's no benefit to
passing the proxy in.  It only screws things up.

Fixes: 8ade5588e3 ("zink: add kopper api")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33860>
This commit is contained in:
Faith Ekstrand
2025-03-03 17:49:14 -06:00
committed by Marge Bot
parent fddff0d1b8
commit 99b5970eb2
+7 -1
View File
@@ -2935,7 +2935,13 @@ kopperSetSurfaceCreateInfo(void *_draw, struct kopper_loader_info *out)
wlsci->pNext = NULL;
wlsci->flags = 0;
wlsci->display = dri2_dpy->wl_dpy;
wlsci->surface = dri2_surf->wl_surface_wrapper;
/* Pass the original wl_surface through to Vulkan WSI. If we pass the
* proxy wrapper, kopper won't be able to properly de-duplicate surfaces
* and we may end up creating two VkSurfaceKHRs for the same underlying
* wl_surface. Vulkan WSI (which kopper calls into) will make its own
* queues and proxy wrappers.
*/
wlsci->surface = get_wl_surface(dri2_surf->base.NativeSurface);
out->present_opaque = dri2_surf->base.PresentOpaque;
/* convert to vulkan constants */
switch (dri2_surf->base.CompressionRate) {