https://bugs.kde.org/show_bug.cgi?id=455720
Bug ID: 455720 Summary: Night Light broken on ARM devices (Missing Color Transform Matrix support) Product: kwin Version: unspecified Platform: unspecified OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: platform-drm Assignee: kwin-bugs-n...@kde.org Reporter: leon...@lausen.nl Target Milestone: --- Night Light is currently broken on ARM devices such as Acer Spin 513 Chromebook with Qualcomm Snapdragon 7c [1], as it relies on legacy GAMMA_LUT which is not supported by the Qualcomm SoCs. Instead of relying on GAMMA_LUT, these SoCs implement Color Transform Matrix (CTM), which for example Chrome OS uses to implement their version of night light. Both GAMMA_LUT and TM are configured through the KMS CRTC Abstraction [2]. >From IRC #aarch64-laptops: > robclark | leezu: on CrOS we use display CTM (CRTC property) on internal > display.. one could also use the GPU for that.. not sure off the top of my > head what different de's support > robclark | leezu: yes, that is correct.. GAMMA_LUT is not supported, CTM > (color transform matrix) is the way to achieve color transform > robclark | not supported in hw.. CTM is a more general purpose feature > robclark | GAMMA_LUT is kinda the legacy way, CTM is the new hotness ;-) It would be great to support Night Light on ARM Laptops by implementing Night Light via Color Transform Matrix instead of GAMMA_LUT. drm_info output showing lack of GAMMA_LUT support: Node: /dev/dri/card1 ├───Driver: msm (MSM Snapdragon DRM) version 1.9.0 (20130625) │ ├───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 = 1 │ └───DRM_CAP_SYNCOBJ_TIMELINE = 0 ├───Device: platform qcom,sc7180-mdss │ └───Available nodes: primary, render ├───Framebuffer size │ ├───Width: [0, 5120] │ └───Height: [0, 4096] ├───Connectors │ ├───Connector 0 │ │ ├───Object ID: 32 │ │ ├───Type: eDP │ │ ├───Status: connected │ │ ├───Physical size: 294x165 mm │ │ ├───Subpixel: unknown │ │ ├───Encoders: {0} │ │ ├───Modes │ │ │ └───1920x1080@60.00 preferred driver phsync nvsync │ │ └───Properties │ │ ├───"EDID" (immutable): blob = 61 │ │ ├───"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 = 59 │ └───Connector 1 │ ├───Object ID: 34 │ ├───Type: DisplayPort │ ├───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 ├───Encoders │ ├───Encoder 0 │ │ ├───Object ID: 31 │ │ ├───Type: DSI │ │ ├───CRTCS: {0, 1} │ │ └───Clones: {0} │ └───Encoder 1 │ ├───Object ID: 33 │ ├───Type: TMDS │ ├───CRTCS: {0, 1} │ └───Clones: {1} ├───CRTCs │ ├───CRTC 0 │ │ ├───Object ID: 59 │ │ ├───Legacy info │ │ │ ├───Mode: 1920x1080@60.00 preferred driver phsync nvsync │ │ │ └───Gamma size: 0 │ │ └───Properties │ │ ├───"ACTIVE" (atomic): range [0, 1] = 1 │ │ ├───"MODE_ID" (atomic): blob = 66 │ │ │ └───1920x1080@60.00 preferred driver phsync nvsync │ │ ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0 │ │ ├───"VRR_ENABLED": range [0, 1] = 0 │ │ └───"CTM": blob = 0 │ └───CRTC 1 │ ├───Object ID: 60 │ ├───Legacy info │ │ └───Gamma size: 0 │ └───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 │ └───"CTM": blob = 0 └───Planes ├───Plane 0 │ ├───Object ID: 35 │ ├───CRTCs: {0, 1, 2, 3, 4, 5, 6, 7} │ ├───Legacy info │ │ ├───FB ID: 63 │ │ │ ├───Object ID: 63 │ │ │ ├───Size: 1920x1080 │ │ │ ├───Format: XRGB8888 (0x34325258) │ │ │ ├───Modifier: DRM_FORMAT_MOD_QCOM_COMPRESSED (0x500000000000001) │ │ │ └───Planes: │ │ │ └───Plane 0: offset = 0, pitch = 7680 bytes │ │ └───Formats: │ │ ├───ARGB8888 (0x34325241) │ │ ├───ABGR8888 (0x34324241) │ │ ├───RGBA8888 (0x34324152) │ │ ├───BGRX8888 (0x34325842) │ │ ├───BGRA8888 (0x34324142) │ │ ├───XRGB8888 (0x34325258) │ │ ├───XBGR8888 (0x34324258) │ │ ├───RGBX8888 (0x34325852) │ │ ├───RGB888 (0x34324752) │ │ ├───BGR888 (0x34324742) │ │ ├───RGB565 (0x36314752) │ │ ├───BGR565 (0x36314742) │ │ ├───ARGB1555 (0x35315241) │ │ ├───ABGR1555 (0x35314241) │ │ ├───RGBA5551 (0x35314152) │ │ ├───BGRA5551 (0x35314142) │ │ ├───XRGB1555 (0x35315258) │ │ ├───XBGR1555 (0x35314258) │ │ ├───RGBX5551 (0x35315852) │ │ ├───BGRX5551 (0x35315842) │ │ ├───ARGB4444 (0x32315241) │ │ ├───ABGR4444 (0x32314241) │ │ ├───RGBA4444 (0x32314152) │ │ ├───BGRA4444 (0x32314142) │ │ ├───XRGB4444 (0x32315258) │ │ ├───XBGR4444 (0x32314258) │ │ ├───RGBX4444 (0x32315852) │ │ ├───BGRX4444 (0x32315842) │ │ ├───NV12 (0x3231564e) │ │ ├───NV21 (0x3132564e) │ │ ├───NV16 (0x3631564e) │ │ ├───NV61 (0x3136564e) │ │ ├───VYUY (0x59555956) │ │ ├───UYVY (0x59565955) │ │ ├───YUYV (0x56595559) │ │ ├───YVYU (0x55595659) │ │ ├───YUV420 (0x32315559) │ │ └───YVU420 (0x32315659) │ └───Properties │ ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary │ ├───"FB_ID" (atomic): object framebuffer = 63 │ │ ├───Object ID: 63 │ │ ├───Size: 1920x1080 │ │ ├───Format: XRGB8888 (0x34325258) │ │ ├───Modifier: DRM_FORMAT_MOD_QCOM_COMPRESSED (0x500000000000001) │ │ └───Planes: │ │ └───Plane 0: offset = 0, pitch = 7680 bytes │ ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1 │ ├───"CRTC_ID" (atomic): object CRTC = 59 │ ├───"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 = 36 │ │ ├───DRM_FORMAT_MOD_QCOM_COMPRESSED (0x500000000000001) │ │ │ ├───ARGB8888 (0x34325241) │ │ │ ├───ABGR8888 (0x34324241) │ │ │ ├───XRGB8888 (0x34325258) │ │ │ ├───XBGR8888 (0x34324258) │ │ │ ├───BGR565 (0x36314742) │ │ │ └───NV12 (0x3231564e) │ │ └───DRM_FORMAT_MOD_LINEAR (0x0) │ │ ├───ARGB8888 (0x34325241) │ │ ├───ABGR8888 (0x34324241) │ │ ├───RGBA8888 (0x34324152) │ │ ├───BGRX8888 (0x34325842) │ │ ├───BGRA8888 (0x34324142) │ │ ├───XRGB8888 (0x34325258) │ │ ├───XBGR8888 (0x34324258) │ │ ├───RGBX8888 (0x34325852) │ │ ├───RGB888 (0x34324752) │ │ ├───BGR888 (0x34324742) │ │ ├───RGB565 (0x36314752) │ │ ├───BGR565 (0x36314742) │ │ ├───ARGB1555 (0x35315241) │ │ ├───ABGR1555 (0x35314241) │ │ ├───RGBA5551 (0x35314152) │ │ ├───BGRA5551 (0x35314142) │ │ ├───XRGB1555 (0x35315258) │ │ ├───XBGR1555 (0x35314258) │ │ ├───RGBX5551 (0x35315852) │ │ ├───BGRX5551 (0x35315842) │ │ ├───ARGB4444 (0x32315241) │ │ ├───ABGR4444 (0x32314241) │ │ ├───RGBA4444 (0x32314152) │ │ ├───BGRA4444 (0x32314142) │ │ ├───XRGB4444 (0x32315258) │ │ ├───XBGR4444 (0x32314258) │ │ ├───RGBX4444 (0x32315852) │ │ ├───BGRX4444 (0x32315842) │ │ ├───NV12 (0x3231564e) │ │ ├───NV21 (0x3132564e) │ │ ├───NV16 (0x3631564e) │ │ ├───NV61 (0x3136564e) │ │ ├───VYUY (0x59555956) │ │ ├───UYVY (0x59565955) │ │ ├───YUYV (0x56595559) │ │ ├───YVYU (0x55595659) │ │ ├───YUV420 (0x32315559) │ │ └───YVU420 (0x32315659) │ ├───"zpos": range [0, 6] = 0 │ ├───"alpha": range [0, UINT16_MAX] = 65535 │ ├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} = Pre-multiplied │ ├───"rotation": bitmask {rotate-0, rotate-180, reflect-x, reflect-y} = (rotate-0) │ └───"FB_DAMAGE_CLIPS" (atomic): blob = 65 ├───Plane 1 │ ├───Object ID: 41 │ ├───CRTCs: {0, 1, 2, 3, 4, 5, 6, 7} │ ├───Legacy info │ │ ├───FB ID: 0 │ │ └───Formats: │ │ ├───ARGB8888 (0x34325241) │ │ ├───ABGR8888 (0x34324241) │ │ ├───RGBA8888 (0x34324152) │ │ ├───BGRA8888 (0x34324142) │ │ ├───XRGB8888 (0x34325258) │ │ ├───RGBX8888 (0x34325852) │ │ ├───BGRX8888 (0x34325842) │ │ ├───XBGR8888 (0x34324258) │ │ ├───RGB888 (0x34324752) │ │ ├───BGR888 (0x34324742) │ │ ├───RGB565 (0x36314752) │ │ ├───BGR565 (0x36314742) │ │ ├───ARGB1555 (0x35315241) │ │ ├───ABGR1555 (0x35314241) │ │ ├───RGBA5551 (0x35314152) │ │ ├───BGRA5551 (0x35314142) │ │ ├───XRGB1555 (0x35315258) │ │ ├───XBGR1555 (0x35314258) │ │ ├───RGBX5551 (0x35315852) │ │ ├───BGRX5551 (0x35315842) │ │ ├───ARGB4444 (0x32315241) │ │ ├───ABGR4444 (0x32314241) │ │ ├───RGBA4444 (0x32314152) │ │ ├───BGRA4444 (0x32314142) │ │ ├───XRGB4444 (0x32315258) │ │ ├───XBGR4444 (0x32314258) │ │ ├───RGBX4444 (0x32315852) │ │ └───BGRX4444 (0x32315842) │ └───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 = 42 │ │ ├───DRM_FORMAT_MOD_QCOM_COMPRESSED (0x500000000000001) │ │ │ ├───ARGB8888 (0x34325241) │ │ │ ├───ABGR8888 (0x34324241) │ │ │ ├───XRGB8888 (0x34325258) │ │ │ ├───XBGR8888 (0x34324258) │ │ │ └───BGR565 (0x36314742) │ │ └───DRM_FORMAT_MOD_LINEAR (0x0) │ │ ├───ARGB8888 (0x34325241) │ │ ├───ABGR8888 (0x34324241) │ │ ├───RGBA8888 (0x34324152) │ │ ├───BGRA8888 (0x34324142) │ │ ├───XRGB8888 (0x34325258) │ │ ├───RGBX8888 (0x34325852) │ │ ├───BGRX8888 (0x34325842) │ │ ├───XBGR8888 (0x34324258) │ │ ├───RGB888 (0x34324752) │ │ ├───BGR888 (0x34324742) │ │ ├───RGB565 (0x36314752) │ │ ├───BGR565 (0x36314742) │ │ ├───ARGB1555 (0x35315241) │ │ ├───ABGR1555 (0x35314241) │ │ ├───RGBA5551 (0x35314152) │ │ ├───BGRA5551 (0x35314142) │ │ ├───XRGB1555 (0x35315258) │ │ ├───XBGR1555 (0x35314258) │ │ ├───RGBX5551 (0x35315852) │ │ ├───BGRX5551 (0x35315842) │ │ ├───ARGB4444 (0x32315241) │ │ ├───ABGR4444 (0x32314241) │ │ ├───RGBA4444 (0x32314152) │ │ ├───BGRA4444 (0x32314142) │ │ ├───XRGB4444 (0x32315258) │ │ ├───XBGR4444 (0x32314258) │ │ ├───RGBX4444 (0x32315852) │ │ └───BGRX4444 (0x32315842) │ ├───"zpos": range [0, 6] = 0 │ ├───"alpha": range [0, UINT16_MAX] = 65535 │ ├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} = Pre-multiplied │ ├───"rotation": bitmask {rotate-0, rotate-180, reflect-x, reflect-y} = (rotate-0) │ └───"FB_DAMAGE_CLIPS" (atomic): blob = 0 ├───Plane 2 │ ├───Object ID: 47 │ ├───CRTCs: {0, 1, 2, 3, 4, 5, 6, 7} │ ├───Legacy info │ │ ├───FB ID: 0 │ │ └───Formats: │ │ ├───ARGB8888 (0x34325241) │ │ ├───ABGR8888 (0x34324241) │ │ ├───RGBA8888 (0x34324152) │ │ ├───BGRA8888 (0x34324142) │ │ ├───XRGB8888 (0x34325258) │ │ ├───RGBX8888 (0x34325852) │ │ ├───BGRX8888 (0x34325842) │ │ ├───XBGR8888 (0x34324258) │ │ ├───RGB888 (0x34324752) │ │ ├───BGR888 (0x34324742) │ │ ├───RGB565 (0x36314752) │ │ ├───BGR565 (0x36314742) │ │ ├───ARGB1555 (0x35315241) │ │ ├───ABGR1555 (0x35314241) │ │ ├───RGBA5551 (0x35314152) │ │ ├───BGRA5551 (0x35314142) │ │ ├───XRGB1555 (0x35315258) │ │ ├───XBGR1555 (0x35314258) │ │ ├───RGBX5551 (0x35315852) │ │ ├───BGRX5551 (0x35315842) │ │ ├───ARGB4444 (0x32315241) │ │ ├───ABGR4444 (0x32314241) │ │ ├───RGBA4444 (0x32314152) │ │ ├───BGRA4444 (0x32314142) │ │ ├───XRGB4444 (0x32315258) │ │ ├───XBGR4444 (0x32314258) │ │ ├───RGBX4444 (0x32315852) │ │ └───BGRX4444 (0x32315842) │ └───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] = 515 │ ├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 716 │ ├───"CRTC_W" (atomic): range [0, INT32_MAX] = 64 │ ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 64 │ ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0 │ ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0 │ ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 64 │ ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 64 │ ├───"IN_FORMATS" (immutable): blob = 48 │ │ ├───DRM_FORMAT_MOD_QCOM_COMPRESSED (0x500000000000001) │ │ │ ├───ARGB8888 (0x34325241) │ │ │ ├───ABGR8888 (0x34324241) │ │ │ ├───XRGB8888 (0x34325258) │ │ │ ├───XBGR8888 (0x34324258) │ │ │ └───BGR565 (0x36314742) │ │ └───DRM_FORMAT_MOD_LINEAR (0x0) │ │ ├───ARGB8888 (0x34325241) │ │ ├───ABGR8888 (0x34324241) │ │ ├───RGBA8888 (0x34324152) │ │ ├───BGRA8888 (0x34324142) │ │ ├───XRGB8888 (0x34325258) │ │ ├───RGBX8888 (0x34325852) │ │ ├───BGRX8888 (0x34325842) │ │ ├───XBGR8888 (0x34324258) │ │ ├───RGB888 (0x34324752) │ │ ├───BGR888 (0x34324742) │ │ ├───RGB565 (0x36314752) │ │ ├───BGR565 (0x36314742) │ │ ├───ARGB1555 (0x35315241) │ │ ├───ABGR1555 (0x35314241) │ │ ├───RGBA5551 (0x35314152) │ │ ├───BGRA5551 (0x35314142) │ │ ├───XRGB1555 (0x35315258) │ │ ├───XBGR1555 (0x35314258) │ │ ├───RGBX5551 (0x35315852) │ │ ├───BGRX5551 (0x35315842) │ │ ├───ARGB4444 (0x32315241) │ │ ├───ABGR4444 (0x32314241) │ │ ├───RGBA4444 (0x32314152) │ │ ├───BGRA4444 (0x32314142) │ │ ├───XRGB4444 (0x32315258) │ │ ├───XBGR4444 (0x32314258) │ │ ├───RGBX4444 (0x32315852) │ │ └───BGRX4444 (0x32315842) │ ├───"zpos": range [0, 6] = 0 │ ├───"alpha": range [0, UINT16_MAX] = 65535 │ ├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} = Pre-multiplied │ ├───"rotation": bitmask {rotate-0, rotate-180, reflect-x, reflect-y} = (rotate-0) │ └───"FB_DAMAGE_CLIPS" (atomic): blob = 0 └───Plane 3 ├───Object ID: 53 ├───CRTCs: {0, 1, 2, 3, 4, 5, 6, 7} ├───Legacy info │ ├───FB ID: 0 │ └───Formats: │ ├───ARGB8888 (0x34325241) │ ├───ABGR8888 (0x34324241) │ ├───RGBA8888 (0x34324152) │ ├───BGRA8888 (0x34324142) │ ├───XRGB8888 (0x34325258) │ ├───RGBX8888 (0x34325852) │ ├───BGRX8888 (0x34325842) │ ├───XBGR8888 (0x34324258) │ ├───RGB888 (0x34324752) │ ├───BGR888 (0x34324742) │ ├───RGB565 (0x36314752) │ ├───BGR565 (0x36314742) │ ├───ARGB1555 (0x35315241) │ ├───ABGR1555 (0x35314241) │ ├───RGBA5551 (0x35314152) │ ├───BGRA5551 (0x35314142) │ ├───XRGB1555 (0x35315258) │ ├───XBGR1555 (0x35314258) │ ├───RGBX5551 (0x35315852) │ ├───BGRX5551 (0x35315842) │ ├───ARGB4444 (0x32315241) │ ├───ABGR4444 (0x32314241) │ ├───RGBA4444 (0x32314152) │ ├───BGRA4444 (0x32314142) │ ├───XRGB4444 (0x32315258) │ ├───XBGR4444 (0x32314258) │ ├───RGBX4444 (0x32315852) │ └───BGRX4444 (0x32315842) └───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 = 54 │ ├───DRM_FORMAT_MOD_QCOM_COMPRESSED (0x500000000000001) │ │ ├───ARGB8888 (0x34325241) │ │ ├───ABGR8888 (0x34324241) │ │ ├───XRGB8888 (0x34325258) │ │ ├───XBGR8888 (0x34324258) │ │ └───BGR565 (0x36314742) │ └───DRM_FORMAT_MOD_LINEAR (0x0) │ ├───ARGB8888 (0x34325241) │ ├───ABGR8888 (0x34324241) │ ├───RGBA8888 (0x34324152) │ ├───BGRA8888 (0x34324142) │ ├───XRGB8888 (0x34325258) │ ├───RGBX8888 (0x34325852) │ ├───BGRX8888 (0x34325842) │ ├───XBGR8888 (0x34324258) │ ├───RGB888 (0x34324752) │ ├───BGR888 (0x34324742) │ ├───RGB565 (0x36314752) │ ├───BGR565 (0x36314742) │ ├───ARGB1555 (0x35315241) │ ├───ABGR1555 (0x35314241) │ ├───RGBA5551 (0x35314152) │ ├───BGRA5551 (0x35314142) │ ├───XRGB1555 (0x35315258) │ ├───XBGR1555 (0x35314258) │ ├───RGBX5551 (0x35315852) │ ├───BGRX5551 (0x35315842) │ ├───ARGB4444 (0x32315241) │ ├───ABGR4444 (0x32314241) │ ├───RGBA4444 (0x32314152) │ ├───BGRA4444 (0x32314142) │ ├───XRGB4444 (0x32315258) │ ├───XBGR4444 (0x32314258) │ ├───RGBX4444 (0x32315852) │ └───BGRX4444 (0x32315842) ├───"zpos": range [0, 6] = 0 ├───"alpha": range [0, UINT16_MAX] = 65535 ├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} = Pre-multiplied ├───"rotation": bitmask {rotate-0, rotate-180, reflect-x, reflect-y} = (rotate-0) └───"FB_DAMAGE_CLIPS" (atomic): blob = 0 [1]: https://acerrecertified.com/acer-spin-513-13-3-chromebook-qualcomm-7c-2-1ghz-4gb-ram-64gb-flash-chromeos-cp513-1h-s60f/ [2]: https://www.kernel.org/doc/html/v5.18/gpu/drm-kms.html#crtc-abstraction -- You are receiving this mail because: You are watching all bug changes.