AGP

From LQWiki
Jump to navigation Jump to search

AGP (Accelerated Graphics Port) is a specification for a high-speed extension of the PCI bus allowing graphic cards direct access to system memory. It was originally developed by Intel but is now standard on all makes of PC motherboard, and improves performance on 3D graphics applications and games that require a high memory bandwidth.

Versions

There are three versions of AGP:

  • AGP1.0, AGP2.0, AGP3.0.

The main differences are:

Speeds

The AGP speed is normally indicated with:

  • 1x, 2x, 3x, 4x and 8x.

These relate to the amount of data that is sent per clock cycle. (and not the actual clock speed itself). The AGP bus clock speed is normally 66MHz, so for example the 1x speed send 4 bytes of data per clock cycle, the 2x speed sends 8 bytes. (So theoretical bandwith of 1x is 66Mhz * 4bytes = 264Mb/s)

Physical AGP slots

Because of the changes in voltage level, different AGP slots and connectors were specified. The different versions have notches at different places, so people can't stick unsupported AGP cards in a wrong slot. The different types on mainboards are:

  • Original AGP 3.3V slots, one notch at the front-end (the side that, if a card is installed, you plug in the monitor/vga cable)
  • AGP 1.5V slots (one notch more towards the back-end)
  • Universal AGP slots - support multiple voltages (no notches, so both types of cards fit in it).

Then there are also AGP pro versions of all these slots, which provide more watts for power hungry videocards. What specific speeds and AGP versions a mainboard supports should be specified in its manual.

Linux support

In the Linux 2.4 series support for this is provided by the agpgart kernel module.
For 2.6 series, it has been split up in a general agpgart module and chipset specific modules named like <chipset-name>-agp, e.g. nvidia-agp or intel-agp. In the kernel configuration these can be found under Device drivers->Character devices.

Configuring in XFree86

In XFree86 the AGP speed can be configured by adding a line like:

Option "AGPMode" "4x"

to the device section of the XF86Config. This needs the above mentioned kernel support, and also support in the driver. Check the man page of the driver to see if it's supported.