This is a question i always wanted to ask, so i would be thankfull if one of the Nvidia guys could answer it…
Basically, i have a very complex scene (millions of vertices), and a very small number of textures, plus a reasonnable frame buffer (no anti-aliasing). On all NVidia cards with more than 64 Mb i’ve tested (ie. GF2 GTS 64, GF3 Ti 500 64, and even GF4 Ti 4600 128), i’ve never been able to allocate more than 32 Mb of video memory (even when there’s no other win app running).
So my question is: why is that ? Is this a hardware limitation ? A driver one ? A bug ? For now, i use these 32 Mb to optimize my scene, but on the GF4 with has 128 Mb, that means around 80 Mb are unused.
It’s a driver limitation that is gone in newer drivers. You should be able to get massive chunks of AGP now, if you need them.
Is this true, even if the user has set his AGP aperture size to, say, 8 MB in the BIOS? Which versions of Windows can override this setting?
You’re still dependent on the BIOS settings, I believe. But that’s true with or without VAR. It’s not as though we can just magically create more AGP memory than a chipset supports; the GART is only so big, and we don’t implement the GART driver (unless, of course, it’s our own chipset).
If a user has only 8 MB of AGP memory, they will probably get bad performance, with or without VAR.
Well, windows overrides the BIOS in so many other ways (like turning ON SpeedStep after I explicitly disable it – with no way of turning it off!)
In the end, it’s just registers in a chip somewhere. The Windows GART/chipset driver could conceivably say “thank you Mr BIOS, that’s very nice, but now I think I’ll crank the GART up to the maximum you support, which I know because I’m after all a tailored chip set driver” and bang the registers.
If it did this, it’d save us HUGE tech support nightmares. <gripe>Although some vendors (cough Micron cough) even sell pre-configured machines that don’t have proper AGP drivers at all. (And of course I’m on tech support escalation duty when this irate customer calls in because his Athlon XP whatever runs like molasses :-)</gripe>
And let’s not even get started on the disaster that is NT4’s “AGP support”. I use quotes because it is AGP support only in the loosest of all possible senses.
I feel your pain. I’ve worked on some systems where we could barely get enough AGP memory to run our driver in AGP mode, much less leave any for you to use for VAR.
Ah, thank you, these informations are pretty interesting… didn’t know NT4 had a so bad AGP support. I suppose video memory is still normally accessible, though?
What? Are you suggesting that Windows should allocate huge amounts of uncached AGP memory?
Just in case someone uses lots of textures, display lists or VAR in a 3d app?
Am I right in thinking that the AGP aperture size set in the BIOS is basically allocating N megabytes of uncached memory? So the larger your aperture size the less memory you’ve got to run programs in?
No, that’s not quite it. The AGP aperture size is a limitation on how much memory COULD be set aside for “AGP” memory. But if you’re not using it, Windows could decide to use that physical RAM for something else.
I haven’t actually read the detailed AGP specs, so I don’t understand what the cost is in always having the AGP aperture size set at the max, but I believe it to be very small (and therefore, making this BIOS adjustable, seems just folly).
just want some basic informations here, but some about link with this purpose:
Is it better then, to store you AGP aperture size under the BIOS to the same size than your graphic card (ie 32 Mobios with 32mo aGP graph card) ? Or is it well to always set the double thinking your RAM could do the same way ?
It was something i wonder for a while too.
I’m not sure, but I’m guessing more memory is spent on the GART if you grow the aperture.
Yeah, that’s my impression too, but I think this can be measured in a handful of pages. It would certainly have been worth it requiring always a minimum aperture size of 64 MB, if it’s just a few pages of locked RAM. As it is now, this presumed non-win ends up costing consumers lots of pain, and ends up telling the common man that computers STILL need men in white lab coats to run them.
Hey, I’m not arguing. (Indeed, you could argue that the GART side of AGP wasn’t necessary after all, and all you really needed was the faster bus.)
I think it might also cost you physical address space, but on these machines you aren’t running out any time soon. Nah, we won’t hit that problem up until the average 32-bit machine has 3 GB of RAM and a 1 GB video card. Hopefully by then we’ll all be using x86-64.