Question
DRM/KMS framebuffer emulation - How to set format
Using the KMS/DRM driver, how can I change the emulated framebuffer format? I'm using simple-panel and the framebuffer has always only 16-bit color even though the driver explicit sets the format for 24-bit colors (.bus_format = MEDIA_BUS_FMT_RGB888_1X24).
fbset doesn't work:
fbset -g 800 480 800 480 24
fbset: FBIOPUT_VSCREENINFO: Invalid argumentmodetest
modetest -M stm
Encoders:
id crtc type possible crtcs possible clones
32 38 DPI 0x00000001 0x00000001
Connectors:
id encoder status name size (mm) modes encoders
33 32 connected DPI-1 154x86 1 32
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
#0 800x480 57.29 800 1010 1011 1057 480 503 523 545 33000 flags: ; type: preferred, driver
props:
1 EDID:
flags: immutable blob
blobs:
value:
2 DPMS:
flags: enum
enums: On=0 Standby=1 Suspend=2 Off=3
value: 0
5 link-status:
flags: enum
enums: Good=0 Bad=1
value: 0
6 non-desktop:
flags: immutable range
values: 0 1
value: 0
4 TILE:
flags: immutable blob
blobs:
value:
CRTCs:
id fb pos size
38 43 (0,0) (800x480)
#0 800x480 57.29 800 1010 1011 1057 480 503 523 545 33000 flags: ; type: preferred, driver
props:
24 VRR_ENABLED:
flags: range
values: 0 1
value: 0
31 BACKGROUND_COLOR:
flags: range
values: 0 18446744073709551615
value: 18446462598732840960
28 GAMMA_LUT:
flags: blob
blobs:
value:
29 GAMMA_LUT_SIZE:
flags: immutable range
values: 0 4294967295
value: 256
Planes:
id crtc fb CRTC x,y x,y gamma size possible crtcs
34 38 43 0,0 0,0 0 0x00000001
formats: AR24 XR24 RG24 RG16 AR15 XR15 AR12 XR12 C8
props:
8 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 1
30 IN_FORMATS:
flags: immutable blob
blobs:
value:
01000000000000000900000018000000
01000000400000004152323458523234
52473234524731364152313558523135
41523132585231324338202000000000
ff010000000000000000000000000000
0000000000000000
in_formats blob decoded:
AR24: LINEAR
XR24: LINEAR
RG24: LINEAR
RG16: LINEAR
AR15: LINEAR
XR15: LINEAR
AR12: LINEAR
XR12: LINEAR
C8 : LINEAR
36 alpha:
flags: range
values: 0 65535
value: 65535
37 zpos:
flags: immutable range
values: 0 0
value: 0
39 0 0 0,0 0,0 0 0x00000001
formats: AR24 RG24 RG16 AR15 AR12 C8
props:
8 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 0
30 IN_FORMATS:
flags: immutable blob
blobs:
value:
01000000000000000600000018000000
01000000300000004152323452473234
52473136415231354152313243382020
3f000000000000000000000000000000
0000000000000000
in_formats blob decoded:
AR24: LINEAR
RG24: LINEAR
RG16: LINEAR
AR15: LINEAR
AR12: LINEAR
C8 : LINEAR
41 alpha:
flags: range
values: 0 65535
value: 65535
42 zpos:
flags: immutable range
values: 1 1
value: 1
Frame buffers:
id size pitchmodetest -M stm -s 33@32:800x480-57.29@XR24 &
# failed to find CRTC for pipe
failed to create dumb buffer: Invalid argument