You are not logged in.

#1 2017-09-06 00:40:45

jkhsjdhjs
Member
Registered: 2017-09-05
Posts: 39

Blank Screen with SDDM after Boot using multiple Monitors

Hi,

I reinstalled arch a few days ago and intended to fix tearing for my Intel / nvidia setup with two monitors today.
I'm using KDE together with SDDM, which was running just fine without a xorg configuration for my gpu's. But in order to prevent tearing I needed xorg configuration files to set driver options.

I have a NVIDIA GTX 660 and an Intel HD Graphics 630 (inside an Intel Core i5 7600K).

So I first created a config file for my Intel gpu with the following content:

/etc/X11/xorg.conf.d/20-intel.conf

Section "Device"
    Identifier     "Intel Graphics"
    Driver         "intel"
EndSection

But with just this X stopped working and showed in /var/log/Xorg.0.log

(EE) No devices detected
[...]
(EE) no screens found
[...]
(EE) Server terminated with error (1). Closing log file.

So I specified the BusID and at least my second monitor (which is connected to the internal intel gpu) started working.

But my first monitor still wouldn't work. So I used nvidia-xconfig to create a config file for my nvidia gpu. I then moved it from /etc/X11/xorg.conf to /etc/X11/xorg.conf.d/20-nvidia.conf and removed the parts regarding input devices. Aftwerwards it looked like this:

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "ASUS"
    ModelName      "VE248H"
    HorizSync       28.0 - 33.0
    VertRefresh     43.0 - 72.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "NVIDIA"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "NVIDIA"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

With this I got my first monitor working, but my second monitor stopped at the same point.
So I added a Screen and Monitor section for the second monitor containing nearly the same, but with Screen1 instead of Screen0 etc.
It resulted in Xorg failing to initialize the glx extension:

egrep 'WW|EE' /var/log/Xorg.*

[...]
/var/log/Xorg.0.log.old:[   251.075] (EE) Screen 1 deleted because of no matching config section.
/var/log/Xorg.0.log.old:[   251.080] (EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
/var/log/Xorg.0.log.old:[   251.868] (EE) dbus-core: error connecting to system bus: org.freedesktop.DBus.Error.NoReply (Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.)
[...]

I got the dbus-core error nearly everytime I looked in the logs so I don't think it matters.


If I removed the Screen and Monitor sections from the nvidia config file Xorg would say 'failed to initialize glx extension' too, but the second screen would still work.

So next I tried adding a server layout /etc/X11/xorg.conf.d/30-serverlayout.conf:

Section "ServerLayout"
    Identifier "Main Layout"
    Screen 0 "Screen0"
    Screen 1 "Screen1" RightOf "Screen0"
EndSection

But, you guessed it, it still wasn't working correctly cause this is how I got to the problem described in the title. After booting my cursor is actually showing and I can move it on both displays. On the first display it looks like a standard cursor and when I move it to the second display it is a cross shaped cursor. Besides this the screen is just blank. systemctl status sddm doesn't output anything interesting, but I found the file /var/lib/sddm/.local/share/sddm/xorg-session.log which contains:

libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

I googled a bit but mostly found older posts regarding debian/ubuntu oder kubuntu where they fixed it by installed another nvidia driver from some repo. But I already reinstalled the nvidia package and that didn't fix it for me.
Adding sddm to the video group also didn't fix it.

Here are the config files that resulted in the blank screen:
20-intel.conf: https://dr0p.it/gASM
20-nvidia.conf: https://dr0p.it/leCL
30-serverlayout.conf: https://dr0p.it/Tb8m

So now I hope that someone here is able to help me. Thanks in advance!

Offline

#2 2017-09-06 06:43:26

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,657

Re: Blank Screen with SDDM after Boot using multiple Monitors

Why exactly, do you want added complexity with the intel card (or rather are you sure that it is even accessible, most motherboards will disable it by default if they detect a dedicated card)? You can't run the same Xorg server on two different cards anyway. Remove all those xorg confs, set up Nvidia correctly, use KDE's KScreen or xrandr directly to do so. And tearing prevention isn't magically done with Xorg config files, and you would have to only configure the Nvidia card anyway. Explicitly for KDE there are other ways than with Xorg options anyway (the xorg options are a performance killing last resort stop gap measure), look at https://wiki.archlinux.org/index.php/NV … .28KWin.29 I've made good experience with the __GL_YIELD="USLEEP" method, haven't tried the KWIN_TRIPLE_BUFFER yet.

Last edited by V1del (2017-09-06 06:48:31)

Offline

#3 2017-09-06 12:35:22

jkhsjdhjs
Member
Registered: 2017-09-05
Posts: 39

Re: Blank Screen with SDDM after Boot using multiple Monitors

V1del wrote:

Why exactly, do you want added complexity with the intel card (or rather are you sure that it is even accessible, most motherboards will disable it by default if they detect a dedicated card)?

Because I want to use the full power of the GTX 660 on my first screen, I loose about 20 fps in some games if my GTX 660 renders both screens. Yes, I'm sure that it is accessible, my motherboard disables the internal too per default, but I disabled that option. So both cards are definitely accessible, the mouse cursor is moveable on both screens with the Xorg config above.

V1del wrote:

You can't run the same Xorg server on two different cards anyway. Remove all those xorg confs, set up Nvidia correctly, use KDE's KScreen or xrandr directly to do so.

I can't? Oh, I didn't know that. But why can I move the cursor on both screens? And there's just an libGL error preventing SDDM from working correctly. Xorg isn't reporting any errors.

V1del wrote:

And tearing prevention isn't magically done with Xorg config files, and you would have to only configure the Nvidia card anyway.

Yes, I know. I intended to add

Option         "TearFree" "true"

to the intel device section and

Option         "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
Option         "AllowIndirectGLXProtocol" "off"
Option         "TripleBuffer" "on"

to the nvidia screen section when everything was working. But why would I have to only configure the nvidia card?


V1del wrote:

Explicitly for KDE there are other ways than with Xorg options anyway (the xorg options are a performance killing last resort stop gap measure), look at https://wiki.archlinux.org/index.php/NV … .28KWin.29 I've made good experience with the __GL_YIELD="USLEEP" method, haven't tried the KWIN_TRIPLE_BUFFER yet.

For this I would need OpenGL as backend renderer, right? But I'm currently using XRender, cause I'm experiencing the following with OpenGL: https://bugs.kde.org/show_bug.cgi?id=381533
So OpenGL isn't an option currently till this is fixed.

Offline

#4 2017-09-06 15:45:27

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,657

Re: Blank Screen with SDDM after Boot using multiple Monitors

Enabling FullCompositionPipeline will likely give you (higher) framedrops as well. However now we have some context as to the end goal there are a few things you might want to try, like e.g. using provider offloading, like it is detailed in the Nvidia Optimus page. Also the not possible anyway comment might've been a bit off the mark and/or lacking context, at least from what I gather from some more reading having multiple Screens will mandate you tell applications with DISPLAY=:x on which display you want them to run on, you wont be able to drag and drop, and the fact that one is blank and the cursor changes to a cross would explain that in this context (i.e. the screen is active, on which card remains to be seen, you simply haven't given it anything to render yet).

There's also the libgl clash which should be fixed with the switch to glvnd that has happened, but this might also have an effect here maybe one of the configs in /usr/share/X11 is tripping up your attempt.

Could you share full xorg logs? There's often valuable context that does not get represented in warnings and errors.

Offline

#5 2017-09-06 23:19:50

jkhsjdhjs
Member
Registered: 2017-09-05
Posts: 39

Re: Blank Screen with SDDM after Boot using multiple Monitors

Ok, I looked in /usr/share/X11/xorg.conf.d and found 10-nvidia-drm-outputclass.conf containing: https://dr0p.it/FZgo
All other files in there are related to input devices (10-quirks.conf and 40-libinput.conf).

I'm also currently not quite sure if I'm really experiencing tearing on my nvidia gpu, but I definitely did on my previous installation so I automatically assumed I'll have to fix it this time too. On my Intel gpu however I'm experiencing massive screen tearing.
I disabled my existing configs in /etc/X11/xorg.conf.d again, cause my pc wasn't usable with a blank screen, and tried adding

Option "metamodes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=On, ForceFullCompositionPipeline=On}"
Option "AllowIndirectGLXProtocol" "off"
Option "TripleBuffer" "on"

to the /usr/share/X11/xorg.conf.d/10-nvidia-drm-outputclass.conf to see if it makes any difference and I'm not quite sure if it does. Then I tried creating a intel config in there which looked like this:

Section "OutputClass"
    Identifier "intel"
    MatchDriver "intel"
    Driver "intel"
    Option "TearFree" "true"
EndSection

But it didn't make any difference, the tearing was still there.

So I reverted my changes and enabled my configs in /etc/X11/xorg.conf.d again, so now I am at exactly the same state as I was at the end of my first post. I then rebootet my pc and grabbed the Xorg logs via ssh:
/var/log/Xorg.0.log [6. Sep 22:20]: https://dr0p.it/nmix
/var/log/Xorg.0.log.old[6. Sep 22:19]: https://dr0p.it/SpvK
There was also a Xorg.1.log which was from 4. Sep 02:35 so I think it's unrelated to those above, but I still pasted it in case it may be helpful: https://dr0p.it/PSwX

I also recorded a video of how exactly it looks like when sddm fails (the unit sddm is btw still marked as active (running) in this state): https://dr0p.it/mFv0.webm

EDIT: I tested it again and got the result that I have tearing on both monitors. I appreciate any tips/hints for solving that problem!

Last edited by jkhsjdhjs (2017-09-10 15:42:34)

Offline

#6 2018-02-02 21:30:21

jkhsjdhjs
Member
Registered: 2017-09-05
Posts: 39

Re: Blank Screen with SDDM after Boot using multiple Monitors

My xorg config actually works when using lightdm instead of sddm. But Kwin has poblems starting then, which totally ripped my KDE config now that I'm booting KDE with sddm and without xorg config again.

system logs beginning at lightdm start: https://gist.github.com/jkhsjdhjs/bab3d … 318312144f

EDIT: I installed xfce4 and I'm able to start it with lightdm. It shows the default desktop background with the contents of my Desktop folder on both monitors, but without a taskbar. I'm unable to launch any applications except the terminal and if I launcht the terminal this is printed to the logs:

Feb 03 13:44:11 benziuminator at-spi2-registr[3264]: Could not open X display
Feb 03 13:44:11 benziuminator at-spi-bus-launcher[1629]: dbus-daemon[1640]: Successfully activated service 'org.a11y.atspi.Registry'
Feb 03 13:44:11 benziuminator at-spi-bus-launcher[1629]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry
Feb 03 13:44:11 benziuminator at-spi2-registr[3264]: AT-SPI: Cannot open default display
Feb 03 13:44:11 benziuminator at-spi-bus-launcher[1629]: dbus-daemon[1640]: Activating service name='org.a11y.atspi.Registry' requested by ':1.45' (uid=1000 pid=3237 comm="/usr/bin/xfce4-terminal ")
Feb 03 13:44:11 benziuminator at-spi2-registr[3267]: Could not open X display
Feb 03 13:44:11 benziuminator at-spi-bus-launcher[1629]: dbus-daemon[1640]: Successfully activated service 'org.a11y.atspi.Registry'
Feb 03 13:44:11 benziuminator at-spi-bus-launcher[1629]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry
Feb 03 13:44:11 benziuminator at-spi2-registr[3267]: AT-SPI: Cannot open default display

So apparently xfce4 also has problems with my xorg config which means that it is not a KDE problem. So there must be something generally wrong with my config then.

Last edited by jkhsjdhjs (2018-02-03 13:13:51)

Offline

Board footer

Powered by FluxBB