11.4 NVIDIA drivers and X compositing (or XComposite and XDamage)

Greetings,

I’ve set up a basic 11.4 server/workstation at my home and am having trouble post-nvidia install when it comes to dual-monitors and compositing. Now, I’ve looked at many posts here and have not found an answer, since most of the answers are obviously for single-monitor setups. The reason I think this is that all the solutions render my second monitor useless (ie, blackscreen/does not function).

Background:

I’ve set up the nvidia 275 drivers via blacklisting neauveau(sorry if I have misspelled) and installing the package [nvidia drivers] from the nvidia website. Everything works great, the login screen comes up on the correct monitor! (I’m quite excited about this, for Ubuntu it took a startup script which, for some reason, rendered full-screen quakelive across two screens instead of one. It was win-lose).

The error I’m getting in the configuration utility for KDE is that compositing is not available because the extensions XComposite and XDamage are not available. These are available and effects work fine if I disable my second monitor. How can I enable for two?

Here’s my xorg.conf. I’ve tried removing this and restarting KDE without and this disables my second monitor, but allows for compositing as mentioned before.


milo@linux-zgeb:~> cat /etc/X11/xorg.conf
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 275.09.07  (buildmeister@swio-display-x86-rhel47-03.nvidia.com)  Wed Jun  8 14:38:19 PDT 2011

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "1"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from data in "/etc/sysconfig/mouse"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "IMPS/2"
    Option         "Device" "/dev/input/mice"
    Option         "Emulate3Buttons" "yes"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Samsung SyncMaster"
    HorizSync       30.0 - 190.0
    VertRefresh     56.0 - 125.0
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Ancor Communications Inc ASUS VH242H"
    HorizSync       30.0 - 85.0
    VertRefresh     55.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 260"
    BusID          "PCI:4:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 260"
    BusID          "PCI:4:0:0"
    Screen          1
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "DFP-1: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "TwinView" "0"
    Option         "metamodes" "DFP-0: 1920x1080_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Any help is greatly appreciated.

-milo

So I have two monitor running right now in Twinview with the same video driver version and perhaps the same video card (EVGA GTX 560 GPU) , but in my xorg.conf file I see only one device entry, but you have two. Do you have two GTX 560 videos cards in SLI by chance?

Thank You,

You have Xinerama enabled, which is incompatible with compositing. With NVIDIA and dual monitors, the only options you have if you want compositing is Twinview or dual Xscreens (two desktops). Xrandr 1.2 isn’t supported either so you can’t go that route.

It looks like you used the ‘Save to configuration file’ option in nvidia-settings to save the settings to /etc/X11/xorg.conf

That’s not the preferred way to do things these days mate as xorg.conf has been deprecated, you should be putting any needed settings into the files found under /etc/X11/xorg.conf.d/

The three main files in there to take note of are:

50-device.conf
50-monitor.conf
50-screen.conf

If you need extra stuff in there for anything like making your dual monitor setup permanent saving to /etc/X11/xorg.conf using nvidia-settings isn’t the best approach, try saving to something like /home/youruser/xorg.conf instead. Once you have that file you can then paste the necessary parts from it into the relevant file in /etc/X11/xorg.conf.d

For example, adding the twinview option to 50-screen.conf

The archlinux wiki on xorg has some very useful info on configuration that’s helped me numerous times, here’s the link to it if you’re interested:

https://wiki.archlinux.org/index.php/Xorg

Thanks for the link and the reply. I’ll have to try this out later, wasn’t aware they changed the configuration files.

I have only the one card, I think it’s making entries for each monitor.

That would be right mate yeah, they should be in /etc/X11/50-monitor.conf

BTW, forgot to mention that you may have to set kms_in_initrd to no, do this in Yast > System > /etc/sysconfig editor

Once in the editor you should find the kms_in_initrd setting in System > Kernel, just check whether is says ‘yes’ or ‘no’

I’m sure it used to be no_kms_in_initrd which needed setting to yes, but on my system I have kms_in_initrd instead which needs setting to no

What does that setting actually do? I haven’t found much about what it actually does, only that I should have it set.

I’m using 11.4 and my setting is NO_KMS_IN_INITRD which is set to yes.

I’ve tried removing my xorg.conf and placing a new 10-monitor.conf into xorg.conf.d with the same settings above, except for the change between using Xinerama and TwinView and am not able to start X. No error messages or anything, it just won’t start unless xorg.conf is there with the proper settings. I even tried changing Xinerama to TwinView with xorg.conf and it doesn’t want to start X that way either.

Although xorg.conf is officially deprecated, it will still be used if present. So forget about the other conf files, the kms settings etc because you had it working with xorg.conf to start with, albeit without compositing. All that needs to be done is to disable Xinerama and use Twinview, but don’t hand-edit your xorg.conf, just use nvidia-settings as root and let it write a new xorg.conf. If it still doesn’t work, post your latest xorg.conf (as written by nvidia-settings) here.

Just for info and confusion avoidance, OpenSuse doesn’t use files named like 10-monitor.conf, 10-screen.conf etc, that’s Arch’s way of doing things

In OpenSuse they’re named like 50-monitor.conf etc

So, same info, just different file name