x.org damage, composite and render extensions

Filed under: xorg 

I've waited for X to get this forever (well, not so much the extensions, but what they provide). Finally dropshadows. I don't consider dropshadows so much eye-candy (well, a little bit), but more like eye-froot-loops. Tasty, yet still nutritious. Mostly.I've managed to get x.org running dual head with the binary NVidia driver including the render/composite/damage extensions. Here's my xorg.conf:

Section "ServerLayout"
        Identifier     "Multihead layout"
        Screen      0  "Screen0" LeftOf "Screen1"
        Screen      1  "Screen1" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
        Option      "Xinerama" "off"
        Option      "Clone" "off"
EndSection

Section "Extensions"
    Option "Composite" "Enable"
    Option "RENDER" "Enable"
    Option "DAMAGE" "Enable"
EndSection

Section "Files"
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        ModulePath   "/usr/X11R6/lib/modules"
        FontPath     "unix/:7100"
EndSection

Section "Module"
        Load  "dbe"
        Load  "extmod"
        Load  "fbdevhw"
        Load  "record"
        Load  "freetype"
        Load  "type1"
        Load  "glx"
        Load  "dri"
        Load  "GLcore"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Protocol" "IMPS/2"
        Option      "Device" "/dev/input/mice"
        Option      "ZAxisMapping" "4 5"
        Option      "Emulate3Buttons" "yes"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "ViewSonic G90f-2"
        HorizSync    30.0 - 97.0
        VertRefresh  50.0 - 180.0
        Option      "dpms"
EndSection

Section "Monitor"
        Identifier   "Monitor1"
        VendorName   "Monitor Vendor"
        ModelName    "ViewSonic PF790"
        HorizSync    30.0 - 97.0
        VertRefresh  50.0 - 180.0
        Option      "dpms"
EndSection

Section "Device"
        Identifier  "Card0"
        Driver      "nvidia"
        VendorName  "Videocard vendor"
        BoardName   "NVIDIA GeForce FX (generic)"
        Option "AllowGLXWithComposite" "true"
        Option "RenderAccel" "true"
        Option "BackingStore" "true"
        Option "TwinView" "true"
        Option "ConnectedMonitor" "CRT, CRT"
        Option "MetaModes" "1280x1024,1280x1024"
        Option "AllowGLXWithComposite" "true"
        # Option "NoRenderExtension" "true"
        Option "HorizSync"   "CRT-0: 50-110;  CRT-1: 50-110"
        Option "VertRefresh" "CRT-0: 60-120;  CRT-1: 60-120"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes    "1280x1024" "800x600"
        EndSubSection
EndSection

Section "Screen"
        Identifier "Screen1"
        Device     "Card0"
        Monitor    "Monitor1"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Modes    "1280x1024" "800x600"
        EndSubSection
EndSection

Section "DRI"
        Group        0
        Mode         0666
EndSection

Upon starting X, I run the following command:

xcompmgr -c -f -F -r 10 -l -12 -t -9 -o 0.75 &

This gives me nice drop shadows, fade-in/out effects, etc.

The system isn't without bugs. Occassionally resizing a window will leave artifacts lying around, windows playing video seem to have issues deciding their z-index, etc. And sometimes (albiet quite rarely these days), X will just go to lunch.

I highly recommend using the absolute latest version of the NVidia driver as most of the fixes seem to be coming from that end.

Have fun.



1 comments Leave a comment