Thursday, January 6, 2011

Strange Rendering Glitch

For almost two years, I've been seeing a bizarre rendering glitch on my system. What happens is some textures in use by the second life viewer will suddenly start showing up with strange colored rectangles on them. At first, only one or two show up, but slowly over time more and more rectangles show up, and I start to see things like this:

More rectangles continue to be added to the texture over time, and persist until I either relog, or leave the area and come back after the texture has been cleared from the graphics memory. It has occurred with every viewer for Second Life I've used, and most frequently occurs with the default plywood texture.

I also see this issue occurring on my desktop background. It will accumulate rectangles until it is refreshed. I see this occur on other apps (like firefox or chrome), and those rectangles vanish after the screen or UI is refreshed. This occurs when I am running any 3D game or application.

I first started seeing this after upgrading my video card from a Radeon HD 3750 card to an nVidia GeForce 9800 GT, so I am assuming it is either a driver issue or a configuration error. My operating system through this time has been, with the exception of a brief switch to Ubuntu, Arch Linux (originally x86_64, now i686).

My first guess is that it is a configuration issue with my system's xorg.conf, which I've posted below. And as a note, I am aware that xorg.conf is not normally required anymore. However, my video card will NOT work without one, so I require it.

If you want to see the file with the indentation (which blogger wiped out) and the syntax highlighting, I suggest viewing this link instead:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 256.44 ( Thu Jul 29 01:59:48 PDT 2010

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

#Section "ServerFlags"
# Option "AutoAddDevices" "False"
# Option "AllowEmptyInput" "False"

Section "Files"

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

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

Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "DELL E171FPb"
HorizSync 31.0 - 80.0
VertRefresh 56.0 - 75.0
Option "DPMS"

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce 9800 GT"

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "CoolBits" "1"
Option "TwinView" "1"
Option "TwinViewXineramaInfoOrder" "CRT-0"
Option "AllowGLXWithComposite" "true"
Option "metamodes" "CRT: 1280x1024_60 +0+0, DFP: 1440x900_60 +1280+124"
SubSection "Display"
Depth 24

Section "Extensions"
Option "Composite" "Enable"