Dec 03, 2006
Slackware, nVidia, xorg

To get the most 3-D performance when gaming under Slackware Linux, in my experience there are a couple of things you can do.
One is to make sure your xorg.conf file avails all the necessary screen resolutions & bit-depths to the system, the other is to enable sidebanding & fast-writes.
Here's my /etc/X11/xorg.conf file. Note that I have all the screen resolutions for all the bit depths. Many games default to 16 bitplanes of colour, so make sure you include that colour depth at minimum.
cat  /etc/X11/xorg.conf
****************************************************************************************
Section "ServerLayout"
        Identifier     "XFree86 Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "LogitechWirelessMouse" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
        RgbPath      "/usr/X11R6/lib/X11/rgb"
        ModulePath   "/usr/X11R6/lib/modules"
        FontPath     "/usr/X11R6/lib/X11/fonts/misc/"
        FontPath     "/usr/X11R6/lib/X11/fonts/Speedo/"
        FontPath     "/usr/X11R6/lib/X11/fonts/Type1/"
        FontPath     "/usr/X11R6/lib/X11/fonts/CID/"
        FontPath     "/usr/X11R6/lib/X11/fonts/75dpi/"
        FontPath     "/usr/X11R6/lib/X11/fonts/100dpi/"
EndSection

# If using the kernel's AGPGART, (inserted in rc.modules at boot)
# then enable DRI for everyone.
# If using nVidia's NvAGP instead, keep this section commented out.
#Section "DRI"
#        mode 666
#EndSection

Section "Module"
        Load  "record"
        Load  "extmod"
        Load  "dbe"
#  NVidia doesn't want DRI
#       Load  "dri"
        Load  "glx"
        Load  "xtrap"
        Load  "type1"
        Load  "speedo"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "keyboard"
EndSection

Section "InputDevice"
        Identifier  "LogitechWirelessMouse"
        Driver      "mouse"
# Disable the auto-configured Protocol
#       Option      "Protocol" "Auto"
#  Enable the mouse wheele & middle button manually
        Option      "Protocol" "IMPS/2"
        Option      "Device" "/dev/mouse"
        Option      "Buttons"  "5"
        Option      "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
        Identifier   "NEC-FE991sb"
        VendorName   "NEC"
        ModelName    "FE991sb"
        HorizSync    30-96
        VertRefresh  50-160
EndSection

Section "Device"

        VideoRam    131072
# Nvidia Options Follow
#    Use NvAGP instead of AGPGART
        Option      "NvAGP" "1"
        Option      "nologo" "false"
##        Option      "DigitalVibrance" "1"
##                                      ^^^ 0=off 3=max
##        Option      "cursorshadow"     "true"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
        ### [arg]: arg optional
        #Option     "SWcursor"                  # [<bool>]
        #Option     "HWcursor"                  # [<bool>]
        #Option     "NoAccel"                   # [<bool>]
        #Option     "ShowCache"                 # [<bool>]
        #Option     "ShadowFB"                  # [<bool>]
        #Option     "UseFBDev"                  # [<bool>]
        #Option     "Rotate"                    # [<str>]
        #Option     "VideoKey"                  # <i>
        #Option     "FlatPanel"                 # [<bool>]
        #Option     "FPDither"                  # [<bool>]
        #Option     "CrtcNumber"                # <i>
        Identifier  "GF4"
        Driver      "nvidia"
        VendorName  "nVidia Corporation"
        BoardName   "NV25 [GeForce4 Ti 4200]"
        BusID       "PCI:1:0:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "GF4"
        Monitor    "NEC-FE991sb"
# Always start the desktop in 24 bitplanes
        DefaultDepth      24
        SubSection "Display"
                Depth     8
                Modes     "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480" "320x240"
        EndSubSection
        SubSection "Display"
                Depth     16
                Modes     "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480" "320x240"
        EndSubSection
        SubSection "Display"
                Depth     24
                Modes     "1600x1200" "1280x1024" "1152x864" "1024x768" "800x600" "640x480" "320x240"
        EndSubSection
        SubSection "Display"
                Depth     32
                Modes     "1600x1200" "1280x1024" "1152x864" "1025x768" "800x600" "640x480" "320x240"
        EndSubSection
EndSection

************************************************************************************************************

Mind your own hardware's resolution limitations. If, for instance, your monitor or video card does not work over 1024x768, omit the higher resolutions.




Sidebanding and Fast-Writes

nVidia's done a bang-up job with their Linux modules. The standard installation works just fine, but if your card-motherboard combination supports it, you can enable sideband addressing & fast writes as well, for a nice performance kick. These two options are disabled by default. To enable them, download the installer into a temporary directory, then:

Run the installer so that it extracts the config files into the temporary directory
NVIDIA-Linux-x86-1.0.9629-pkg1.run  --extract-only

Descend into the newly created directory
cd  ./NVIDIA-Linux-x86-1.0.9629/usr/src/nv/

Then edit   os-registry.c   , enabling the required variables:
NVreg_EnableAGPSBA=1
NVreg_EnableAGPFW=1

Now go back up to the top of the temporary directory and run
/NVIDIA-Linux-x86-1.0.9629/nvidia-installer

Your video card module will now have sidebanding and fast-writes enabled. To confirm, download & compile nvclock_gtk.

HTH, I am Dan