UDL device cannot get its own screen

Böszörményi Zoltán zboszor at pr.hu
Tue Nov 5 14:22:42 UTC 2019


Hi,

2019. 10. 23. 15:32 keltezéssel, Ilia Mirkin írta:
> On Wed, Oct 23, 2019 at 2:41 AM Böszörményi Zoltán <zboszor at pr.hu> wrote:
>>
>> 2019. 10. 22. 22:57 keltezéssel, Ilia Mirkin írta:
>>> On Tue, Oct 22, 2019 at 11:50 AM Böszörményi Zoltán <zboszor at pr.hu> wrote:
>>>> Section "Device"
>>>>           Identifier      "UDL"
>>>>           Driver          "modesetting"
>>>>           Option          "kmsdev" "/dev/dri/card0"
>>>>           Screen          2
>>>>           Option          "Monitor-DVI-I-1-1" "DVI-I-1-1"
>>>
>>> I think you have an extra -1 in here (and the monitor name doesn't
>>> exist as per above). And I think the "Screen" index is wrong -- it's
>>> not what one tends to think it is, as I recall. I think you can just
>>> drop these lines though.
>>
>> Without "Screen N" lines, all the outputs are assigned to :0
>> so the screen layout setup in the ServerLayout section is not
>> applied properly.
>>
> 
> As I remember it, the Screen here is for ZaphodHeads-type
> configurations, and it indicates which head you're supposed to use of
> the underlying device. My suggestion was to only remove it here, not
> everywhere.

Okay, but it still doesn't create a working setup.

In the meantime I switched to the GIT version of Xorg, but
it didn't make a difference (for now).

I decided to start from a mostly clean configuration, whatever default
settings or drivers are used. It's modesetting across the board.

The configuration file has just this:

=====================================
Section "ServerFlags"
	Option "AutoBindGPU"  "true/false"
EndSection
=====================================

Xorg.0.log has these lines (same as 1.20.4), regardless of the AutoBindGPU setting:

... all 3 monitors' EDID data is read and okay ...

[   879.136] (II) modeset(G0): Damage tracking initialized
[   879.140] (II) modeset(0): Damage tracking initialized
[   879.140] (II) modeset(0): Setting screen physical size to 609 x 270

modeset(G0) is UDL and there is no "screen physical size" set for it.

xrandr shows 3 outputs for Intel and 1 for UDL. UDL doesn't have an active mode set:

# DISPLAY=:0 xrandr
Screen 0: minimum 320 x 200, current 2304 x 1024, maximum 8192 x 8192
VGA-1 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
    1280x1024     60.02*+
    1152x864      75.00
    1024x768      75.03    60.00
    832x624       74.55
    800x600       75.00    60.32
    640x480       75.00    59.94
    720x400       70.08
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 connected 1024x768+1280+0 (normal left inverted right x axis y axis) 304mm x 228mm
    1024x768      60.00*+
DVI-I-1-1 connected (normal left inverted right x axis y axis)
    1920x1080     60.00 +
    1680x1050     59.88
    1280x1024     75.02    60.02
    1440x900      74.98    59.90
    1280x720      60.00
    1024x768      75.03    60.00
    800x600       75.00    60.32
    640x480       75.00    72.81    66.67    59.94
    720x400       70.08
   1280x1024 (0x44) 108.000MHz +HSync +VSync
         h: width  1280 start 1328 end 1440 total 1688 skew    0 clock  63.98KHz
         v: height 1024 start 1025 end 1028 total 1066           clock  60.02Hz
   1024x768 (0x48) 78.750MHz +HSync +VSync
         h: width  1024 start 1040 end 1136 total 1312 skew    0 clock  60.02KHz
         v: height  768 start  769 end  772 total  800           clock  75.03Hz
   1024x768 (0x49) 65.000MHz -HSync -VSync
         h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
         v: height  768 start  771 end  777 total  806           clock  60.00Hz
   800x600 (0x4a) 49.500MHz +HSync +VSync
         h: width   800 start  816 end  896 total 1056 skew    0 clock  46.88KHz
         v: height  600 start  601 end  604 total  625           clock  75.00Hz
   800x600 (0x4b) 40.000MHz +HSync +VSync
         h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
         v: height  600 start  601 end  605 total  628           clock  60.32Hz
   640x480 (0x4c) 31.500MHz -HSync -VSync
         h: width   640 start  656 end  720 total  840 skew    0 clock  37.50KHz
         v: height  480 start  481 end  484 total  500           clock  75.00Hz
   640x480 (0x4f) 25.175MHz -HSync -VSync
         h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
         v: height  480 start  490 end  492 total  525           clock  59.94Hz
   720x400 (0x50) 28.320MHz -HSync +VSync
         h: width   720 start  738 end  846 total  900 skew    0 clock  31.47KHz
         v: height  400 start  412 end  414 total  449           clock  70.08Hz
#

I can't actually set a mode for it manually:

# DISPLAY=:0 xrandr --output DVI-I-1-1 --mode 1280x1024
xrandr: Configure crtc 2 failed

So, for some reason, while the output is there, the monitor is detected
via EDID, there is no CRTC assigned to it.

With AutoBindGPU=false, the UDL device is not actually activated,
despite the lines present about modeset(G0) with EDID detected and so on.

# DISPLAY=:0 xrandr
Screen 0: minimum 320 x 200, current 2304 x 1024, maximum 8192 x 8192
VGA-1 connected primary 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
    1280x1024     60.02*+
    1152x864      75.00
    1024x768      75.03    60.00
    832x624       74.55
    800x600       75.00    60.32
    640x480       75.00    59.94
    720x400       70.08
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-1 connected 1024x768+1280+0 (normal left inverted right x axis y axis) 304mm x 228mm
    1024x768      60.00*+
#

The explicit mode setting fails with a different (but expected) error:

# DISPLAY=:0 xrandr --output DVI-I-1-1 --mode 1280x1024
warning: output DVI-I-1-1 not found; ignoring

Something is wrong somewhere in the server code.

Best regards,
Zoltán Böszörményi


More information about the dri-devel mailing list