EGL fails to initialize on etnaviv with EGL_PLATFORM_DEVICE_EXT
Since 6f192956, wlroots fails to initialize EGL on etnaviv and fallbacks to pixman instead.
phoc-wlroots-INFO: 10:59:54.219: [libseat] [libseat/libseat.c:67] Seat opened with backend 'logind'
phoc-wlroots-INFO: 10:59:54.220: [backend/session/session.c:110] Successfully loaded libseat session
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.226: [backend/session/session.c:354] Ignoring '/dev/dri/card0': not a KMS device
phoc-wlroots-INFO: 10:59:54.237: [backend/backend.c:300] Found 2 GPUs
phoc-wlroots-INFO: 10:59:54.238: [backend/drm/backend.c:174] Initializing DRM backend for /dev/dri/card1 (mxsfb-drm)
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.238: [backend/drm/drm.c:85] Using atomic DRM interface
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.238: [backend/drm/drm.c:98] ADDFB2 modifiers supported
phoc-wlroots-INFO: 10:59:54.238: [backend/drm/drm.c:260] Found 1 DRM CRTCs
phoc-wlroots-INFO: 10:59:54.238: [backend/drm/drm.c:187] Found 1 DRM planes
phoc-wlroots-INFO: 10:59:54.241: [render/egl.c:175] Supported EGL client extensions: EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_MESA_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.245: [EGL] command: eglQueryDeviceStringEXT, error: EGL_BAD_PARAMETER (0x300c), message: "eglQueryDeviceStringEXT"
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.245: [EGL] command: eglQueryDeviceStringEXT, error: EGL_BAD_PARAMETER (0x300c), message: "eglQueryDeviceStringEXT"
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.245: [render/egl.c:434] DRM device '/dev/dri/card1' has no render node, falling back to primary node
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.610: [EGL] command: eglQueryDisplayAttribEXT, error: EGL_BAD_DEVICE_EXT (0x322b), message: "eglQueryDeviceStringEXT"
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.610: [render/egl.c:275] eglQueryDeviceStringEXT(EGL_EXTENSIONS) failed
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.611: [render/egl.c:497] Failed to initialize EGL context
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.613: [render/gles2/renderer.c:693] Could not initialize EGL
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.614: [render/wlr_renderer.c:275] Failed to create GLES2 renderer
phoc-wlroots-INFO: 10:59:54.614: [render/pixman/renderer.c:521] Creating pixman renderer
phoc-wlroots-INFO: 10:59:54.614: [backend/drm/backend.c:174] Initializing DRM backend for /dev/dri/card2 (imx-dcss)
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.614: [backend/drm/drm.c:85] Using atomic DRM interface
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.614: [backend/drm/drm.c:98] ADDFB2 modifiers supported
phoc-wlroots-INFO: 10:59:54.614: [backend/drm/drm.c:260] Found 1 DRM CRTCs
phoc-wlroots-INFO: 10:59:54.614: [backend/drm/drm.c:187] Found 1 DRM planes
phoc-wlroots-INFO: 10:59:54.614: [render/egl.c:175] Supported EGL client extensions: EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_MESA_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.616: [EGL] command: eglQueryDeviceStringEXT, error: EGL_BAD_PARAMETER (0x300c), message: "eglQueryDeviceStringEXT"
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.616: [EGL] command: eglQueryDeviceStringEXT, error: EGL_BAD_PARAMETER (0x300c), message: "eglQueryDeviceStringEXT"
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.616: [render/egl.c:434] DRM device '/dev/dri/card2' has no render node, falling back to primary node
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.649: [EGL] command: eglQueryDisplayAttribEXT, error: EGL_BAD_DEVICE_EXT (0x322b), message: "eglQueryDeviceStringEXT"
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.649: [render/egl.c:275] eglQueryDeviceStringEXT(EGL_EXTENSIONS) failed
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.650: [render/egl.c:497] Failed to initialize EGL context
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.652: [render/gles2/renderer.c:693] Could not initialize EGL
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.652: [render/wlr_renderer.c:275] Failed to create GLES2 renderer
phoc-wlroots-INFO: 10:59:54.652: [render/pixman/renderer.c:521] Creating pixman renderer
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.652: [render/allocator/allocator.c:121] Trying to create drm dumb allocator
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.652: [render/allocator/allocator.c:38] drmModeCreateLease failed, falling back to plain open
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.653: [render/allocator/drm_dumb.c:229] Created DRM dumb allocator
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.653: [backend/drm/backend.c:244] Failed to query renderer texture formats
(phoc:13011): phoc-wlroots-CRITICAL **: 10:59:54.680: [backend/backend.c:308] Failed to create DRM backend
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.680: [render/allocator/allocator.c:121] Trying to create drm dumb allocator
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.680: [render/allocator/allocator.c:38] drmModeCreateLease failed, falling back to plain open
(phoc:13011): phoc-wlroots-DEBUG: 10:59:54.681: [render/allocator/drm_dumb.c:229] Created DRM dumb allocator
Tested with Mesa 21.3.0-devel (git-ad60fffd49db1c1a1089e8dd697a48c3537504cf)
drmModeGetResources: Operation not supported
Failed to retrieve information from /dev/dri/card0
Node: /dev/dri/card2
├───Driver: imx-dcss (i.MX8MQ Display Subsystem) version 1.0.0 (20190917)
│ ├───DRM_CLIENT_CAP_STEREO_3D supported
│ ├───DRM_CLIENT_CAP_UNIVERSAL_PLANES supported
│ ├───DRM_CLIENT_CAP_ATOMIC supported
│ ├───DRM_CLIENT_CAP_ASPECT_RATIO supported
│ ├───DRM_CLIENT_CAP_WRITEBACK_CONNECTORS supported
│ ├───DRM_CAP_DUMB_BUFFER = 1
│ ├───DRM_CAP_VBLANK_HIGH_CRTC = 1
│ ├───DRM_CAP_DUMB_PREFERRED_DEPTH = 0
│ ├───DRM_CAP_DUMB_PREFER_SHADOW = 0
│ ├───DRM_CAP_PRIME = 3
│ ├───DRM_CAP_TIMESTAMP_MONOTONIC = 1
│ ├───DRM_CAP_ASYNC_PAGE_FLIP = 0
│ ├───DRM_CAP_CURSOR_WIDTH = 64
│ ├───DRM_CAP_CURSOR_HEIGHT = 64
│ ├───DRM_CAP_ADDFB2_MODIFIERS = 1
│ ├───DRM_CAP_PAGE_FLIP_TARGET = 0
│ ├───DRM_CAP_CRTC_IN_VBLANK_EVENT = 1
│ ├───DRM_CAP_SYNCOBJ = 0
│ └───DRM_CAP_SYNCOBJ_TIMELINE = 0
├───Device: platform nxp,imx8mq-dcss
│ └───Available nodes: primary
├───Framebuffer size
│ ├───Width: [1, 4096]
│ └───Height: [1, 4096]
├───Connectors
│ └───Connector 0
│ ├───Object ID: 38
│ ├───Type: DisplayPort
│ ├───Status: connected
│ ├───Physical size: 480x270 mm
│ ├───Subpixel: unknown
│ ├───Encoders: {0}
│ ├───Modes
│ │ ├───1920x1080@60.00 preferred driver phsync pvsync
│ │ ├───1920x1080@60.00 driver phsync pvsync 16:9
│ │ ├───1920x1080@59.94 driver phsync pvsync 16:9
│ │ ├───1920x1080@50.00 driver phsync pvsync 16:9
│ │ ├───1680x1050@59.88 driver phsync nvsync
│ │ ├───1400x1050@59.95 driver phsync nvsync
│ │ ├───1600x900@60.00 driver phsync pvsync
│ │ ├───1280x1024@60.02 driver phsync pvsync
│ │ ├───1440x900@59.90 driver phsync nvsync
│ │ ├───1280x800@59.91 driver phsync nvsync
│ │ ├───1280x720@60.00 driver phsync pvsync
│ │ ├───1280x720@60.00 driver nhsync nvsync
│ │ ├───1280x720@60.00 driver phsync pvsync 16:9
│ │ ├───1280x720@59.94 driver phsync pvsync 16:9
│ │ ├───1280x720@50.00 driver phsync pvsync 16:9
│ │ ├───1024x768@60.00 driver nhsync nvsync
│ │ ├───800x600@60.32 driver phsync pvsync
│ │ ├───640x480@60.00 driver nhsync nvsync 4:3
│ │ ├───640x480@59.94 driver nhsync nvsync
│ │ └───640x480@59.94 driver nhsync nvsync 4:3
│ └───Properties
│ ├───"EDID" (immutable): blob = 41
│ ├───"DPMS": enum {On, Standby, Suspend, Off} = On
│ ├───"link-status": enum {Good, Bad} = Good
│ ├───"non-desktop" (immutable): range [0, 1] = 0
│ ├───"TILE" (immutable): blob = 0
│ └───"CRTC_ID" (atomic): object CRTC = 36
├───Encoders
│ └───Encoder 0
│ ├───Object ID: 37
│ ├───Type: TMDS
│ ├───CRTCS: {0}
│ └───Clones: {0}
├───CRTCs
│ └───CRTC 0
│ ├───Object ID: 36
│ ├───Mode: 1920x1080@60.00 preferred driver phsync pvsync
│ ├───Gamma size: 0
│ └───Properties
│ ├───"ACTIVE" (atomic): range [0, 1] = 1
│ ├───"MODE_ID" (atomic): blob = 42
│ │ └───1920x1080@60.00 preferred driver phsync pvsync
│ ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│ └───"VRR_ENABLED": range [0, 1] = 0
└───Planes
└───Plane 0
├───Object ID: 31
├───CRTCs: {0}
├───FB ID: 40
│ ├───Object ID: 40
│ ├───Size: 1920x1080
│ ├───Format: XRGB8888 (0x34325258)
│ ├───Modifier: DRM_FORMAT_MOD_LINEAR (0x0)
│ └───Planes:
│ └───Plane 0: offset = 0, pitch = 7680 bytes
├───Formats:
│ ├───ARGB8888 (0x34325241)
│ ├───XRGB8888 (0x34325258)
│ ├───ABGR8888 (0x34324241)
│ ├───XBGR8888 (0x34324258)
│ ├───RGBA8888 (0x34324152)
│ ├───RGBX8888 (0x34325852)
│ ├───BGRA8888 (0x34324142)
│ ├───BGRX8888 (0x34325842)
│ ├───XRGB2101010 (0x30335258)
│ ├───XBGR2101010 (0x30334258)
│ ├───RGBX1010102 (0x30335852)
│ ├───BGRX1010102 (0x30335842)
│ ├───ARGB2101010 (0x30335241)
│ ├───ABGR2101010 (0x30334241)
│ ├───RGBA1010102 (0x30334152)
│ └───BGRA1010102 (0x30334142)
└───Properties
├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
├───"FB_ID" (atomic): object framebuffer = 40
│ ├───Object ID: 40
│ ├───Size: 1920x1080
│ ├───Format: XRGB8888 (0x34325258)
│ ├───Modifier: DRM_FORMAT_MOD_LINEAR (0x0)
│ └───Planes:
│ └───Plane 0: offset = 0, pitch = 7680 bytes
├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
├───"CRTC_ID" (atomic): object CRTC = 36
├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
├───"CRTC_W" (atomic): range [0, INT32_MAX] = 1920
├───"CRTC_H" (atomic): range [0, INT32_MAX] = 1080
├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_W" (atomic): range [0, UINT32_MAX] = 1920
├───"SRC_H" (atomic): range [0, UINT32_MAX] = 1080
├───"IN_FORMATS" (immutable): blob = 32
│ ├───DRM_FORMAT_MOD_VIVANTE_TILED (0x600000000000001)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XRGB8888 (0x34325258)
│ │ └───ARGB2101010 (0x30335241)
│ ├───DRM_FORMAT_MOD_VIVANTE_SUPER_TILED (0x600000000000002)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───XRGB8888 (0x34325258)
│ │ └───ARGB2101010 (0x30335241)
│ └───DRM_FORMAT_MOD_LINEAR (0x0)
│ ├───ARGB8888 (0x34325241)
│ ├───XRGB8888 (0x34325258)
│ ├───ABGR8888 (0x34324241)
│ ├───XBGR8888 (0x34324258)
│ ├───RGBA8888 (0x34324152)
│ ├───RGBX8888 (0x34325852)
│ ├───BGRA8888 (0x34324142)
│ ├───BGRX8888 (0x34325842)
│ ├───XRGB2101010 (0x30335258)
│ ├───XBGR2101010 (0x30334258)
│ ├───RGBX1010102 (0x30335852)
│ ├───BGRX1010102 (0x30335842)
│ ├───ARGB2101010 (0x30335241)
│ ├───ABGR2101010 (0x30334241)
│ ├───RGBA1010102 (0x30334152)
│ └───BGRA1010102 (0x30334142)
├───"zpos" (immutable): range [0, 0] = 0
├───"SCALING_FILTER": enum {Default, Nearest Neighbor} = Default
└───"rotation": bitmask {rotate-0, rotate-90, rotate-180, rotate-270, reflect-x, reflect-y} = (rotate-0)
Node: /dev/dri/card1
├───Driver: mxsfb-drm (MXSFB Controller DRM) version 1.0.0 (20160824)
│ ├───DRM_CLIENT_CAP_STEREO_3D supported
│ ├───DRM_CLIENT_CAP_UNIVERSAL_PLANES supported
│ ├───DRM_CLIENT_CAP_ATOMIC supported
│ ├───DRM_CLIENT_CAP_ASPECT_RATIO supported
│ ├───DRM_CLIENT_CAP_WRITEBACK_CONNECTORS supported
│ ├───DRM_CAP_DUMB_BUFFER = 1
│ ├───DRM_CAP_VBLANK_HIGH_CRTC = 1
│ ├───DRM_CAP_DUMB_PREFERRED_DEPTH = 0
│ ├───DRM_CAP_DUMB_PREFER_SHADOW = 0
│ ├───DRM_CAP_PRIME = 3
│ ├───DRM_CAP_TIMESTAMP_MONOTONIC = 1
│ ├───DRM_CAP_ASYNC_PAGE_FLIP = 0
│ ├───DRM_CAP_CURSOR_WIDTH = 64
│ ├───DRM_CAP_CURSOR_HEIGHT = 64
│ ├───DRM_CAP_ADDFB2_MODIFIERS = 1
│ ├───DRM_CAP_PAGE_FLIP_TARGET = 0
│ ├───DRM_CAP_CRTC_IN_VBLANK_EVENT = 1
│ ├───DRM_CAP_SYNCOBJ = 0
│ └───DRM_CAP_SYNCOBJ_TIMELINE = 0
├───Device: platform fsl,imx8mq-lcdif fsl,imx28-lcdif
│ └───Available nodes: primary
├───Framebuffer size
│ ├───Width: [120, 65535]
│ └───Height: [120, 65535]
├───Connectors
│ └───Connector 0
│ ├───Object ID: 35
│ ├───Type: DSI
│ ├───Status: connected
│ ├───Physical size: 65x130 mm
│ ├───Subpixel: unknown
│ ├───Encoders: {0}
│ ├───Modes
│ │ └───720x1440@63.41 preferred driver nhsync nvsync
│ └───Properties
│ ├───"EDID" (immutable): blob = 0
│ ├───"DPMS": enum {On, Standby, Suspend, Off} = On
│ ├───"link-status": enum {Good, Bad} = Good
│ ├───"non-desktop" (immutable): range [0, 1] = 0
│ ├───"TILE" (immutable): blob = 0
│ └───"CRTC_ID" (atomic): object CRTC = 33
├───Encoders
│ └───Encoder 0
│ ├───Object ID: 34
│ ├───Type: none
│ ├───CRTCS: {0}
│ └───Clones: {0}
├───CRTCs
│ └───CRTC 0
│ ├───Object ID: 33
│ ├───Mode: 720x1440@63.41 preferred driver nhsync nvsync
│ ├───Gamma size: 0
│ └───Properties
│ ├───"ACTIVE" (atomic): range [0, 1] = 1
│ ├───"MODE_ID" (atomic): blob = 38
│ │ └───720x1440@63.41 preferred driver nhsync nvsync
│ ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│ └───"VRR_ENABLED": range [0, 1] = 0
└───Planes
└───Plane 0
├───Object ID: 31
├───CRTCs: {0}
├───FB ID: 39
│ ├───Object ID: 39
│ ├───Size: 720x1440
│ ├───Format: XRGB8888 (0x34325258)
│ ├───Modifier: DRM_FORMAT_MOD_LINEAR (0x0)
│ └───Planes:
│ └───Plane 0: offset = 0, pitch = 2880 bytes
├───Formats:
│ ├───RGB565 (0x36314752)
│ └───XRGB8888 (0x34325258)
└───Properties
├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
├───"FB_ID" (atomic): object framebuffer = 39
│ ├───Object ID: 39
│ ├───Size: 720x1440
│ ├───Format: XRGB8888 (0x34325258)
│ ├───Modifier: DRM_FORMAT_MOD_LINEAR (0x0)
│ └───Planes:
│ └───Plane 0: offset = 0, pitch = 2880 bytes
├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
├───"CRTC_ID" (atomic): object CRTC = 33
├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
├───"CRTC_W" (atomic): range [0, INT32_MAX] = 720
├───"CRTC_H" (atomic): range [0, INT32_MAX] = 1440
├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_W" (atomic): range [0, UINT32_MAX] = 720
├───"SRC_H" (atomic): range [0, UINT32_MAX] = 1440
└───"IN_FORMATS" (immutable): blob = 32
└───DRM_FORMAT_MOD_LINEAR (0x0)
├───RGB565 (0x36314752)
└───XRGB8888 (0x34325258)
$ ls -al /dev/dri/by-path/
total 0
drwxr-xr-x 2 root root 120 Oct 17 11:23 .
drwxr-xr-x 3 root root 140 Oct 17 11:23 ..
lrwxrwxrwx 1 root root 8 Oct 17 11:23 platform-30320000.lcd-controller-card -> ../card1
lrwxrwxrwx 1 root root 8 Oct 17 11:23 platform-32e00000.display-controller-card -> ../card2
lrwxrwxrwx 1 root root 8 Oct 17 11:23 platform-etnaviv-card -> ../card0
lrwxrwxrwx 1 root root 13 Oct 17 11:23 platform-etnaviv-render -> ../renderD128