const struct native_display_modeset *modeset;
- const struct native_display_wayland_bufmgr *wayland_bufmgr;
+ struct native_display_wayland_bufmgr *wayland_bufmgr;
- };
- /**
+ #ifdef HAVE_WAYLAND_BACKEND
+ struct wl_drm *wl_server_drm; /* for EGL_WL_bind_wayland_display */
diff --git a/src/gallium/state_trackers/egl/common/native_wayland_drm_bufmgr.c b/src/gallium/state_trackers/egl/common/native_wayland_drm_bufmgr.c
new file mode 100644
index 0000000..1603a3a
+ struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) _buffer;
+ struct pipe_resource *resource = buffer->driver_buffer;
+
-+ if (!wayland_buffer_is_drm(&buffer->buffer))
++ if (!wayland_buffer_is_drm(wayland_drm_bufmgr(ndpy->wayland_bufmgr)->wl_server_drm, &buffer->buffer))
+ return EGL_FALSE;
+
+ switch (attribute) {
- struct wl_drm_buffer *buffer = (struct wl_drm_buffer *) _buffer;
- struct pipe_resource *resource = buffer->driver_buffer;
-
-- if (!wayland_buffer_is_drm(&buffer->buffer))
+- if (!wayland_buffer_is_drm(ndpy->wl_server_drm, &buffer->buffer))
- return EGL_FALSE;
-
- switch (attribute) {
index 03bfdda..88ac490 100644
--- a/src/gallium/state_trackers/egl/drm/native_drm.c
+++ b/src/gallium/state_trackers/egl/drm/native_drm.c
+@@ -40,7 +40,7 @@
+ #endif
+
+ #ifdef HAVE_WAYLAND_BACKEND
+-#include "common/native_wayland_drm_bufmgr_helper.h"
++#include "common/native_wayland_drm_bufmgr.h"
+ #endif
+
+ static boolean
@@ -132,6 +132,8 @@ drm_display_destroy(struct native_display *ndpy)
FREE(drmdpy->device_name);
if (drmdpy->own_gbm) {
gbm_device_destroy(&drmdpy->gbmdrm->base.base);
if (drmdpy->fd >= 0)
-@@ -195,53 +197,6 @@ drm_display_authenticate(void *user_data, uint32_t magic)
+@@ -195,51 +197,6 @@ drm_display_authenticate(void *user_data, uint32_t magic)
return drmAuthMagic(drmdpy->fd, magic);
}
-{
- struct drm_display *drmdpy = drm_display(ndpy);
-
-- if (drmdpy->wl_server_drm)
+- if (ndpy->wl_server_drm)
- return FALSE;
-
-- drmdpy->wl_server_drm = wayland_drm_init(wl_dpy,
+- ndpy->wl_server_drm = wayland_drm_init(wl_dpy,
- drmdpy->device_name,
- &wl_drm_callbacks, ndpy, 0);
-
-- if (!drmdpy->wl_server_drm)
+- if (!ndpy->wl_server_drm)
- return FALSE;
-
- return TRUE;
-drm_display_unbind_wayland_display(struct native_display *ndpy,
- struct wl_display *wl_dpy)
-{
-- struct drm_display *drmdpy = drm_display(ndpy);
--
-- if (!drmdpy->wl_server_drm)
+- if (!ndpy->wl_server_drm)
- return FALSE;
-
-- wayland_drm_uninit(drmdpy->wl_server_drm);
-- drmdpy->wl_server_drm = NULL;
+- wayland_drm_uninit(ndpy->wl_server_drm);
+- ndpy->wl_server_drm = NULL;
-
- return TRUE;
-}
#endif
drm_display_init_modeset(&drmdpy->base);
-diff --git a/src/gallium/state_trackers/egl/drm/native_drm.h b/src/gallium/state_trackers/egl/drm/native_drm.h
-index 16a4251..2c015b2 100644
---- a/src/gallium/state_trackers/egl/drm/native_drm.h
-+++ b/src/gallium/state_trackers/egl/drm/native_drm.h
-@@ -37,7 +37,7 @@
- #include "common/native_helper.h"
-
- #ifdef HAVE_WAYLAND_BACKEND
--#include "common/native_wayland_drm_bufmgr_helper.h"
-+#include "common/native_wayland_drm_bufmgr.h"
- #endif
-
- #include "gbm_gallium_drmint.h"
+#diff --git a/src/gallium/state_trackers/egl/drm/native_drm.h b/src/gallium/state_trackers/egl/drm/native_drm.h
+#index 16a4251..2c015b2 100644
+#--- a/src/gallium/state_trackers/egl/drm/native_drm.h
+#+++ b/src/gallium/state_trackers/egl/drm/native_drm.h
+#@@ -37,7 +37,7 @@
+# #include "common/native_helper.h"
+#
+# #ifdef HAVE_WAYLAND_BACKEND
+#-#include "common/native_wayland_drm_bufmgr_helper.h"
+#+#include "common/native_wayland_drm_bufmgr.h"
+# #endif
+#
+# #include "gbm_gallium_drmint.h"
diff --git a/src/gallium/state_trackers/egl/wayland/native_drm.c b/src/gallium/state_trackers/egl/wayland/native_drm.c
index fc8aac7..a4bcdd8 100644
--- a/src/gallium/state_trackers/egl/wayland/native_drm.c
- if (drmdpy->wl_server_drm)
- return FALSE;
-
-- drmdpy->wl_server_drm =
+- ndpy->wl_server_drm =
- wayland_drm_init(wl_dpy, drmdpy->device_name,
- &wl_drm_callbacks, ndpy, 0);
-
- if (dri2dpy->wl_server_drm)
- return FALSE;
-
-- dri2dpy->wl_server_drm = wayland_drm_init(wl_dpy,
+- ndpy->wl_server_drm = wayland_drm_init(wl_dpy,
- x11_screen_get_device_name(dri2dpy->xscr),
- &wl_drm_callbacks, ndpy, 0);
-