Monday, September 20, 2010

nVidia 3d Vision in Linux with Mitsubishi DLP TV

I finally got our 3D setup in the lab working with Ubuntu Linux. Using nVidia's 3D Vision glasses and emitter, we are able to visualize data in 3D, view movies, and play video games ;-) Until now, we've been using Windows 7 and it has been an extremely buggy experience. We've seen the BSOD, lockups, and the 3D just not working. Now that is works in Linux, I think we can kiss the instability goodbye.

nVidia officially supported the Mitsubishi line of DLP TV's in a recent driver release: 256.35. Here is nVidia's list of supported devices. We've got an 82" DLP TV in the lab. You'll need a Quadro graphics card to do Quad-Buffered Stereo in Linux (and Windows).

To get 3D working, you'll need to install the latest nVidia Quadro driver. For a DLP display, you will plug the VESA connector into the back of the TV. The USB plugs into the computer.

The first thing you will have to do is disable compositing and make sure you have no over-scan compensation set for the 3D to work. Here's my xorg.conf file for reference:


# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 256.53  (buildmeister@builder97.nvidia.com)  Fri Aug 27 20:55:22 PDT 2010


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


Section "Files"
EndSection


Section "InputDevice"


    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection


Section "InputDevice"


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


Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Mitsubishi MEUSPTV11"
    HorizSync       15.0 - 68.0
    VertRefresh     59.0 - 61.0
    Option         "DPMS"
EndSection


Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro FX 4600"
EndSection


Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "10"
    Option         "ModeDebug" "1"
    Option         "TripleBuffer" "1"
    Option         "TwinView" "0"
    Option         "metamodes" "1920x1080_60 +0+0; 1920x1080_60_1 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection


Section "Extensions"
    Option         "Composite" "Disable"
EndSection
                     

You'll notice the Option for disabling compositing at the bottom. If you do this, it should work. I'll be updating this post when I get the correct DPI settings and see if I can correct the over-scan issues that seem to be a problem in DLP displays. If you have any problems you can look in your xorg.log file in /var/log. You will have to turn log verbosity to 6 to see modeline information for your TV.