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
eglarray.h
eglconfig.c
eglconfig.h
eglcontext.c egl: support no error attribute set to false with ES 1.1 2021-04-09 08:02:21 +03:00
eglcontext.h
eglcurrent.c util: Add a helper macro for defining initial-exec variables. 2021-06-02 03:10:49 +00:00
eglcurrent.h
egldefines.h
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
egldispatchstubs.h
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
eglglobals.c egl: fix in expected type 2021-06-19 19:34:20 +00:00
eglglobals.h
eglglvnd.c
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
egllog.h
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
eglsync.h
egltypedefs.h