AGP Aperture Size
This BIOS feature allows you to select the size of the AGP aperture. The aperture is a portion of the PCI memory address range that is to be dedicated for use as AGP memory address space. Host cycles that hit the aperture range are forwarded to the AGP bus without need for translation. The aperture size also determines the maximum amount of system RAM that can be allocated to the AGP graphics card for texture storage.
The AGP aperture size should be calculated using this formula : maximum usable AGP memory size x 2 plus 12MB. The actual usable AGP memory space is less than half the AGP aperture size set in the BIOS. This is because the AGP controller needs a write combined memory area equal in size to the actual AGP memory area (uncached) plus an additional 12MB for virtual addressing. Therefore, it isn't simply a matter of determining how much AGP memory space you need. You also need to calculate the final aperture size by doubling the amount of AGP memory space desired and adding 12MB to the total.
Note that the AGP aperture is merely address space, not physical memory in use. The physical memory is allocated and released as needed only when Direct3D makes a "create non-local surface" call. Windows 95 (with VGARTD.VXD) and later versions of Microsoft Windows use a waterfall method of memory allocation. Surfaces are first created in the graphics card's local memory. When that memory is full, surface creation spills over into AGP memory and then system memory. So, memory usage is automatically optimized for each application. AGP and system memory are not used unless absolutely necessary.
It is quite common to hear many people recommending that the AGP aperture size should be exactly half the amount of system RAM. However, this is wrong for the same reason why swapfile size shouldn't always be 1/4 of system RAM. Like the swapfile, the requirement for AGP memory space shrinks as the graphics card's local memory increases in size. This is because the graphics card will have more local memory to dedicate to texture storage. This reduces the need for AGP memory. So, if you upgrade to a graphics card with more memory, you shouldn't be "deceived" into thinking that it will therefore require even more AGP memory! On the contrary, a smaller AGP memory space will be required.
If your graphics card has very little graphics memory (4MB - 16MB), you may need to create a large AGP aperture, up to half the size of the system RAM. The graphics card's local memory and the AGP aperture size combined should be roughly around 64MB. For cards with more local memory, you needn't create quite so big an aperture. Note that the size of the aperture does not correspond to performance so increasing it to gargantuan proportions will not improve performance.
Still, it is recommended that you keep the AGP aperture around 64MB to 128MB in size. Now, why is such a large aperture size recommended despite the fact that most graphics cards now come with large amounts of local memory? Shouldn't we just set it to the absolute minimum to save system RAM?
Well, in the first place, many graphics cards require an AGP aperture of at least 16MB in size to work properly. This is probably because the virtual addressing space is already 12MB in size! In addition, many software have AGP aperture size requirements that are mostly unspecified. Some games actually use so much textures that a large AGP aperture is needed even with graphics cards with large memory buffers.
And if you remember the formula above, the AGP aperture must be more than twice the size of the desired AGP memory space. So, if you want 15MB of AGP memory for texture storage purposes, then the AGP aperture has to be at least 42MB in size. Therefore, it makes sense to set a large AGP aperture size in order to cater for all eventualities.
Please note that reducing the AGP aperture size won't save you any RAM. Again, what setting the AGP aperture size does is limit the amount of system memory the AGP bus can appropriate when it needs to. It is not used unless absolutely necessary. So, setting a 64MB AGP aperture doesn't mean that 64MB of your system memory will be appropriated. It will only limit the maximum amount of system memory that can be used by the AGP bus to 64MB (with a usable AGP memory space of only 26MB).
Now, while increasing the AGP aperture size beyond 128MB won't take up system RAM, it would still be best to keep the aperture size in the 64MB-128MB range so that the GART (Graphics Address Relocation Table) won't become too big. As the amount of local memory on graphics cards increases and texture compression becomes commonplace, there's less of a need for the AGP aperture size to grow beyond 64MB. Therefore, it is recommended that you set the AGP Aperture Size to 64MB or at most, 128MB.