Verify Hardware Layers You can use the modetest application that is included by default in the BSP to verify the hardware layer support of the RZ DRM display drivers. In the results returned by modetest, you will see that the overlay image supports the alpha attribute. After execution, you can see that the overly image has a translucent effect and is superimposed with the primary layer. Simple follow the steps below. Close Weston before testing
$ systemctl stop weston@root
Use modetest to get display information
modetest -M rcar-du
There will be an unique 'id' for each component. These numbers are used when you want to reference different portions. The id numbers might be different between SoC device and not match the example commands below, so please find them first with the modetest command.
According to the results returned by modetest, the following information can be obtained.
Encoders: Connectors: CRTCs: Planes: Frame buffers: For example, according to the return result of modetest on a RZ/G2L EVK, RZ/G2L has 2 physical planes.
Example modetest output on a RZ/G2L EVK
root@smarc-rzg2l:~# modetest -M rcar-du
Encoders:
id crtc type possible crtcs possible clones
38 37 none 0x00000001 0x00000001
44 0 Virtual 0x00000001 0x00000002
Connectors:
id encoder status name size (mm) modes encoders
39 38 connected HDMI-A-1 0x0 26 38
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
#0 1280x800 59.91 1280 1328 1360 1440 800 803 807 823 71000 flags: phsync, pvsync; type: preferred, driver
#1 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver
#2 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver
#3 1920x1080 59.94 1920 2008 2052 2200 1080 1084 1089 1125 148352 flags: phsync, pvsync; type: driver
#4 1280x1024 60.02 1280 1328 1440 1688 1024 1025 1028 1066 108000 flags: phsync, pvsync; type: driver
#5 1280x960 60.00 1280 1376 1488 1800 960 961 964 1000 108000 flags: phsync, pvsync; type: driver
#6 1280x800 60.00 1280 1316 1324 1324 800 816 824 832 66090 flags: phsync, pvsync; type: driver
#7 1152x864 75.00 1152 1216 1344 1600 864 865 868 900 108000 flags: phsync, pvsync; type: driver
#8 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
#9 1280x720 59.94 1280 1390 1430 1650 720 725 730 750 74176 flags: phsync, pvsync; type: driver
#10 1024x768 75.03 1024 1040 1136 1312 768 769 772 800 78750 flags: phsync, pvsync; type: driver
#11 1024x768 70.07 1024 1048 1184 1328 768 771 777 806 75000 flags: nhsync, nvsync; type: driver
#12 1024x768 60.00 1024 1048 1184 1344 768 771 777 806 65000 flags: nhsync, nvsync; type: driver
#13 800x600 75.00 800 816 896 1056 600 601 604 625 49500 flags: phsync, pvsync; type: driver
#14 800x600 72.19 800 856 976 1040 600 637 643 666 50000 flags: phsync, pvsync; type: driver
#15 800x600 60.32 800 840 968 1056 600 601 605 628 40000 flags: phsync, pvsync; type: driver
#16 800x600 56.25 800 824 896 1024 600 601 603 625 36000 flags: phsync, pvsync; type: driver
#17 720x480 60.00 720 736 798 858 480 489 495 525 27027 flags: nhsync, nvsync; type: driver
#18 720x480 60.00 720 736 798 858 480 489 495 525 27027 flags: nhsync, nvsync; type: driver
#19 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver
#20 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver
#21 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver
#22 640x480 75.00 640 656 720 840 480 481 484 500 31500 flags: nhsync, nvsync; type: driver
#23 640x480 72.81 640 664 704 832 480 489 492 520 31500 flags: nhsync, nvsync; type: driver
#24 640x480 60.00 640 656 752 800 480 490 492 525 25200 flags: nhsync, nvsync; type: driver
#25 640x480 59.94 640 656 752 800 480 490 492 525 25175 flags: nhsync, nvsync; type: driver
props:
1 EDID:
flags: immutable blob
blobs:
value:
00ffffffffffff0020641d7b01000000
201b0103800000780ae0ce9e59579723
124c542fce00010181808140714f0101
010101010101bc1b00a0502017303020
340000000000001e000000ff004c544d
31320a20202020202020000000fd0032
551f4f0b000a202020202020000000fc
00504a343032442d320a20202020018d
02031af1479005040302071623090707
65030c00100083010000023a80187138
2d40582c450007442100001e011d8018
711c1620582c250007442100009ed119
002c5020203024080804510e1100001e
8c0ad08a20e02d10103e960007442100
00180000000000000000000000000000
00000000000000000000000000000012
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:
20 CRTC_ID:
flags: object
value: 37
CRTCs:
id fb pos size
37 47 (0,0) (1280x800)
#0 1280x800 59.91 1280 1328 1360 1440 800 803 807 823 71000 flags: phsync, pvsync; type: preferred, driver
props:
22 ACTIVE:
flags: range
values: 0 1
value: 1
23 MODE_ID:
flags: blob
blobs:
value:
58150100000530055005a00500002003
23032703370300003c00000005000000
48000000313238307838303000000000
00000000000000000000000000000000
00000000
19 OUT_FENCE_PTR:
flags: range
values: 0 18446744073709551615
value: 0
24 VRR_ENABLED:
flags: range
values: 0 1
value: 0
Planes:
id crtc fb CRTC x,y x,y gamma size possible crtcs
32 37 47 0,0 0,0 0 0x00000001
formats: RGB8 AR12 XR12 AR15 XR15 RG16 BG24 RG24 BA24 BX24 AR24 XR24 UYVY YUYV YVYU NV12 NV21 NV16 NV61 YU12 YV12 YU16 YV16 YU24 YV24
props:
8 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 1
17 FB_ID:
flags: object
value: 47
18 IN_FENCE_FD:
flags: signed range
values: -1 2147483647
value: -1
20 CRTC_ID:
flags: object
value: 37
13 CRTC_X:
flags: signed range
values: -2147483648 2147483647
value: 0
14 CRTC_Y:
flags: signed range
values: -2147483648 2147483647
value: 0
15 CRTC_W:
flags: range
values: 0 2147483647
value: 1280
16 CRTC_H:
flags: range
values: 0 2147483647
value: 800
9 SRC_X:
flags: range
values: 0 4294967295
value: 0
10 SRC_Y:
flags: range
values: 0 4294967295
value: 0
11 SRC_W:
flags: range
values: 0 4294967295
value: 83886080
12 SRC_H:
flags: range
values: 0 4294967295
value: 52428800
33 zpos:
flags: immutable range
values: 0 0
value: 0
34 0 0 0,0 0,0 0 0x00000001
formats: RGB8 AR12 XR12 AR15 XR15 RG16 BG24 RG24 BA24 BX24 AR24 XR24 UYVY YUYV YVYU NV12 NV21 NV16 NV61 YU12 YV12 YU16 YV16 YU24 YV24
props:
8 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 0
17 FB_ID:
flags: object
value: 0
18 IN_FENCE_FD:
flags: signed range
values: -1 2147483647
value: -1
20 CRTC_ID:
flags: object
value: 0
13 CRTC_X:
flags: signed range
values: -2147483648 2147483647
value: 0
14 CRTC_Y:
flags: signed range
values: -2147483648 2147483647
value: 0
15 CRTC_W:
flags: range
values: 0 2147483647
value: 0
16 CRTC_H:
flags: range
values: 0 2147483647
value: 0
9 SRC_X:
flags: range
values: 0 4294967295
value: 0
10 SRC_Y:
flags: range
values: 0 4294967295
value: 0
11 SRC_W:
flags: range
values: 0 4294967295
value: 0
12 SRC_H:
flags: range
values: 0 4294967295
value: 0
35 alpha:
flags: range
values: 0 65535
value: 65535
36 zpos:
flags: range
values: 1 1
value: 1
Frame buffers:
id size pitch
Below is an example of an RZ/G2L connected to a 1280x800 MHDI LCD. There are 2 IDSs for "Planes" ('32' and '34') because there are 2 hardware layers in the RZ/G2L LCD display controller.
Display the test pattern on the Primary Plane
Use the id of the 'Connector' and the resolution of your LCD panel.
Example:
modetest -M rcar-du -s 39:1280x800@AR24 -d
(present ENTER on the keyboard to exit modetest)
Primary Plane+Overlay
Primary plane(39) displays SMPTE color bar spectrum in full screen. Overlay plane(34) displays a layer with a size of (400x300) at the position of coordinates (200,200) modetest -M rcar-du -s 39:1280x800@AR24 -d -P '34@37:400x300 +200+200@AR24'
(present ENTER on the keyboard to exit modetest)
Set the alpha property of the overlay layer
Start the Primary Plane+Overlay test again, but in the backgound (& at the end) $ modetest -M rcar-du -s 39:1280x800@AR24 -d -P '34@37:400x300 +200+200@AR24' &
Now change the Alpha of the hardware layer (0 to 65535) You can see that the overly image has a translucent effect and is superimposed with the primary layer $ modetest -M rcar-du -w 34:alpha:32768
$ modetest -M rcar-du -w 34:alpha:16384
$ modetest -M rcar-du -w 34:alpha:50000
End the modetest still running in the background (bring to forground) $ fg
(present ENTER on the keyboard to exit modetest)