mesa/src/egl/main
Simon Ser 2a860bb8c3 egl: add support for EGL_EXT_device_drm_render_node
This new EGL extension has been introduced in [1].

When we have a DRM device and a render node, we can advertise the
extension and return the render node name for the
EGL_DRM_RENDER_NODE_FILE_EXT query.

For the special software EGL device, we can advertise the extension
and return NULL for the EGL_DRM_RENDER_NODE_FILE_EXT query, because
we can guarantee that llvmpipe will never use a render node for
rendering operations.

However, llvmpipe might be using a primary node when used with the
GBM platform. So we can't advertise EXT_device_drm in this case.

When we have a DRM device but no render node, that means we're on a
split render/display SoC. We _should_ return the render node used
by the renderonly driver, however Mesa needs more plumbing to allow
this, so let's just disable the extension for now.

[1]: https://github.com/KhronosGroup/EGL-Registry/pull/127

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11797>
2021-07-22 17:12:35 +00:00
..
50_mesa.json meson: Make the glvnd vendor name configurable 2020-12-03 22:36:27 +00:00
egl.def
eglapi.c egl: zero is a valid fd 2021-06-07 20:14:25 +00:00
eglarray.c egl: _eglFilterArray's filter is always non-null 2017-02-16 15:27:20 +00:00
eglarray.h
eglconfig.c egl: drop unused _EGLDriver from _eglGetConfigs()/_eglChooseConfig()/_eglGetConfigAttrib() 2020-08-16 13:49:18 +00:00
eglconfig.h egl: drop unused _EGLDriver from _eglGetConfigs()/_eglChooseConfig()/_eglGetConfigAttrib() 2020-08-16 13:49:18 +00:00
eglcontext.c egl: support no error attribute set to false with ES 1.1 2021-04-09 08:02:21 +03:00
eglcontext.h egl: drop unused _EGLDriver & _EGLDisplay from _eglQueryContext() 2020-08-16 13:49:18 +00:00
eglcurrent.c util: Add a helper macro for defining initial-exec variables. 2021-06-02 03:10:49 +00:00
eglcurrent.h egl: simplify _eglDebugReport* API 2017-09-19 19:07:16 +01:00
egldefines.h egl: remove unused include 2019-01-11 14:37:47 +00:00
egldevice.c egl: add support for EGL_EXT_device_drm_render_node 2021-07-22 17:12:35 +00:00
egldevice.h egl: add support for EGL_EXT_device_drm_render_node 2021-07-22 17:12:35 +00:00
egldispatchstubs.c egl/glvnd: correctly report errors when vendor cannot be found 2018-11-05 20:53:05 +00:00
egldispatchstubs.h EGL: Implement the libglvnd interface for EGL (v3) 2017-04-17 13:03:58 +01:00
egldisplay.c Add EGL xcb platform 2020-11-12 16:39:47 +00:00
egldisplay.h egl: fix EGL_EXT_protected_content/surface mixup 2020-12-17 10:05:42 +01:00
egldriver.h egl: document which driver hooks are only required by extensions 2020-08-27 23:06:55 +02:00
eglentrypoint.h Revert "egl: implement new functions from EGL_EXT_image_flush_external" 2019-11-14 07:46:04 +02:00
eglglobals.c egl: fix in expected type 2021-06-19 19:34:20 +00:00
eglglobals.h egl: simplify client/platform extension handling 2020-04-21 22:20:24 +00:00
eglglvnd.c egl: simplify client/platform extension handling 2020-04-21 22:20:24 +00:00
eglimage.c egl: fix EGL_EXT_protected_content/surface mixup 2020-12-17 10:05:42 +01:00
eglimage.h egl: handle EGL_PROTECTED_CONTENT_EXT for eglImage 2020-11-02 10:15:47 +01:00
egllog.c win32: unify strcasecmp definitions 2019-08-15 20:23:44 +02:00
egllog.h egl: remove no longer needed logger infra 2017-05-08 15:33:54 +01:00
eglsurface.c egl: fix EGL_EXT_protected_content/surface mixup 2020-12-17 10:05:42 +01:00
eglsurface.h egl: implement EGL_EXT_protected_surface support 2020-11-02 10:15:47 +01:00
eglsync.c egl: replace _EGLDriver with _EGLDisplay->Driver in _eglGetSyncAttrib() 2020-08-16 13:49:18 +00:00
eglsync.h egl: replace _EGLDriver with _EGLDisplay->Driver in _eglGetSyncAttrib() 2020-08-16 13:49:18 +00:00
egltypedefs.h egl: inline _EGLAPI into _EGLDriver 2020-07-21 00:59:43 +00:00