GiGaBiTe
Veteran Member
Video memory and Windows memory are 2 different things.
They are not. Both system memory and VRAM occupy space in the CPU's address space. The only difference between them is their purpose, and how they're attached to the system. The CPU can write data directly into the video card's memory because it is present in the x86 address space, so can the GPU use system memory to store data.
In Linux, you can directly assign some or all of video memory to a block device and use it as storage. This wouldn't be possible if the video memory was bank switched.
Windows makes all address allocation under 4GB or drivers would not work.
False. The reason that Microsoft forces drivers into the 32 bit address space is because of memory licensing. If you run a 32 bit server version of Windows that allows for PAE to address more than 4 GB of system memory (Windows 2000 Advanced Server or higher, Windows Server 2003 Enterprise or higher) then drivers can load and store data outside of the 32 bit address space.
Linux with a PAE/PSE kernel don't have these artificial limits.
So, a 4GB GPU might need to allocate 512MB of the 4GB main RAM for what it's doing leaving you with max of 3.5GB if nothing else is installed. If you want to run 2 cards in SLI then that's another 512MB taken up, etc. I look at it as a window to getting data chunks to the GPU and not a store of all the data in the GPU VRAM.
That is not how it works. If Windows and the video driver can't find a place to map memory, it is lost and unusable.