From 2a8fefdeb0f4e259cc01e32dae40bc2f3063f5e0 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Fri, 2 Nov 2018 18:50:48 +0000 Subject: [PATCH] egl: add EGL_EXT_device_base entrypoints eglQueryDevicesEXT (unlike the other three functions) does not depend on the display. It is implemented in GLVND, which calls into each driver collecting the list of devices and presenting it to the user. For the other entrypoints, GLVND acts as pass through stub calling into the vendor library. The vendor implementation calls back into GLVND to get the vendor dispatch. Then the driver proceeds to call itself via the said dispatch. This design makes is possible to keep using "old" GLVND with newer vendor drivers. Since effectively all the extension code is within the latter itself. Without said entrypoints, any user will outright crash - as reported in the bug report. Note: there's a follow-up fix needed to our GLVND code, to make piglit happy. v2: add some beefy documentation in the commit message. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108635 Fixes: 7552fcb7b9b ("egl: add base EGL_EXT_device_base implementation") Reported-by: kyle.devir@mykolab.com Cc: kyle.devir@mykolab.com Acked-by: Eric Engestrom Signed-off-by: Emil Velikov Tested-by: Emil Velikov --- src/egl/generate/eglFunctionList.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/egl/generate/eglFunctionList.py b/src/egl/generate/eglFunctionList.py index fb5b3c30bdf..667704eb2cb 100644 --- a/src/egl/generate/eglFunctionList.py +++ b/src/egl/generate/eglFunctionList.py @@ -199,5 +199,12 @@ EGL_FUNCTIONS = ( # EGL_EXT_image_dma_buf_import_modifiers _eglFunc("eglQueryDmaBufFormatsEXT", "display"), _eglFunc("eglQueryDmaBufModifiersEXT", "display"), + + # EGL_EXT_device_base + _eglFunc("eglQueryDeviceAttribEXT", "device"), + _eglFunc("eglQueryDeviceStringEXT", "device"), + _eglFunc("eglQueryDevicesEXT", "none"), + _eglFunc("eglQueryDisplayAttribEXT", "display"), + ) -- 2.30.2