Mesa (master): egl/wayland: Emit EGL_BAD_PARAMETER for eglCreatePlatformPixmapSurface

Chad Versace chadversary at kemper.freedesktop.org
Mon Mar 17 23:14:39 UTC 2014


Module: Mesa
Branch: master
Commit: 9a40ee16d0be3a08ac2f467311673f4b9333191d
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9a40ee16d0be3a08ac2f467311673f4b9333191d

Author: Chad Versace <chad.versace at linux.intel.com>
Date:   Sun Feb  9 09:13:27 2014 -0800

egl/wayland: Emit EGL_BAD_PARAMETER for eglCreatePlatformPixmapSurface

>From the EGL_EXT_wayland_spec, version 3:

  It is not valid to call eglCreatePlatformPixmapSurfaceEXT with a <dpy>
  that belongs to Wayland. Any such call fails and generates
  EGL_BAD_PARAMETER.

Signed-off-by: Chad Versace <chad.versace at linux.intel.com>

---

 src/egl/drivers/dri2/platform_wayland.c |   18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index 8556466..691f3e1 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -202,6 +202,22 @@ dri2_wl_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
    return surf;
 }
 
+static _EGLSurface *
+dri2_wl_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *disp,
+                              _EGLConfig *conf, void *native_window,
+                              const EGLint *attrib_list)
+{
+   /* From the EGL_EXT_platform_wayland spec, version 3:
+    *
+    *   It is not valid to call eglCreatePlatformPixmapSurfaceEXT with a <dpy>
+    *   that belongs to Wayland. Any such call fails and generates
+    *   EGL_BAD_PARAMETER.
+    */
+   _eglError(EGL_BAD_PARAMETER, "cannot create EGL pixmap surfaces on "
+             "Wayland");
+   return NULL;
+}
+
 /**
  * Called via eglDestroySurface(), drv->API.DestroySurface().
  */
@@ -936,7 +952,7 @@ dri2_wl_setup_swap_interval(struct dri2_egl_display *dri2_dpy)
 static struct dri2_egl_display_vtbl dri2_wl_display_vtbl = {
    .authenticate = dri2_wl_authenticate,
    .create_window_surface = dri2_wl_create_window_surface,
-   .create_pixmap_surface = dri2_fallback_create_pixmap_surface,
+   .create_pixmap_surface = dri2_wl_create_pixmap_surface,
    .create_pbuffer_surface = dri2_fallback_create_pbuffer_surface,
    .destroy_surface = dri2_wl_destroy_surface,
    .create_image = dri2_create_image_khr,




More information about the mesa-commit mailing list