在OpenHarmony上适配图形显示【5】——DRM 设备信息查询工具drm_info 原创

离北况归
发布于 2025-10-29 15:16
浏览
0收藏

系列文章

drminfo

drminfo 是一个命令行工具,它可以将系统里 DRM 设备的所有信息都 dump 出来,很适合用于调试。

开源地址:

oh上编译方法:

git clone https://gitee.com/OpenHarmony_rk_equipment_transplantation/ttyd_openharmony.git

cd ttyd_openharmony/lycium/
# 设置oh交叉编译环境
export OHOS_SDK=/root/OpenHarmony/cix_myself_5.0.0/prebuilts/ohos-sdk/linux/12

# 编译依赖库
./build.sh drminfo

# 编译好的文件在ttyd_openharmony/lycium/usr/drminfo

oh上效果

以rk3568为例,我们可以用drminfo查询Plane支持哪些格式等

在OpenHarmony上适配图形显示【5】——DRM 设备信息查询工具drm_info-鸿蒙开发者社区

# ./drm_info
Node: /dev/dri/card0
├───Driver: rockchip (RockChip Soc DRM) version 3.0.0 (20140818)
│   ├───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 = 1
│   ├───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 not supported
├───Device: platform rockchip,display-subsystem
│   └───Available nodes: primary, render
├───Framebuffer size
│   ├───Width: [0, 16384]
│   └───Height: [0, 16384]
├───Connectors
│   ├───Connector 0
│   │   ├───Object ID: 141
│   │   ├───Type: writeback
│   │   ├───Status: unknown
│   │   ├───Physical size: 0×0 mm
│   │   ├───Subpixel: unknown
│   │   ├───Encoders: {0}
│   │   └───Properties
│   │       ├───"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
│   │       ├───"WRITEBACK_OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│   │       ├───"WRITEBACK_FB_ID" (atomic): object framebuffer = 0
│   │       ├───"WRITEBACK_PIXEL_FORMATS" (atomic, immutable): blob = 140
│   │       │   ├───BGR888 (0x34324742)
│   │       │   ├───ARGB8888 (0x34325241)
│   │       │   ├───RGB565 (0x36314752)
│   │       │   └───NV12 (0x3231564e)
│   │       ├───"brightness": range [0, 100] = 50
│   │       ├───"contrast": range [0, 100] = 50
│   │       ├───"saturation": range [0, 100] = 50
│   │       └───"hue": range [0, 100] = 50
│   ├───Connector 1
│   │   ├───Object ID: 143
│   │   ├───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
│   │       ├───"HDR_OUTPUT_METADATA": blob = 0
│   │       ├───"color_depth": enum {Automatic, 24bit, 30bit} = 24bit
│   │       ├───"color_format": enum {rgb, ycbcr444, ycbcr422, ycbcr420, ycbcr_high_subsampling, ycbcr_low_subsampling, invalid_output} = rgb
│   │       ├───"color_depth_caps": range [0, UINT8_MAX] = 1
│   │       ├───"color_format_caps": range [0, 15] = 1
│   │       ├───"HDR_PANEL_METADATA" (immutable): blob = 0
│   │       ├───"NEXT_HDR_SINK_DATA" (immutable): blob = 0
│   │       ├───"output_hdmi_dvi": enum {auto, force_hdmi, force_dvi} = auto
│   │       ├───"output_type_capacity": enum {DVI, HDMI} = DVI
│   │       ├───"hdmi_quant_range": enum {default, limit, full} = default
│   │       ├───"Colorspace": enum {Default, SMPTE_170M_YCC, BT709_YCC, XVYCC_601, XVYCC_709, SYCC_601, opYCC_601, opRGB, BT2020_CYCC, BT2020_RGB, BT2020_YCC, DCI-P3_RGB_D65, DCI-P3_RGB_Theater} = Default
│   │       ├───"CONNECTOR_ID" (atomic, immutable): range [0, 15] = 0
│   │       ├───"Content Protection": enum {Undesired, Desired, Enabled} = Undesired
│   │       ├───"HDCP Content Type": enum {HDCP Type0, HDCP Type1} = HDCP Type0
│   │       ├───"hdcp_encrypted": range [0, 2] = 0
│   │       ├───"brightness": range [0, 100] = 50
│   │       ├───"contrast": range [0, 100] = 50
│   │       ├───"saturation": range [0, 100] = 50
│   │       └───"hue": range [0, 100] = 50
│   └───Connector 2
│       ├───Object ID: 159
│       ├───Type: DSI
│       ├───Status: connected
│       ├───Physical size: 68×121 mm
│       ├───Subpixel: unknown
│       ├───Encoders: {2}
│       ├───Modes
│       │   └───720×1280@69.05 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 = 92
│           ├───"brightness": range [0, 100] = 50
│           ├───"contrast": range [0, 100] = 50
│           ├───"saturation": range [0, 100] = 50
│           └───"hue": range [0, 100] = 50
├───Encoders
│   ├───Encoder 0
│   │   ├───Object ID: 136
│   │   ├───Type: virtual
│   │   ├───CRTCS: {0, 1, 2}
│   │   └───Clones: {0}
│   ├───Encoder 1
│   │   ├───Object ID: 142
│   │   ├───Type: TMDS
│   │   ├───CRTCS: {0}
│   │   └───Clones: {1}
│   └───Encoder 2
│       ├───Object ID: 158
│       ├───Type: DSI
│       ├───CRTCS: {1}
│       └───Clones: {2}
├───CRTCs
│   ├───CRTC 0
│   │   ├───Object ID: 70
│   │   ├───Legacy info
│   │   │   └───Gamma size: 1024
│   │   └───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
│   │       ├───"SOC_ID" (atomic, immutable): object CRTC = 218762
│   │       ├───"PORT_ID" (atomic, immutable): object CRTC = 0
│   │       ├───"ACLK": range [0, UINT32_MAX] = 396000
│   │       ├───"BACKGROUND": range [0, UINT32_MAX] = 0
│   │       ├───"LINE_FLAG1": range [0, UINT32_MAX] = 0
│   │       ├───"left margin": range [0, 100] = 100
│   │       ├───"right margin": range [0, 100] = 100
│   │       ├───"top margin": range [0, 100] = 100
│   │       ├───"bottom margin": range [0, 100] = 100
│   │       ├───"PLANE_MASK" (immutable): bitmask {Cluster0, Cluster1, Esmart0, Esmart1, Smart0, Smart1, Cluster2, Cluster3, Esmart2, Esmart3} = (Cluster1 | Smart1)
│   │       ├───"FEATURE" (immutable): bitmask {ALPHA_SCALE, HDR10, NEXT_HDR, VIVID_HDR} = (ALPHA_SCALE | HDR10)
│   │       ├───"OUTPUT_WIDTH" (immutable): range [0, 4096] = 0
│   │       ├───"OUTPUT_DCLK" (immutable): range [0, 594000000] = 0
│   │       ├───"variable refresh rate": range [0, 144] = 0
│   │       ├───"max refresh rate": range [0, 144] = 0
│   │       ├───"min refresh rate": range [0, 144] = 0
│   │       ├───"GAMMA_LUT": blob = 0
│   │       ├───"GAMMA_LUT_SIZE" (immutable): range [0, UINT32_MAX] = 1024
│   │       ├───"CUBIC_LUT": blob = 0
│   │       └───"CUBIC_LUT_SIZE" (immutable): range [0, UINT32_MAX] = 729
│   ├───CRTC 1
│   │   ├───Object ID: 92
│   │   ├───Legacy info
│   │   │   ├───Mode: 720×1280@69.05 preferred driver nhsync nvsync
│   │   │   └───Gamma size: 1024
│   │   └───Properties
│   │       ├───"ACTIVE" (atomic): range [0, 1] = 1
│   │       ├───"MODE_ID" (atomic): blob = 163
│   │       │   └───720×1280@69.05 preferred driver nhsync nvsync
│   │       ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│   │       ├───"VRR_ENABLED": range [0, 1] = 0
│   │       ├───"SOC_ID" (atomic, immutable): object CRTC = 218762
│   │       ├───"PORT_ID" (atomic, immutable): object CRTC = 1
│   │       ├───"ACLK": range [0, UINT32_MAX] = 396000
│   │       ├───"BACKGROUND": range [0, UINT32_MAX] = 0
│   │       ├───"LINE_FLAG1": range [0, UINT32_MAX] = 0
│   │       ├───"left margin": range [0, 100] = 100
│   │       ├───"right margin": range [0, 100] = 100
│   │       ├───"top margin": range [0, 100] = 100
│   │       ├───"bottom margin": range [0, 100] = 100
│   │       ├───"PLANE_MASK" (immutable): bitmask {Cluster0, Cluster1, Esmart0, Esmart1, Smart0, Smart1, Cluster2, Cluster3, Esmart2, Esmart3} = (Cluster0 | Esmart0 | Smart0)
│   │       ├───"FEATURE" (immutable): bitmask {ALPHA_SCALE, HDR10, NEXT_HDR, VIVID_HDR} = (ALPHA_SCALE)
│   │       ├───"OUTPUT_WIDTH" (immutable): range [0, 2048] = 0
│   │       ├───"OUTPUT_DCLK" (immutable): range [0, 200000000] = 0
│   │       ├───"variable refresh rate": range [0, 144] = 0
│   │       ├───"max refresh rate": range [0, 144] = 0
│   │       ├───"min refresh rate": range [0, 144] = 0
│   │       ├───"GAMMA_LUT": blob = 0
│   │       └───"GAMMA_LUT_SIZE" (immutable): range [0, UINT32_MAX] = 1024
│   └───CRTC 2
│       ├───Object ID: 114
│       ├───Legacy info
│       │   └───Gamma size: 1024
│       └───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
│           ├───"SOC_ID" (atomic, immutable): object CRTC = 218762
│           ├───"PORT_ID" (atomic, immutable): object CRTC = 2
│           ├───"ACLK": range [0, UINT32_MAX] = 396000
│           ├───"BACKGROUND": range [0, UINT32_MAX] = 0
│           ├───"LINE_FLAG1": range [0, UINT32_MAX] = 0
│           ├───"left margin": range [0, 100] = 100
│           ├───"right margin": range [0, 100] = 100
│           ├───"top margin": range [0, 100] = 100
│           ├───"bottom margin": range [0, 100] = 100
│           ├───"PLANE_MASK" (immutable): bitmask {Cluster0, Cluster1, Esmart0, Esmart1, Smart0, Smart1, Cluster2, Cluster3, Esmart2, Esmart3} = (Esmart1)
│           ├───"FEATURE" (immutable): bitmask {ALPHA_SCALE, HDR10, NEXT_HDR, VIVID_HDR} = (ALPHA_SCALE)
│           ├───"OUTPUT_WIDTH" (immutable): range [0, 1920] = 0
│           ├───"OUTPUT_DCLK" (immutable): range [0, 148500000] = 0
│           ├───"variable refresh rate": range [0, 144] = 0
│           ├───"max refresh rate": range [0, 144] = 0
│           ├───"min refresh rate": range [0, 144] = 0
│           ├───"GAMMA_LUT": blob = 0
│           └───"GAMMA_LUT_SIZE" (immutable): range [0, UINT32_MAX] = 1024
└───Planes
    ├───Plane 0
    │   ├───Object ID: 56
    │   ├───CRTCs: {0, 1, 2}
    │   ├───Legacy info
    │   │   ├───FB ID: 0
    │   │   └───Formats:
    │   │       ├───XRGB8888 (0x34325258)
    │   │       ├───ARGB8888 (0x34325241)
    │   │       ├───XBGR8888 (0x34324258)
    │   │       ├───ABGR8888 (0x34324241)
    │   │       ├───RGB888 (0x34324752)
    │   │       ├───BGR888 (0x34324742)
    │   │       ├───RGB565 (0x36314752)
    │   │       └───BGR565 (0x36314742)
    │   └───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 = 57
    │       │   └───DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
    │       │       ├───XRGB8888 (0x34325258)
    │       │       ├───ARGB8888 (0x34325241)
    │       │       ├───XBGR8888 (0x34324258)
    │       │       ├───ABGR8888 (0x34324241)
    │       │       ├───RGB888 (0x34324752)
    │       │       ├───BGR888 (0x34324742)
    │       │       ├───RGB565 (0x36314752)
    │       │       └───BGR565 (0x36314742)
    │       ├───"EOTF" (atomic): range [0, 5] = 0
    │       ├───"COLOR_SPACE" (atomic): range [0, 12] = 0
    │       ├───"ASYNC_COMMIT" (atomic): range [0, 1] = 0
    │       ├───"SHARE_ID" (atomic): range [0, UINT32_MAX] = 56
    │       ├───"rotation": bitmask {rotate-0, reflect-y} = (rotate-0)
    │       ├───"alpha": range [0, UINT16_MAX] = 65535
    │       ├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} = Pre-multiplied
    │       ├───"zpos": range [0, 7] = 0
    │       ├───"NAME" (immutable): bitmask {Smart1-win0} = (Smart1-win0)
    │       ├───"FEATURE" (immutable): bitmask {scale} = (scale)
    │       ├───"INPUT_WIDTH" (immutable): range [0, 4096] = 0
    │       ├───"INPUT_HEIGHT" (immutable): range [0, 4096] = 0
    │       ├───"OUTPUT_WIDTH" (immutable): range [0, 4096] = 0
    │       ├───"OUTPUT_HEIGHT" (immutable): range [0, 4096] = 0
    │       ├───"SCALE_RATE" (immutable): range [8, 8] = 0
    │       └───"colorkey": range [0, 2164260863] = 0
    ├───Plane 1
    │   ├───Object ID: 78
    │   ├───CRTCs: {0, 1, 2}
    │   ├───Legacy info
    │   │   ├───FB ID: 161
    │   │   │   ├───Object ID: 161
    │   │   │   ├───Size: 720×1280
    │   │   │   ├───Format: ABGR8888 (0x34324241)
    │   │   │   ├───Modifier: DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
    │   │   │   └───Planes:
    │   │   │       └───Plane 0: offset = 0, pitch = 2880 bytes
    │   │   └───Formats:
    │   │       ├───XRGB8888 (0x34325258)
    │   │       ├───ARGB8888 (0x34325241)
    │   │       ├───XBGR8888 (0x34324258)
    │   │       ├───ABGR8888 (0x34324241)
    │   │       ├───RGB888 (0x34324752)
    │   │       ├───BGR888 (0x34324742)
    │   │       ├───RGB565 (0x36314752)
    │   │       └───BGR565 (0x36314742)
    │   └───Properties
    │       ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
    │       ├───"FB_ID" (atomic): object framebuffer = 161
    │       │   ├───Object ID: 161
    │       │   ├───Size: 720×1280
    │       │   ├───Format: ABGR8888 (0x34324241)
    │       │   ├───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 = 92
    │       ├───"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] = 1280
    │       ├───"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] = 1280
    │       ├───"IN_FORMATS" (immutable): blob = 79
    │       │   └───DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
    │       │       ├───XRGB8888 (0x34325258)
    │       │       ├───ARGB8888 (0x34325241)
    │       │       ├───XBGR8888 (0x34324258)
    │       │       ├───ABGR8888 (0x34324241)
    │       │       ├───RGB888 (0x34324752)
    │       │       ├───BGR888 (0x34324742)
    │       │       ├───RGB565 (0x36314752)
    │       │       └───BGR565 (0x36314742)
    │       ├───"EOTF" (atomic): range [0, 5] = 0
    │       ├───"COLOR_SPACE" (atomic): range [0, 12] = 0
    │       ├───"ASYNC_COMMIT" (atomic): range [0, 1] = 0
    │       ├───"SHARE_ID" (atomic): range [0, UINT32_MAX] = 78
    │       ├───"rotation": bitmask {rotate-0, reflect-y} = (rotate-0)
    │       ├───"alpha": range [0, UINT16_MAX] = 65535
    │       ├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} = Pre-multiplied
    │       ├───"zpos": range [0, 7] = 3
    │       ├───"NAME" (immutable): bitmask {Smart0-win0} = (Smart0-win0)
    │       ├───"FEATURE" (immutable): bitmask {scale} = (scale)
    │       ├───"INPUT_WIDTH" (immutable): range [0, 4096] = 0
    │       ├───"INPUT_HEIGHT" (immutable): range [0, 4096] = 0
    │       ├───"OUTPUT_WIDTH" (immutable): range [0, 4096] = 0
    │       ├───"OUTPUT_HEIGHT" (immutable): range [0, 4096] = 0
    │       ├───"SCALE_RATE" (immutable): range [8, 8] = 0
    │       └───"colorkey": range [0, 2164260863] = 0
    ├───Plane 2
    │   ├───Object ID: 100
    │   ├───CRTCs: {0, 1, 2}
    │   ├───Legacy info
    │   │   ├───FB ID: 0
    │   │   └───Formats:
    │   │       ├───XRGB8888 (0x34325258)
    │   │       ├───ARGB8888 (0x34325241)
    │   │       ├───XBGR8888 (0x34324258)
    │   │       ├───ABGR8888 (0x34324241)
    │   │       ├───RGB888 (0x34324752)
    │   │       ├───BGR888 (0x34324742)
    │   │       ├───RGB565 (0x36314752)
    │   │       ├───BGR565 (0x36314742)
    │   │       ├───NV12 (0x3231564e)
    │   │       ├───NV16 (0x3631564e)
    │   │       ├───NV24 (0x3432564e)
    │   │       ├───NV15 (0x3531564e)
    │   │       ├───NV20 (0x3032564e)
    │   │       ├───NV30 (0x3033564e)
    │   │       ├───YUYV (0x56595559)
    │   │       └───UYVY (0x59565955)
    │   └───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 = 101
    │       │   └───DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
    │       │       ├───XRGB8888 (0x34325258)
    │       │       ├───ARGB8888 (0x34325241)
    │       │       ├───XBGR8888 (0x34324258)
    │       │       ├───ABGR8888 (0x34324241)
    │       │       ├───RGB888 (0x34324752)
    │       │       ├───BGR888 (0x34324742)
    │       │       ├───RGB565 (0x36314752)
    │       │       ├───BGR565 (0x36314742)
    │       │       ├───NV12 (0x3231564e)
    │       │       ├───NV16 (0x3631564e)
    │       │       ├───NV24 (0x3432564e)
    │       │       ├───NV15 (0x3531564e)
    │       │       ├───NV20 (0x3032564e)
    │       │       ├───NV30 (0x3033564e)
    │       │       ├───YUYV (0x56595559)
    │       │       └───UYVY (0x59565955)
    │       ├───"EOTF" (atomic): range [0, 5] = 0
    │       ├───"COLOR_SPACE" (atomic): range [0, 12] = 0
    │       ├───"ASYNC_COMMIT" (atomic): range [0, 1] = 0
    │       ├───"SHARE_ID" (atomic): range [0, UINT32_MAX] = 100
    │       ├───"rotation": bitmask {rotate-0, reflect-y} = (rotate-0)
    │       ├───"alpha": range [0, UINT16_MAX] = 65535
    │       ├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} = Pre-multiplied
    │       ├───"zpos": range [0, 7] = 2
    │       ├───"NAME" (immutable): bitmask {Esmart1-win0} = (Esmart1-win0)
    │       ├───"FEATURE" (immutable): bitmask {scale} = (scale)
    │       ├───"INPUT_WIDTH" (immutable): range [0, 4096] = 0
    │       ├───"INPUT_HEIGHT" (immutable): range [0, 4096] = 0
    │       ├───"OUTPUT_WIDTH" (immutable): range [0, 4096] = 0
    │       ├───"OUTPUT_HEIGHT" (immutable): range [0, 4096] = 0
    │       ├───"SCALE_RATE" (immutable): range [8, 8] = 0
    │       └───"colorkey": range [0, 2164260863] = 0
    └───Plane 3
        ├───Object ID: 122
        ├───CRTCs: {0, 1, 2}
        ├───Legacy info
        │   ├───FB ID: 0
        │   └───Formats:
        │       ├───XRGB8888 (0x34325258)
        │       ├───ARGB8888 (0x34325241)
        │       ├───XBGR8888 (0x34324258)
        │       ├───ABGR8888 (0x34324241)
        │       ├───RGB888 (0x34324752)
        │       ├───BGR888 (0x34324742)
        │       ├───RGB565 (0x36314752)
        │       ├───BGR565 (0x36314742)
        │       ├───NV12 (0x3231564e)
        │       ├───NV16 (0x3631564e)
        │       ├───NV24 (0x3432564e)
        │       ├───NV15 (0x3531564e)
        │       ├───NV20 (0x3032564e)
        │       ├───NV30 (0x3033564e)
        │       ├───YUYV (0x56595559)
        │       └───UYVY (0x59565955)
        └───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 = 123
            │   └───DRM_FORMAT_MOD_LINEAR (0x0000000000000000)
            │       ├───XRGB8888 (0x34325258)
            │       ├───ARGB8888 (0x34325241)
            │       ├───XBGR8888 (0x34324258)
            │       ├───ABGR8888 (0x34324241)
            │       ├───RGB888 (0x34324752)
            │       ├───BGR888 (0x34324742)
            │       ├───RGB565 (0x36314752)
            │       ├───BGR565 (0x36314742)
            │       ├───NV12 (0x3231564e)
            │       ├───NV16 (0x3631564e)
            │       ├───NV24 (0x3432564e)
            │       ├───NV15 (0x3531564e)
            │       ├───NV20 (0x3032564e)
            │       ├───NV30 (0x3033564e)
            │       ├───YUYV (0x56595559)
            │       └───UYVY (0x59565955)
            ├───"EOTF" (atomic): range [0, 5] = 0
            ├───"COLOR_SPACE" (atomic): range [0, 12] = 0
            ├───"ASYNC_COMMIT" (atomic): range [0, 1] = 0
            ├───"SHARE_ID" (atomic): range [0, UINT32_MAX] = 122
            ├───"rotation": bitmask {rotate-0, reflect-y} = (rotate-0)
            ├───"alpha": range [0, UINT16_MAX] = 65535
            ├───"pixel blend mode": enum {None, Pre-multiplied, Coverage} = Pre-multiplied
            ├───"zpos": range [0, 7] = 6
            ├───"NAME" (immutable): bitmask {Esmart0-win0} = (Esmart0-win0)
            ├───"FEATURE" (immutable): bitmask {scale} = (scale)
            ├───"INPUT_WIDTH" (immutable): range [0, 4096] = 0
            ├───"INPUT_HEIGHT" (immutable): range [0, 4096] = 0
            ├───"OUTPUT_WIDTH" (immutable): range [0, 4096] = 0
            ├───"OUTPUT_HEIGHT" (immutable): range [0, 4096] = 0
            ├───"SCALE_RATE" (immutable): range [8, 8] = 0
            └───"colorkey": range [0, 2164260863] = 0

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
收藏
回复
举报
回复
    相关推荐