Question about video hardware memory usage

  • Thread starter Thread starter Victek
  • Start date Start date
V

Victek

I was under the impression that adding video adapters with more memory would
reduce the amount of ram available for the OS because the video ram would
need more of the 4 gig address space of Vista x86. But I read recently that
because video adapters have their own memory controllers to address their
ram the memory footprint in the OS is much less then the amount on the video
adapter. Is this correct? I'd appreciate hearing more about how this
works. How can you determine how much address space a video card is going
to take up in the OS? TIA
 
Victek said:
I was under the impression that adding video adapters with more memory
would reduce the amount of ram available for the OS because the video ram
would need more of the 4 gig address space of Vista x86. But I read
recently that because video adapters have their own memory controllers to
address their ram the memory footprint in the OS is much less then the
amount on the video adapter. Is this correct? I'd appreciate hearing more
about how this works. How can you determine how much address space a video
card is going to take up in the OS? TIA

Your impression is correct. The video card might not use those
addresses for data, but they are still reserved and mapped into
the 4GB of virtual address space. It's not the controllers. It's
the fact that the 4GB of address space is shared by applications,
the OS, and hardware.

I proved this to myself. I had a 512MB PCIe video card, which
I replaced with a 896MB card. To enable more application
memory I was using the /3GB switch with /userva=2800 in XP.
When the new video card was installed, the system failed to
boot due to no memory available for the OS kernel. I finally
had to set /userva= to 2400, to allow for the extra ~400MB of
video memory. Vista 32 bit has its userva= setting in bootmgr.
Vista 64 doesn't need that setting. This is all becoming
irrelevant as 64 bit Vista becomes the norm.
 
imho
If you are running 2d applications, everything except gaming, there is no
change to the system memory footprint regardless of the amount of RAM on the
videocard. The demands of 2d applications, including Photoshop/video
processing, are minimal with regard to even motherboard based video let
alone decent stand-alone cards. The exception is if you are trying to run a
large panel with a high resolution at high refresh rates. but few of us will
ever do that.
If you are 3d gaming then you want the fastest video card with the fastest
and largest amount of memory you can afford.
 
imho
If you are running 2d applications, everything except gaming, there is no
change to the system memory footprint regardless of the amount of RAM on
the videocard. The demands of 2d applications, including Photoshop/video
processing, are minimal with regard to even motherboard based video let
alone decent stand-alone cards. The exception is if you are trying to run
a large panel with a high resolution at high refresh rates. but few of us
will ever do that.
If you are 3d gaming then you want the fastest video card with the fastest
and largest amount of memory you can afford.
Interesting, but how is it determined? I currently have a video card with
128 megs on it. I have 4 gigs installed and the Vista x86 task manager
reports 3453 MB available (on the performance tab). Are you saying if I
install a video card with say 512 megs it will not change the available
amount of ram stated in the task manager?
 
Victek said:
Interesting, but how is it determined? I currently have a video card with
128 megs on it. I have 4 gigs installed and the Vista x86 task manager
reports 3453 MB available (on the performance tab). Are you saying if I
install a video card with say 512 megs it will not change the available
amount of ram stated in the task manager?

If your video card is PCIe, and you upgrade to a 512MB card, your
available RAM will drop to the 3100MB range, which is about what
most people with 512MB cards have available.

One thing of note is that of the 4GB of 32 bit virtual address space an
application is allotted 2GB, and the other 2GB is allotted to the OS.
Unless they are what's called "large address aware", applications don't
have access to more than 2GB of address space, which equates to
2GB of RAM in a 3 or 4GB system. Also, the /3GB and /userva=
switches have to be set, in boot.ini for XP. The increaseuserva
command is used in the 32 bit Vista bootmgr. In 64 bit Windows,
large address aware apps have access to 4GB.

Details here:
http://msdn.microsoft.com/en-us/library/bb613473.aspx
 
Back
Top