-
Notifications
You must be signed in to change notification settings - Fork 215
Description
This is more of a support request than an issue with Smithay, so feel free to close at your own leisure. I'm going to lay out my setup first for some context, but feel free to just skip to the question at the end.
Device Configuration
The device in use is the PinePhone (not pro), which has a split renderer with card1 being the render node, while card0 is the display engine:
/dev/dri layout
platform-1c40000.gpu-card -> ../card1
platform-1c40000.gpu-render -> ../renderD128
platform-display-engine-card -> ../card0
The drm_info only shows details for the display engine (card0), which I believe is normal in these scenarios:
drm_info
drmModeGetResources: Operation not supported
Failed to retrieve information from /dev/dri/card1
Node: /dev/dri/card0
├───Driver: sun4i-drm (Allwinner sun4i Display Engine) version 1.0.0
│ ├───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_CLIENT_CAP_CURSOR_PLANE_HOTSPOT not 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
│ └───DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP = 0
├───Device: platform allwinner,sun50i-a64-display-engine
│ ├───Bus: /display-engine
│ └───Available nodes: primary
├───Framebuffer size
│ ├───Width: [0, 8192]
│ └───Height: [0, 8192]
├───Connectors
│ ├───Connector 0
│ │ ├───Object ID: 63
│ │ ├───Type: DSI
│ │ ├───Status: connected
│ │ ├───Physical size: 68×136 mm
│ │ ├───Subpixel: unknown
│ │ ├───Encoders: {0}
│ │ ├───Modes
│ │ │ └───720×[email protected] 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 = 50
│ └───Connector 1
│ ├───Object ID: 65
│ ├───Type: HDMI-A
│ ├───Status: disconnected
│ ├───Encoders: {1}
│ └───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 = 0
│ └───"max bpc": range [8, 16] = 0
├───Encoders
│ ├───Encoder 0
│ │ ├───Object ID: 62
│ │ ├───Type: DSI
│ │ ├───CRTCS: {0}
│ │ └───Clones: {0}
│ └───Encoder 1
│ ├───Object ID: 64
│ ├───Type: TMDS
│ ├───CRTCS: {1}
│ └───Clones: {1}
├───CRTCs
│ ├───CRTC 0
│ │ ├───Object ID: 50
│ │ ├───Legacy info
│ │ │ ├───Mode: 720×[email protected] preferred driver nhsync nvsync
│ │ │ └───Gamma size: 256
│ │ └───Properties
│ │ ├───"ACTIVE" (atomic): range [0, 1] = 1
│ │ ├───"MODE_ID" (atomic): blob = 68
│ │ │ └───720×[email protected] preferred driver nhsync nvsync
│ │ ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│ │ ├───"VRR_ENABLED": range [0, 1] = 0
│ │ ├───"GAMMA_LUT": blob = 0
│ │ └───"GAMMA_LUT_SIZE" (immutable): range [0, UINT32_MAX] = 256
│ └───CRTC 1
│ ├───Object ID: 61
│ ├───Legacy info
│ │ └───Gamma size: 256
│ └───Properties
│ ├───"ACTIVE" (atomic): range [0, 1] = 0
│ ├───"MODE_ID" (atomic): blob = 0
│ ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│ ├───"VRR_ENABLED": range [0, 1] = 0
│ ├───"GAMMA_LUT": blob = 0
│ └───"GAMMA_LUT_SIZE" (immutable): range [0, UINT32_MAX] = 256
└───Planes
├───Plane 0
│ ├───Object ID: 32
│ ├───CRTCs: {0}
│ ├───Legacy info
│ │ ├───FB ID: 0
│ │ └───Formats:
│ │ ├───BGR565 (0x36314742)
│ │ ├───BGR888 (0x34324742)
│ │ ├───BGRX4444 (0x32315842)
│ │ ├───BGRX5551 (0x35315842)
│ │ ├───BGRX8888 (0x34325842)
│ │ ├───RGB565 (0x36314752)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGBX4444 (0x32315852)
│ │ ├───RGBX5551 (0x35315852)
│ │ ├───RGBX8888 (0x34325852)
│ │ ├───XBGR1555 (0x35314258)
│ │ ├───XBGR4444 (0x32314258)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───XRGB1555 (0x35315258)
│ │ ├───XRGB4444 (0x32315258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───NV16 (0x3631564e)
│ │ ├───NV12 (0x3231564e)
│ │ ├───NV21 (0x3132564e)
│ │ ├───NV61 (0x3136564e)
│ │ ├───UYVY (0x59565955)
│ │ ├───VYUY (0x59555956)
│ │ ├───YUYV (0x56595559)
│ │ ├───YVYU (0x55595659)
│ │ ├───YUV411 (0x31315559)
│ │ ├───YUV420 (0x32315559)
│ │ ├───YUV422 (0x36315559)
│ │ ├───YVU411 (0x31315659)
│ │ ├───YVU420 (0x32315659)
│ │ └───YVU422 (0x36315659)
│ └───Properties
│ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Overlay
│ ├───"FB_ID" (atomic): object framebuffer = 0
│ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
│ ├───"CRTC_ID" (atomic): object CRTC = 0
│ ├───"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] = 0
│ ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0
│ ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0
│ ├───"IN_FORMATS" (immutable): blob = 33
│ │ └───DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
│ │ ├───BGR565 (0x36314742)
│ │ ├───BGR888 (0x34324742)
│ │ ├───BGRX4444 (0x32315842)
│ │ ├───BGRX5551 (0x35315842)
│ │ ├───BGRX8888 (0x34325842)
│ │ ├───RGB565 (0x36314752)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGBX4444 (0x32315852)
│ │ ├───RGBX5551 (0x35315852)
│ │ ├───RGBX8888 (0x34325852)
│ │ ├───XBGR1555 (0x35314258)
│ │ ├───XBGR4444 (0x32314258)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───XRGB1555 (0x35315258)
│ │ ├───XRGB4444 (0x32315258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───NV16 (0x3631564e)
│ │ ├───NV12 (0x3231564e)
│ │ ├───NV21 (0x3132564e)
│ │ ├───NV61 (0x3136564e)
│ │ ├───UYVY (0x59565955)
│ │ ├───VYUY (0x59555956)
│ │ ├───YUYV (0x56595559)
│ │ ├───YVYU (0x55595659)
│ │ ├───YUV411 (0x31315559)
│ │ ├───YUV420 (0x32315559)
│ │ ├───YUV422 (0x36315559)
│ │ ├───YVU411 (0x31315659)
│ │ ├───YVU420 (0x32315659)
│ │ └───YVU422 (0x36315659)
│ ├───"alpha": range [0, UINT16_MAX] = 65535
│ ├───"zpos": range [0, 3] = 0
│ ├───"COLOR_ENCODING": enum {ITU-R BT.601 YCbCr, ITU-R BT.709 YCbCr} = ITU-R BT.709 YCbCr
│ └───"COLOR_RANGE": enum {YCbCr limited range, YCbCr full range} = YCbCr limited range
├───Plane 1
│ ├───Object ID: 38
│ ├───CRTCs: {0}
│ ├───Legacy info
│ │ ├───FB ID: 71
│ │ │ ├───Object ID: 71
│ │ │ ├───Size: 720×1440
│ │ │ ├───Format: ARGB8888 (0x34325241)
│ │ │ ├───Modifier: DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
│ │ │ └───Planes:
│ │ │ └───Plane 0: offset = 0, pitch = 2880 bytes
│ │ └───Formats:
│ │ ├───ABGR1555 (0x35314241)
│ │ ├───ABGR4444 (0x32314241)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───ARGB1555 (0x35315241)
│ │ ├───ARGB4444 (0x32315241)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───BGR565 (0x36314742)
│ │ ├───BGR888 (0x34324742)
│ │ ├───BGRA5551 (0x35314142)
│ │ ├───BGRA4444 (0x32314142)
│ │ ├───BGRA8888 (0x34324142)
│ │ ├───BGRX8888 (0x34325842)
│ │ ├───RGB565 (0x36314752)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGBA4444 (0x32314152)
│ │ ├───RGBA5551 (0x35314152)
│ │ ├───RGBA8888 (0x34324152)
│ │ ├───RGBX8888 (0x34325852)
│ │ ├───XBGR8888 (0x34324258)
│ │ └───XRGB8888 (0x34325258)
│ └───Properties
│ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
│ ├───"FB_ID" (atomic): object framebuffer = 71
│ │ ├───Object ID: 71
│ │ ├───Size: 720×1440
│ │ ├───Format: ARGB8888 (0x34325241)
│ │ ├───Modifier: DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
│ │ └───Planes:
│ │ └───Plane 0: offset = 0, pitch = 2880 bytes
│ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
│ ├───"CRTC_ID" (atomic): object CRTC = 50
│ ├───"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 = 39
│ │ └───DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
│ │ ├───ABGR1555 (0x35314241)
│ │ ├───ABGR4444 (0x32314241)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───ARGB1555 (0x35315241)
│ │ ├───ARGB4444 (0x32315241)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───BGR565 (0x36314742)
│ │ ├───BGR888 (0x34324742)
│ │ ├───BGRA5551 (0x35314142)
│ │ ├───BGRA4444 (0x32314142)
│ │ ├───BGRA8888 (0x34324142)
│ │ ├───BGRX8888 (0x34325842)
│ │ ├───RGB565 (0x36314752)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGBA4444 (0x32314152)
│ │ ├───RGBA5551 (0x35314152)
│ │ ├───RGBA8888 (0x34324152)
│ │ ├───RGBX8888 (0x34325852)
│ │ ├───XBGR8888 (0x34324258)
│ │ └───XRGB8888 (0x34325258)
│ ├───"alpha": range [0, UINT16_MAX] = 65535
│ └───"zpos": range [0, 3] = 1
├───Plane 2
│ ├───Object ID: 42
│ ├───CRTCs: {0}
│ ├───Legacy info
│ │ ├───FB ID: 0
│ │ └───Formats:
│ │ ├───ABGR1555 (0x35314241)
│ │ ├───ABGR4444 (0x32314241)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───ARGB1555 (0x35315241)
│ │ ├───ARGB4444 (0x32315241)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───BGR565 (0x36314742)
│ │ ├───BGR888 (0x34324742)
│ │ ├───BGRA5551 (0x35314142)
│ │ ├───BGRA4444 (0x32314142)
│ │ ├───BGRA8888 (0x34324142)
│ │ ├───BGRX8888 (0x34325842)
│ │ ├───RGB565 (0x36314752)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGBA4444 (0x32314152)
│ │ ├───RGBA5551 (0x35314152)
│ │ ├───RGBA8888 (0x34324152)
│ │ ├───RGBX8888 (0x34325852)
│ │ ├───XBGR8888 (0x34324258)
│ │ └───XRGB8888 (0x34325258)
│ └───Properties
│ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Overlay
│ ├───"FB_ID" (atomic): object framebuffer = 0
│ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
│ ├───"CRTC_ID" (atomic): object CRTC = 0
│ ├───"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] = 0
│ ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0
│ ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0
│ ├───"IN_FORMATS" (immutable): blob = 43
│ │ └───DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
│ │ ├───ABGR1555 (0x35314241)
│ │ ├───ABGR4444 (0x32314241)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───ARGB1555 (0x35315241)
│ │ ├───ARGB4444 (0x32315241)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───BGR565 (0x36314742)
│ │ ├───BGR888 (0x34324742)
│ │ ├───BGRA5551 (0x35314142)
│ │ ├───BGRA4444 (0x32314142)
│ │ ├───BGRA8888 (0x34324142)
│ │ ├───BGRX8888 (0x34325842)
│ │ ├───RGB565 (0x36314752)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGBA4444 (0x32314152)
│ │ ├───RGBA5551 (0x35314152)
│ │ ├───RGBA8888 (0x34324152)
│ │ ├───RGBX8888 (0x34325852)
│ │ ├───XBGR8888 (0x34324258)
│ │ └───XRGB8888 (0x34325258)
│ ├───"alpha": range [0, UINT16_MAX] = 65535
│ └───"zpos": range [0, 3] = 2
├───Plane 3
│ ├───Object ID: 46
│ ├───CRTCs: {0}
│ ├───Legacy info
│ │ ├───FB ID: 0
│ │ └───Formats:
│ │ ├───ABGR1555 (0x35314241)
│ │ ├───ABGR4444 (0x32314241)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───ARGB1555 (0x35315241)
│ │ ├───ARGB4444 (0x32315241)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───BGR565 (0x36314742)
│ │ ├───BGR888 (0x34324742)
│ │ ├───BGRA5551 (0x35314142)
│ │ ├───BGRA4444 (0x32314142)
│ │ ├───BGRA8888 (0x34324142)
│ │ ├───BGRX8888 (0x34325842)
│ │ ├───RGB565 (0x36314752)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGBA4444 (0x32314152)
│ │ ├───RGBA5551 (0x35314152)
│ │ ├───RGBA8888 (0x34324152)
│ │ ├───RGBX8888 (0x34325852)
│ │ ├───XBGR8888 (0x34324258)
│ │ └───XRGB8888 (0x34325258)
│ └───Properties
│ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Cursor
│ ├───"FB_ID" (atomic): object framebuffer = 0
│ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
│ ├───"CRTC_ID" (atomic): object CRTC = 0
│ ├───"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] = 0
│ ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0
│ ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0
│ ├───"IN_FORMATS" (immutable): blob = 47
│ │ └───DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
│ │ ├───ABGR1555 (0x35314241)
│ │ ├───ABGR4444 (0x32314241)
│ │ ├───ABGR8888 (0x34324241)
│ │ ├───ARGB1555 (0x35315241)
│ │ ├───ARGB4444 (0x32315241)
│ │ ├───ARGB8888 (0x34325241)
│ │ ├───BGR565 (0x36314742)
│ │ ├───BGR888 (0x34324742)
│ │ ├───BGRA5551 (0x35314142)
│ │ ├───BGRA4444 (0x32314142)
│ │ ├───BGRA8888 (0x34324142)
│ │ ├───BGRX8888 (0x34325842)
│ │ ├───RGB565 (0x36314752)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGBA4444 (0x32314152)
│ │ ├───RGBA5551 (0x35314152)
│ │ ├───RGBA8888 (0x34324152)
│ │ ├───RGBX8888 (0x34325852)
│ │ ├───XBGR8888 (0x34324258)
│ │ └───XRGB8888 (0x34325258)
│ ├───"alpha": range [0, UINT16_MAX] = 65535
│ └───"zpos": range [0, 3] = 3
├───Plane 4
│ ├───Object ID: 51
│ ├───CRTCs: {1}
│ ├───Legacy info
│ │ ├───FB ID: 0
│ │ └───Formats:
│ │ ├───BGR565 (0x36314742)
│ │ ├───BGR888 (0x34324742)
│ │ ├───BGRX4444 (0x32315842)
│ │ ├───BGRX5551 (0x35315842)
│ │ ├───BGRX8888 (0x34325842)
│ │ ├───RGB565 (0x36314752)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGBX4444 (0x32315852)
│ │ ├───RGBX5551 (0x35315852)
│ │ ├───RGBX8888 (0x34325852)
│ │ ├───XBGR1555 (0x35314258)
│ │ ├───XBGR4444 (0x32314258)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───XRGB1555 (0x35315258)
│ │ ├───XRGB4444 (0x32315258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───NV16 (0x3631564e)
│ │ ├───NV12 (0x3231564e)
│ │ ├───NV21 (0x3132564e)
│ │ ├───NV61 (0x3136564e)
│ │ ├───UYVY (0x59565955)
│ │ ├───VYUY (0x59555956)
│ │ ├───YUYV (0x56595559)
│ │ ├───YVYU (0x55595659)
│ │ ├───YUV411 (0x31315559)
│ │ ├───YUV420 (0x32315559)
│ │ ├───YUV422 (0x36315559)
│ │ ├───YVU411 (0x31315659)
│ │ ├───YVU420 (0x32315659)
│ │ └───YVU422 (0x36315659)
│ └───Properties
│ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Overlay
│ ├───"FB_ID" (atomic): object framebuffer = 0
│ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
│ ├───"CRTC_ID" (atomic): object CRTC = 0
│ ├───"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] = 0
│ ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0
│ ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0
│ ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0
│ ├───"IN_FORMATS" (immutable): blob = 52
│ │ └───DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
│ │ ├───BGR565 (0x36314742)
│ │ ├───BGR888 (0x34324742)
│ │ ├───BGRX4444 (0x32315842)
│ │ ├───BGRX5551 (0x35315842)
│ │ ├───BGRX8888 (0x34325842)
│ │ ├───RGB565 (0x36314752)
│ │ ├───RGB888 (0x34324752)
│ │ ├───RGBX4444 (0x32315852)
│ │ ├───RGBX5551 (0x35315852)
│ │ ├───RGBX8888 (0x34325852)
│ │ ├───XBGR1555 (0x35314258)
│ │ ├───XBGR4444 (0x32314258)
│ │ ├───XBGR8888 (0x34324258)
│ │ ├───XRGB1555 (0x35315258)
│ │ ├───XRGB4444 (0x32315258)
│ │ ├───XRGB8888 (0x34325258)
│ │ ├───NV16 (0x3631564e)
│ │ ├───NV12 (0x3231564e)
│ │ ├───NV21 (0x3132564e)
│ │ ├───NV61 (0x3136564e)
│ │ ├───UYVY (0x59565955)
│ │ ├───VYUY (0x59555956)
│ │ ├───YUYV (0x56595559)
│ │ ├───YVYU (0x55595659)
│ │ ├───YUV411 (0x31315559)
│ │ ├───YUV420 (0x32315559)
│ │ ├───YUV422 (0x36315559)
│ │ ├───YVU411 (0x31315659)
│ │ ├───YVU420 (0x32315659)
│ │ └───YVU422 (0x36315659)
│ ├───"alpha": range [0, UINT16_MAX] = 65535
│ ├───"zpos": range [0, 1] = 0
│ ├───"COLOR_ENCODING": enum {ITU-R BT.601 YCbCr, ITU-R BT.709 YCbCr} = ITU-R BT.709 YCbCr
│ └───"COLOR_RANGE": enum {YCbCr limited range, YCbCr full range} = YCbCr limited range
└───Plane 5
├───Object ID: 57
├───CRTCs: {1}
├───Legacy info
│ ├───FB ID: 0
│ └───Formats:
│ ├───ABGR1555 (0x35314241)
│ ├───ABGR4444 (0x32314241)
│ ├───ABGR8888 (0x34324241)
│ ├───ARGB1555 (0x35315241)
│ ├───ARGB4444 (0x32315241)
│ ├───ARGB8888 (0x34325241)
│ ├───BGR565 (0x36314742)
│ ├───BGR888 (0x34324742)
│ ├───BGRA5551 (0x35314142)
│ ├───BGRA4444 (0x32314142)
│ ├───BGRA8888 (0x34324142)
│ ├───BGRX8888 (0x34325842)
│ ├───RGB565 (0x36314752)
│ ├───RGB888 (0x34324752)
│ ├───RGBA4444 (0x32314152)
│ ├───RGBA5551 (0x35314152)
│ ├───RGBA8888 (0x34324152)
│ ├───RGBX8888 (0x34325852)
│ ├───XBGR8888 (0x34324258)
│ └───XRGB8888 (0x34325258)
└───Properties
├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
├───"FB_ID" (atomic): object framebuffer = 0
├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
├───"CRTC_ID" (atomic): object CRTC = 0
├───"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] = 0
├───"CRTC_H" (atomic): range [0, INT32_MAX] = 0
├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_W" (atomic): range [0, UINT32_MAX] = 0
├───"SRC_H" (atomic): range [0, UINT32_MAX] = 0
├───"IN_FORMATS" (immutable): blob = 58
│ └───DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
│ ├───ABGR1555 (0x35314241)
│ ├───ABGR4444 (0x32314241)
│ ├───ABGR8888 (0x34324241)
│ ├───ARGB1555 (0x35315241)
│ ├───ARGB4444 (0x32315241)
│ ├───ARGB8888 (0x34325241)
│ ├───BGR565 (0x36314742)
│ ├───BGR888 (0x34324742)
│ ├───BGRA5551 (0x35314142)
│ ├───BGRA4444 (0x32314142)
│ ├───BGRA8888 (0x34324142)
│ ├───BGRX8888 (0x34325842)
│ ├───RGB565 (0x36314752)
│ ├───RGB888 (0x34324752)
│ ├───RGBA4444 (0x32314152)
│ ├───RGBA5551 (0x35314152)
│ ├───RGBA8888 (0x34324152)
│ ├───RGBX8888 (0x34325852)
│ ├───XBGR8888 (0x34324258)
│ └───XRGB8888 (0x34325258)
├───"alpha": range [0, UINT16_MAX] = 65535
└───"zpos": range [0, 1] = 1
As far as I'm aware, the DrmCompositor, its surface, drm device, and gbm device, all must be created from the same node. The DrmDevice::new call fails for card1 so to my knowledge these must all use card0, which is the display engine.
Traditionally from what I've seen with most compositors, this node is also used for dmabuf feedback. However due to an issue discovered on the PinePhone Pro, which also seems to apply to the PinePhone, not using a render node for DmabufFeedbackBuilder::new would lead to software rendering:
The Question(s)
From what I can tell, this means the DrmCompositor must use the display engine (card0), while DmabufFeedbackBuilder must use a render node. However with my web browser when using the surface's node (card0) as the target device for the preference tranche, I get rendering glitches. Note this works fine with applications that get their dmabuf feedback through mesa, but with my browser I need to pass it along manually using the actual Wayland protocol response.
Which node are the tranches supposed to use? The one that actually has the stuff show up in drm_info output (display engine card0), or the render node which is used for the base feedback type (render node card1)?
If I'm supposed to use the surface's node, is this just a driver bug?