32-bit WinXP has no problem with more than 4GB installed RAM. Red-ray is right, the maximum available memory under 32-bit Windows is determined by the lowest starting address of any video card's linear frame buffer not by the amount of Video RAM.
Starting address of LFB:
0xC0000000 -> 3GB available
0xD0000000 -> 3.25GB available
0xE0000000 -> 3.5GB available
You can test this by checking the used memory resources of your VGA in device manager.
If you have 2 active modern VGA the available RAM would be less than with only 1 because the system has to reserve 2 LFB regions.
So even under a 32-bit OS you can use cards with 2/4 GB of Video RAM since addressing full video RAM is a concern of the driver. On the CPU side there's usually only a 256MB area in the PCI address space. The same is true for 2 cards.
Regarding video memory handling and the 256MB area: an analogy could be that under pure 16-bit real mode DOS that has an address limit of only 1MB you can use the full VGA frame buffer (8/16/32 MB etc.) through VESA driver/BIOS calls by using a 64KB area (A0000 - AFFFF) and bank switching.
Also it is worth mentioning that you can use the unused RAM under XP for ramdrive. You can even put the pagefile on it.
For this to work you need special ramdrive software that supports PAE and can use the RAM not used by XP. In case of Gavotte Ramdisk Utility you should add UsePAE=1 to registry manually or by using the included ram4g.reg file.
Yes, but, correct me if I'm wrong here, the more VRAM a GPU has the more address space it'll use.
No, it's only true in case of cards with less than 256MB of onboard RAM . Apparently no card uses more than 256MB address space even it has 2/4 GB of onboard VRAM.
But the point is the available max. RAM under 32-bit OS is not directly dependent even on the amount of used address space but the starting address of the card's LFB.
So even if your card has only 64MB VRAM and the used address space is only 64MB but its LFB has a starting address of 0xC0000000 then you will only have 3GB available RAM under 32-bit WinXP.
While if you have an 1GB card that uses 256MB address space but its LFB starting address is 0xD0000000 then you will have 3.25GB available RAM.