# Nvidia others capabilities

## ultraViolet

Hi !

I am trying to get the most of my nvidia geforce 6600GT. I have already activated SBA, but not fast writes (i have a via chipset).

Now i am looking at the ouput of lspci -vv

```
01:00.0 VGA compatible controller: nVidia Corporation NV43 [GeForce 6600/GeForce 6600 GT] (rev a2) (prog-if 00 [VGA])

        Subsystem: ASUSTeK Computer Inc. N6600GT TD 128M AGP

        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-

        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-

        Latency: 248 (1250ns min, 250ns max)

        Interrupt: pin A routed to IRQ 16

        Region 0: Memory at ce000000 (32-bit, non-prefetchable) [size=16M]

        Region 1: Memory at b0000000 (32-bit, prefetchable) [size=256M]

        Region 2: Memory at cd000000 (32-bit, non-prefetchable) [size=16M]

        [virtual] Expansion ROM at cfee0000 [disabled] [size=128K]

        Capabilities: [60] Power Management version 2

                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)

                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

        Capabilities: [44] AGP version 3.0

                Status: RQ=256 Iso- ArqSz=0 Cal=3 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3+ Rate=x4,x8

                Command: RQ=32 ArqSz=0 Cal=0 SBA+ AGP+ GART64- 64bit- FW- Rate=x8

```

I would like some help to understand the meaning of the two last lines (what is GART64 for example).

For what I understand, the first is talking about the possibities of my geforce, the second is about what i have activated.

It would means I could us RQ 256 and not only(?) 32, and AGP3 and not AGP, and at last Cal=3 over Cal=0.

 How could I do that ? what is RQ ? What is Cal ?

If you have any doc on the subject, or any experience, I would appreciate your help.

----------

## jcat

I too own a 6600GT, and I'm slightely confused about AGP, from the guide http://www.gentoo-wiki.com/HARDWARE_Nvidia_Driver_AGP_FastWrite_and_Side_Band_Addressing it seems as though you we should be using NVAGP, and not AGPGART.  But it's not totally clear to be honest.

This is the card status...

```
cat /proc/driver/nvidia/agp/status

Status:          Enabled

Driver:          NVIDIA

AGP Rate:        8x

Fast Writes:     Enabled

SBA:             Enabled
```

..but the guide seems to indicate that it should be either NVAGP or AGPGART.  Can anyone clear this up?  Is the guide for a 2.4 kernel or something?

I also see this in dmesg..

```
Linux agpgart interface v0.102 (c) Dave Jones
```

Clarity would be appreciated!   :Smile: 

Cheers,

jcat

----------

## ultraViolet

 *jcat wrote:*   

> 
> 
> ```
> cat /proc/driver/nvidia/agp/status
> 
> ...

 

My status :

```
Status:          Enabled

Driver:          AGPGART

AGP Rate:        8x

Fast Writes:     Disabled

SBA:             Enabled

```

I think you should be using AGPART. I don't use Fast writes because it is instable with via chipset.

Can you post your /etc/X11/xorg.conf plz ?

----------

## jcat

so AGPGART is better that using NVIDIA?  Ok.  Have got good link to guide me through switching to AGPGART?

Here's my xorg.conf  :Smile: 

```
######################################

# Multi-Screen and Multi-Seat config #

######################################

Section "ServerLayout"

        Identifier     "main"

        Screen      0  "Screen0" 0 0

        InputDevice    "Mouse0" "CorePointer"

        InputDevice    "Keyboard0" "CoreKeyboard"

EndSection

Section "ServerLayout"

        Identifier     "TV"

        Screen         "Screen1" 0 0

        Option         "SingleCard" "true"

        Option         "IsolateDevice"  "PCI:2:8:0"

        Option         "AllowMouseOpenFail"  "yes"

        InputDevice    "NoKeyboard"

        InputDevice    "NoMouse"

#       InputDevice    "Mouse1" "CorePointer"

#       InputDevice    "Keyboard1" "CoreKeyboard"

EndSection

################

# Locations... #

################

Section "Files"

# Multiple FontPath entries are allowed (they are concatenated together)

# By default, a font server independent of the X server is

# used to render fonts.

        ModulePath   "/usr/lib/xorg/modules/extensions/nvidia"

        ModulePath   "/usr/lib/xorg/modules"

        ModulePath   "/usr/lib/modules/extensions"

        #FontPath     "unix/:7100"

        FontPath     "/usr/share/fonts/100dpi"

        FontPath     "/usr/share/fonts/75dpi"

        FontPath     "/usr/share/fonts/corefonts"

        FontPath     "/usr/share/fonts/cyrillic"

#       FontPath     "/usr/share/fonts/default"

#       FontPath     "/usr/share/fonts/encodings"

#       FontPath     "/usr/share/fonts/freefont"

        FontPath     "/usr/share/fonts/freefonts"

        FontPath     "/usr/share/fonts/liberation-fonts-ttf"

        FontPath     "/usr/share/fonts/misc"

        FontPath     "/usr/share/fonts/terminus"

        FontPath     "/usr/share/fonts/TTF"

        FontPath     "/usr/share/fonts/ttf-bitstream-vera"

        FontPath     "/usr/share/fonts/Type1"

        FontPath     "/usr/share/fonts/unifont"

        FontPath     "/usr/share/fonts/Vista"

#       FontPath     "/usr/share/fonts/ukr"

#       FontPath     "/usr/share/fonts/fonts.cache-1"

#       FontPath     "/usr/share/fonts/local"

#       FontPath     "/usr/share/fonts/util"

EndSection

###########

# Modules #

###########

Section "Module"

        Load  "dbe"

        Load  "extmod"

        Load  "fbdevhw"

        Load  "record"

        Load  "freetype"

        Load  "type1"

        Load  "glx"

#       Load  "dri"

#       Load  "int10"

        Load  "vnc"

EndSection

##############################

# Driver specific extensions #

##############################

# Enable the composite extension

Section "Extensions"

        Option "Composite" "Enable"

EndSection

#############################

# Mice and Keyboards etc... #

#############################

# Specify which keyboard LEDs can be user-controlled (eg, with xset(1))

#       Option  "Xleds"         "1 2 3"

# To disable the XKEYBOARD extension, uncomment XkbDisable.

#       Option  "XkbDisable"

# To customise the XKB settings to suit your keyboard, modify the

# lines below (which are the defaults).  For example, for a non-U.S.

# keyboard, you will probably want to use:

#       Option  "XkbModel"      "pc102"

# If you have a US Microsoft Natural keyboard, you can use:

#       Option  "XkbModel"      "microsoft"

#

# Then to change the language, change the Layout setting.

# For example, a german layout can be obtained with:

#       Option  "XkbLayout"     "de"

# or:

#       Option  "XkbLayout"     "de"

#       Option  "XkbVariant"    "nodeadkeys"

#

# If you'd like to switch the positions of your capslock and

# control keys, use:

#       Option  "XkbOptions"    "ctrl:swapcaps"

# Or if you just want both to be control, use:

#       Option  "XkbOptions"    "ctrl:nocaps"

#

Section "InputDevice"

        Identifier  "Keyboard0"

        Driver      "kbd"

        Option      "XkbLayout" "uk"

        Option      "XkbModel" "pc105"

#       Option      "XkbVariant" "nodeadkeys"

EndSection

Section "InputDevice"

        Identifier  "Mouse0"

        Driver      "mouse"

        Option      "Protocol" "IMPS/2"

        Option      "Device" "/dev/input/mice"

        Option      "ZAxisMapping" "4 5"

        Option      "Emulate3Buttons" "no"

EndSection

Section "InputDevice"

        Identifier  "NoKeyboard"

        Option      "CoreKeyboard"

        Driver      "void"

EndSection

Section "InputDevice"

        Identifier  "NoMouse"

        Option      "CorePointer"

        Driver      "void"

EndSection

############

# Monitors #

############

### Comment all HorizSync and VertSync values to use DDC:

Section "Monitor"

        Identifier   "Monitor0"

        VendorName   "Monitor Vendor"

        ModelName    "Dell M992"

        DisplaySize  350 260

        HorizSync    30.0 - 96.0

        VertRefresh  50.0 - 160.0

        Option      "dpms"

EndSection

Section "Monitor"

        Identifier   "TV"

        VendorName   "Bush"

        ModelName    "RF6685VPL"

#       DisplaySize  350  260  # 4:3

#       DisplaySize  1024 576  # 16:9 Full Size

#       DisplaySize  656  369  # 16:9

        DisplaySize  525  290  # 16:9 bigger scale

#       DisplaySize  325  182  # 16:9 for 1280x720

#       DisplaySize  438  246

#       DisplaySize  328  185

        HorizSync    30.0 - 96.0

        VertRefresh  60.0

        Option       "dpms"

EndSection

#########

# Cards #

#########

Section "Device"

        Identifier  "Videocard0"

        Driver      "nvidia"

        VendorName  "Videocard vendor"

        BoardName   "nVidia Corporation NV43 [GeForce 6600/GeForce 6600 GT]"

        BusID       "PCI:1:0:0"

        Option      "RenderAccel" "on"

        Option      "AddARGBGLXVisuals" "True"

EndSection

Section "Device"

        Identifier  "Videocard1"

        Driver      "nvidia"

        VendorName  "Videocard vendor"

        BoardName   "nVidia Corporation NV34 [GeForce FX 5200]"

        BusID       "PCI:2:8:0"

        Option      "RenderAccel" "on"

        Option      "XvmcUsesTextures" "false"

#       Screen 1

#       Option      "RenderAccel" "false"

        Option      "TVOutFormat" "SVIDEO"

        Option      "TVStandard" "PAL-I"

        Option      "ConnectedMonitor" "TV"

#       Option      "TVUndercan" "0.9"

#       Option      "TVOverScan" "0.1"

EndSection

#################

# Display Setup #

#################

Section "Screen"

        Identifier "Screen0"

        Device     "Videocard0"

        Monitor    "Monitor0"

        DefaultDepth     24

        SubSection "Display"

                Viewport   0 0

                Depth     16

                Modes    "800x600" "640x480"

        EndSubSection

        SubSection "Display"

                Viewport   0 0

                Depth     24

                Modes    "1600x1200" "1400x1050" "1280x1024" "1152x864" "1024x768" "800x600" "640x480"

        EndSubSection

        Option     "PasswordFile" "/home/jcat/.vnc/passwd"

        # Enable 32-bit ARGB GLX Visuals

#       Option "AddARGBGLXVisuals" "True"

        # If you are using an older version of compiz that

        # does not support rendering into the Composite

        # Overlay Window, you will need to disable clipping

        # of GLX rendering to the X Root window with this

        # option, or you will get a blank screen after

        # starting compiz:

#       Option "DisableGLXRootClipping" "True"

EndSection

Section "Screen"

        Identifier "Screen1"

        Device     "Videocard1"

        Monitor    "TV"

        DefaultDepth     24

#               SubSection "Display"

#               Viewport   0 0

#               Depth     16

#               Modes    "800x600" "640x480"

#               EndSubSection

                SubSection "Display"

#               Viewport   0 0

                Depth     24

#               Modes    "800x600"

#               Modes    "1024x768"

                Modes    "1280x720"

#               Modes    "720x405"      #Initial setting

#               Modes    "720x576"

#               Modes    "1024x576"

                EndSubSection

EndSection 
```

Cheers,

jcat

----------

## ultraViolet

Verify that in your kernel :

DEVICE DRIVERS>CHARACTER DEVICES>AGPART is activated.

Then try in /etc/X11/xorg.conf:

```
   Option "NvAGP" "3"

```

Then reboot.

Look again the status of your card in proc.

I thinks NVIDIA is the same as NVAGP. I have tried nvagp before, and i thinks that agpart is better.

----------

## nihues

I've read somewhere that AGPGART is more stable then nvagp and should be used..

The performance is almost the same.

----------

## jcat

So basically am I correct in saying that the Wiki on this topic is probably out of date?  It talks about blacklisting AGPGART etc..

Cheers,

jcat

----------

## ultraViolet

I have read the wiki you mentionned, I think he is ok... I couldn't find the chapter where they say that nvgart should be used over agpart ??

----------

## jcat

It talks about blacklisting AGPGART or removing it from the kernel:

 *Quote:*   

> If it says its disabled, check that NVAGP is being loaded. If you see something like the following you have to remove AGPGART from your kernel config.
> 
> Code: dmesg | grep NVAGP
> 
> NVRM: not using NVAGP, AGPGART is loaded!!
> ...

 

Cheers,

jcat

----------

## ultraViolet

I think they are speaking of removing it if you get the error message they tell you. On the doc they say that we have to choose, not that one is better... But I thinks that most people are using agpart. NVAGP is really slower even if more stable in some situation (like Fast Writes).

----------

## coolsnowmen

 *nihues wrote:*   

> I've read somewhere that AGPGART is more stable then nvagp and should be used..
> 
> The performance is almost the same.

 

AGPGART / nvagp shouldn't have any performance issues, it is an initialization of the agp only, is is not used afterwards 

(from what I've read), (I don't even build agpgart into the kernel or as a modules when I use nvidia, and I use compiz-fusion, so I can't be that far off)

EDIT: from the nvidia help file

"You should use the AGP driver that works best with your AGP chipset. If you are experiencing problems with stability, you may want to start by disabling AGP and seeing if that solves the problems. Then you can experiment with the AGP driver configuration.

You can query the current AGP status at any time via the /proc filesystem interface (see Chapter 21, Proc Interface).

To use the Linux 2.4 AGPGART driver, you will need to compile it with your kernel and either statically link it in, or build it as a module and load it. To use the Linux 2.6 AGPGART driver, both the AGPGART frontend module, apggart.ko, and the backend module for your AGP chipset (nvidia-agp.ko, intel-agp.ko, via-agp.ko, ...) need to be statically linked into the kernel, or built as modules and loaded.

NVIDIA builtin AGP support is unavailable if an AGPGART backend driver is loaded into the kernel. On Linux 2.4, it is recommended that you compile AGPGART as a module and make sure that it is not loaded when trying to use the NVIDIA AGP driver. On Linux 2.6, the agpgart.ko frontend module will always be loaded, as it is used by the NVIDIA kernel module to determine if an AGPGART backend module is loaded. When the NVIDIA AGP driver is to be used on a Linux 2.6 system, it is recommended that you make sure the AGPGART backend drivers are built as modules and that they are not loaded."

hmm, we'll no I wonder if the person who told me I didn't need to build the module was wrong...I get no errors/warning or anything...back to benchmarking

----------

## coolsnowmen

in case you wanted to see the who section, you should be able to find it on your driver

/usr/share/doc/nvidia-drivers-*/html/chapter-12.html

* = current version number

----------

