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:
committed by
Marge Bot
parent
fddff0d1b8
commit
99b5970eb2
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user