AGP aperature math question

crsgardner

Senior member
Apr 23, 2004
305
0
0
I've heard a variety of recommendations for setting AGP aperature: everything from "half the system memory" to "same as video card". What do you set it at for a 128MB video card on a 1024MB system?
 

vshah

Lifer
Sep 20, 2003
19,003
24
81
BUMP

i'd like to know too. as far as i know, the agp aperture is only used when there is no more texture memory available on the card itself. whether the allocation is dynamic up to the bios setting, or constant at that setting, i don't know. i have ma 128mb ti4200 and 1 gig of ram, my aperture is at 256 right now. no problems, so i don't worry about it.

-Vivan
 

ponyo

Lifer
Feb 14, 2002
19,688
2,811
126
I don't think anyone truly knows the right answer to this. I've heard everything also. I tried various settings. I don't care anymore and I just leave it at default. Default for me is either 64 or 128 I think. See, I don't care enought to even know that.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
The Aperture Size is the upper limit to how much system RAM the graphics card may borrow if it runs out of its own. This rarely ever happens outside professional 3D modelling, so for most people it's a don't care. More than half of the system RAM size makes little sense - and keeping it smaller than that doesn't do anything either. The actual borrowing is a dynamic process.

So, the generally correct answer is, half your system RAM size.
 

VIAN

Diamond Member
Aug 22, 2003
6,575
1
0
I have 1GB of RAM and a 128MB video card and I set my AGP Aperature size to 128MB.

BFG Tech recommends to set it equal the the RAM on the Video Card.
 

biostud

Lifer
Feb 27, 2003
19,949
7,046
136
The only place it differs is if you run the new ATi demo on an 9x00 card.
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
*sigh* why did I even bother explain. Folks, belief is for when you're in church.

Exactly what is the reasoning for setting it the same size as the graphics card's RAM? The AGP aperture is about SYSTEM RAM!
 

Mem

Lifer
Apr 23, 2000
21,476
13
81
AGP Aperture Size (MB)

Options : 4, 8, 16, 32, 64, 128, 256

This option selects the size of the AGP aperture. The aperture is a portion of the PCI memory address range dedicated as graphics memory address space. Host cycles that hit the aperture range are forwarded to the AGP without need for translation. This size also determines the maximum amount of system RAM that can be allocated to the graphics card for texture storage.

AGP Aperture size is set by the formula : maximum usable AGP memory size x 2 plus 12MB. That means that usable AGP memory size is less than half of the AGP aperture size. That's because the system needs AGP memory (uncached) plus an equal amount of write combined memory area and an additional 12MB for virtual addressing. This is address space, not physical memory used. The physical memory is allocated and released as needed only when Direct3D makes a "create non-local surface" call.

Win95 (with VGARTD.VXD) and Win98 use a "waterfall effect". Surfaces are created first in 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.

Many people recommend the AGP aperture size should be half of the amount of RAM you have. However, that's wrong for the same reason why swapfile size shouldn't be 1/4 of the amount of RAM you have in your system. As with the swapfile's size, the AGP aperture size required will be smaller as the graphics card's memory increases in size. That's because most of the textures will be stored on the graphics card itself. So, graphics cards with 32MB of RAM or more will require a smaller AGP aperture than graphics cards with less RAM.

If your graphics card has very little graphics memory, then you should set as large an AGP aperture as you can, up to half the system RAM. For cards with more graphics memory, you shouldn't set the aperture size to half the system RAM. Note that the size of the aperture does not correspond to performance so increasing it to gargantuan proportions will not improve performance.

Still, it's 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 RAM? Shouldn't we just set it to the absolute minimum to save system RAM?

Well, many graphics card require at least a 16MB AGP aperture size to work properly. This is probably because the virtual addressing space is already 12MB in size! In addition, many software require minimum AGP aperture size requirements which are mostly unspecified. Some games even use so much textures that AGP memory is needed even with graphics cards with quite a lot of graphics memory (32MB).

And if you remember the formula above, the amount of AGP memory needed is more than double that of the required texture storage space. So, if 15MB of extra texture storage space is needed, then 42MB of system RAM is actually used. Therefore, it makes sense to set a large AGP aperture size in order to cater for every software requirement.

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 RAM 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 64MB of your RAM will be used up as AGP memory. It will only limit the maximum amount that can be used by the AGP bus to 64MB (actual usable AGP memory size is only 26MB).

Now, while increasing the AGP aperture size beyond 128MB wouldn't really hurt performance, it would still be best to keep the aperture size to about 64MB-128MB so that the GART table won't become too large. As the amount of onboard RAM increases and texture compression becomes commonplace, there's less of a need for the AGP aperture size to increase beyond 64MB. So, it's recommended that you set the AGP Aperture Size as 64MB or at most, 128MB.



Link.
 

howdyduty

Senior member
Feb 21, 2001
490
0
0
Since its easy to try a few settings, I try them and see what works best in games and such. For me, 128mb seems good.
 

BFG10K

Lifer
Aug 14, 2000
22,709
3,003
126
The Aperture Size is the upper limit to how much system RAM the graphics card may borrow if it runs out of its own.
No, it's the amount of system RAM that is directly mapped to the VRAM. You can borrow more if needed but accessing it won't be as fast because of the translation required.

This rarely ever happens outside professional 3D modelling, so for most people it's a don't care.
It happens all the time in games if the details are too high and your VRAM amount is too low. Games like UT2003, JA, COD and similar will easily texture swap on 128 MB cards.

Leave it at 64 or 128 MB, raising it only if you have problems.
 

zephyrprime

Diamond Member
Feb 18, 2001
7,512
2
81
quote:
The Aperture Size is the upper limit to how much system RAM the graphics card may borrow if it runs out of its own.


No, it's the amount of system RAM that is directly mapped to the VRAM. You can borrow more if needed but accessing it won't be as fast because of the translation required.
You're mistaken. The first definition is correct. There is an amount of memory mapped to the video card memory which you can check in the properties of your card in device manager. This amount of memory is always equal to the amount of memory on your video card and can't be changed.
 

redfella

Member
Aug 14, 2004
113
0
0
Ok, get this... in my new 6800 manual it recommends setting the AGP aperture to 4mb!

That's with the eVGA 6800 vanilla.
 

NightFalcon

Senior member
May 22, 2004
218
0
0
Originally posted by: redfella
Ok, get this... in my new 6800 manual it recommends setting the AGP aperture to 4mb!

That's with the eVGA 6800 vanilla.

Maybe they missed the 6 in front of it? Doesn't seem right...
 

redfella

Member
Aug 14, 2004
113
0
0
No its not right... becuase I tried it and it wouldn't even run doom3. Wouldn't progress passed the splashscreen.
 

Bucksnort

Golden Member
Aug 17, 2001
1,062
0
0
Now, while increasing the AGP aperture size beyond 128MB wouldn't really hurt performance, it would still be best to keep the aperture size to about 64MB-128MB so that the GART table won't become too large. As the amount of onboard RAM increases and texture compression becomes commonplace, there's less of a need for the AGP aperture size to increase beyond 64MB. So, it's recommended that you set the AGP Aperture Size as 64MB or at most, 128MB.

Thank you mem, this has been asked so many times sigh, Where is Schadenfroh when you need something faq'ed, hehh:frown:
 

VirtualLarry

No Lifer
Aug 25, 2001
56,587
10,225
126
I was never happy with Adrian's write-up about AGP size in his guide, it makes it sound a bit like he doesn't know either.
Unfortunately, neither do I, with any concrete amount of certainty, so hesitate to say exactly where it is wrong.

But there is at least one incorrect part, stating that changing the AGP aperture size used doesn't take up any additional memory (I assume he means system RAM) - that's not quite correct, as the OS has to allocate a number of page tables, and that number depends on the overall size of the virtual address space to be mapped.

BFG10K, your assertion is a tad bit ambigous, do you mean to state that it is the amount of system address space, mapped to the AGP card's VRAM, or the amount of system RAM, mapped to the VPU's address space? Because you cannot map RAM and VRAM on top of each other, in the same address-space context, that doesn't make any sense, and would certainly cause problems if that were actually done in hardware.

The way that I currently look at the AGP aperture, and I've not been able to confirm if this model is correct or not, but that the size of the AGP aperture, should encompass both the size of the card's VRAM, as well as the maximum potential system address space that the video card could request system RAM be mapped to. I'm not sure where the "12MB" Adrian mentions here figures in, I assume that is system RAM used for the allocation of the page tables, but I cannot see how the video would want to access that, so I can't see how that should be mapped inside the GART address range. (Plus, actually, that doesn't make sense for another reason, why would you store page tables containing the mapping for an address range, *within* that mapped address range.)

Actually, before I end up potentially misleading anyone further, I'm going to dig up the actual AGP 2.0 and 3.0 specs, and see if they don't have a software model described in there somewhere. That should hopefully settle this issue once and for all.