From d4975a80bfbba5ae54f3cb1d2b33d030c6880ac4 Mon Sep 17 00:00:00 2001 From: Robert Foss Date: Thu, 9 Nov 2023 15:16:46 +0100 Subject: [PATCH] egl/surfaceless: Fix EGL_DEVICE_EXT implementation The native_display checks are incorrect and partially never executed due to native_display always being NULL. Fixes: 1efaa858890 ("egl: Fix attrib_list[0] == EGL_NONE check") Signed-off-by: Robert Foss Reviewed-by: Adam Jackson Part-of: (cherry picked from commit cda9980f9639093cf86897a760e90c89df7b6c0f) --- .pick_status.json | 2 +- src/egl/main/egldisplay.c | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.pick_status.json b/.pick_status.json index dda50bb..a105cb1 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1384,7 +1384,7 @@ "description": "egl/surfaceless: Fix EGL_DEVICE_EXT implementation", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "1efaa85889051978f806c4ea7c6d4997329624e5", "notes": null diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c index dd4926c..4eadb8f 100644 --- a/src/egl/main/egldisplay.c +++ b/src/egl/main/egldisplay.c @@ -642,6 +642,7 @@ _EGLDisplay * _eglGetSurfacelessDisplay(void *native_display, const EGLAttrib *attrib_list) { _EGLDisplay *dpy; + _EGLDevice *dev = NULL; /* Any native display must be an EGLDeviceEXT we know about */ if (native_display != NULL) { @@ -657,8 +658,8 @@ _eglGetSurfacelessDisplay(void *native_display, const EGLAttrib *attrib_list) switch (attrib) { case EGL_DEVICE_EXT: - if ((native_display && native_display != (void *)value) || - (native_display != _eglLookupDevice(native_display))) { + dev = _eglLookupDevice((void *)value); + if (!dev) { _eglError(EGL_BAD_DEVICE_EXT, "eglGetPlatformDisplay"); return NULL; } @@ -671,10 +672,9 @@ _eglGetSurfacelessDisplay(void *native_display, const EGLAttrib *attrib_list) } } - dpy = - _eglFindDisplay(_EGL_PLATFORM_SURFACELESS, native_display, attrib_list); + dpy = _eglFindDisplay(_EGL_PLATFORM_SURFACELESS, NULL, attrib_list); if (dpy) { - dpy->Device = native_display; + dpy->Device = dev; } return dpy; -- 2.7.4