etnaviv / dcss, glamor & modesetting, modifiers & prime - sometimes broken de-tiling and/or offset
I'm not sure how much of this is a problem in modesetting, and how much of it is a problem in dcss / etnaviv. Anyway, this is with commit df3aa492 with MR !543 and MR !533 applied. Glamore was enabled and used etnaviv, DSI-1-1 used mxsfb, HDMI-1 used dcss.
My Xorg Config looks like this:
Section "Device"
Identifier "HDMI-1"
Driver "modesetting"
Option "kmsdev" "/dev/dri/by-path/platform-32e00000.display-controller-card"
Option "Atomic" "On"
EndSection
Section "Device"
Identifier "DSI-1"
Driver "modesetting"
Option "kmsdev" "/dev/dri/by-path/platform-30320000.lcd-controller-card"
Option "AccelMethod" "Off"
Option "Atomic" "On"
EndSection
Section "ServerFlags"
Option "AutoAddGPU" "false"
Option "DRI" "3"
EndSection
It happened after enabling the prime shared screen DSI-1-1 like so:
$ xrandr
Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 4096 x 4096
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 527mm x 296mm
1920x1080 60.00*+ 60.00 50.00
1280x720 60.00 60.00 50.00
720x576 50.00 50.00 50.00
720x480 59.94 59.94 59.94
DSI-1-1 connected (normal left inverted right x axis y axis)
720x1440 60.00 +
$ xrandr --output DSI-1-1 --right-of HDMI-1 --auto
$ xrandr
Screen 0: minimum 320 x 200, current 2640 x 1440, maximum 4096 x 4096
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 527mm x 296mm
1920x1080 60.00*+ 60.00 50.00
1280x720 60.00 60.00 50.00
720x576 50.00 50.00 50.00
720x480 59.94 59.94 59.94
DSI-1-1 connected 720x1440+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
720x1440 60.00*+
The image on DSI-1-1 was displayed properly, but on HDMI-1, something went wrong with the de-tiling. /sys/kernel/debug/dri/1/state /sys/kernel/debug/dri/2/state
I then tried putting DSI-1-1 left of HDMI-1:
$ xrandr --output DSI-1-1 --right-of HDMI-1 --auto
$ xrandr
Screen 0: minimum 320 x 200, current 2640 x 1440, maximum 4096 x 4096
HDMI-1 connected primary 1920x1080+720+0 (normal left inverted right x axis y axis) 527mm x 296mm
1920x1080 60.00*+ 60.00 50.00
1280x720 60.00 60.00 50.00
720x576 50.00 50.00 50.00
720x480 59.94 59.94 59.94
DSI-1-1 connected 720x1440+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
720x1440 60.00*+
DSI-1-1 was still fine. HDMI-1-1 still failed de-tiling, but differently. Additionally, the offset wasn't properly applied: /sys/kernel/debug/dri/1/state /sys/kernel/debug/dri/2/state
Interestingly, after putting DSI-1-1 back to the right of HDMI-1, everything was fine:
$ xrandr --output DSI-1-1 --right-of HDMI-1
$
Screen 0: minimum 320 x 200, current 2640 x 1440, maximum 4096 x 4096
HDMI-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 527mm x 296mm
1920x1080 60.00*+ 60.00 50.00
1280x720 60.00 60.00 50.00
720x576 50.00 50.00 50.00
720x480 59.94 59.94 59.94
DSI-1-1 connected 720x1440+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
720x1440 60.00*+