I've had to post this too many times so i thought i'd get it out in the correct forum here.
Under a 32 bit operating system (XP, vista 32) you have 4GB of address space available. Address space is different to the amount of memory in your PC.
The reason a 32 bit system can only use 3GB (or 3.25GB, or whatever number you get) of system ram is because it doesnt have enough address space left. Video cards are the most important part of a PC that uses address space.
If you had 4GB of system ram and a 1GB video card under a 32 bit operating system, each individual program could only use 3GB of that system ram (due to the video card using 1GB of address space) However there is something else most people are NOT aware of.
Under DirectX 9.0C (and lower) video card ram must be duplicated into system ram. That means if you're running on the highest settings with your new shiny 1GB video card - that 1GB of video memory must be duplicated leaving you with only 2GB left for your game.
You just went from 4GB to 2GB, only considering a single 1GB video card. Things only get worse in SLI and crossfire.
Under 64 bit you wouldnt have lost that initial 1GB of ram to the address space, so you'd have 3GB of usable ram, with 1GB used in DX9.0C games. All of a sudden those modern games which border on 1.5-2GB of ram usage are playable, without your system running like a dog.
Side note: It should be noted that DX10/10.1 do not duplicated video memory into system ram. DX10 actually helps to alleviate this issue, if your system is powerful enough to run games in DX10.
Side note 2: There is more than just video card ram that affects this. System page file uses address space, as do various parts related to the BIOS (RAID cards, sound cards with onboard ram, etc) - this is why with a 512MB video card your 32 bit OS may report 3.25GB of ram - 256MB was taken away for everything else
Example configs:
32 bit
4GB system ram
1GB video card
3GB system ram usable, 2GB left in games once video card ram is duplicated.
2GB system ram
1GB video card
1GB system ram usable, The last 1GB would fight with the video card ram here. If you dont lower texture settings, resolution, and AA you'll get pretty nasty stuttering as you run out of ram.
4GB system ram
2x1GB video cards (SLI/crossfire)
2GB system ram usable, 2GB left in games once video card ram is duplicated.
(SLI and crossfire only use one video cards ram. Because of how it works both cards ram is in the address space, but only one cards ram is duplicated)
64 bit
4GB system ram
1GB video card
4GB system ram usable, 3GB left in games once video card ram is duplicated.
2GB system ram
1GB video card
1GB system ram usable, The last 1GB would fight with the video card ram. This kind of PC is the one where people claim vista x64 has no real advantage, or slower due to 64 bit using slightly more ram than 32 bit in windows itself.
4GB system ram
2x1GB video cards (SLI/crossfire)
4GB system ram usable, 3GB left in games once video card ram is duplicated.
(SLI and crossfire only use one video cards ram. Because of how it works both cards ram is in the address space, but only one cards ram is duplicated)
Update:
http://support.microsoft.com/kb/940105
This link from microsoft has some good info, and fills a gap i'd missed.
You do not need to download the file mentioned, as this is already included in vista SP1 (and you should be on SP2 by now!)
This shows another side to this - 32 bit applications can only have 2GB total for the entire application, regardless of the amount of available ram and system-wide address space. so even if you have 4GB of ram and 3.5GB showing as available, if you've got a 1GB video card in a 32 bit OS you're in for a world of hurt.
Edit: W1zzard has queried the ram duplication, so i managed to find some more links - thanks to Xenos especially.
http://www.tomshardware.com/news/win...mory,7644.html
This article is talking about how the aero desktop was moved from DX9 (WDDM1.0) to DX10 (WDD1.1) and they directly mention how the old (DX9) system required a copy of video ram in system ram.
Bookmarks