Performance Testing: Does Video Memory Size Matter?

This section is the most difficult one to write, the problem is that there aren’t that many good performance tests for a high end GPU under OS X. It also happens to be a big part of the reason Apple can get away with shipping integrated graphics in the majority of its machines and a low end add in card in its Mac Pro. Honestly, one of the biggest uses for a new graphics card under OS X is having additional video memory.

The contents of each window and the windows themselves are drawn by the GPU and stored in video memory. Previous versions of OS X either drew windows in system memory and then composited all of them in video memory, or did everything in system memory and just outputted the final scene to the video card. Ever since OS X 10.4, the entire drawing and display process happens on the GPU and in video memory. Ars Technica’s John Siracusa has an excellent explanation of the whole process.

Each window gets treated as a 2D OpenGL surface and all of the character and image rendering, blending and display happens on the GPU. The GPU is much faster at all of this than the CPU so it made sense. The result is much lower CPU and system memory usage. What it also means is that the amount of video memory you have matters.

If you run out of video memory, the GPU has to swap data in and out of system RAM. The trip to system memory is much higher latency than just grabbing windows from video memory, and thus we see performance suffer. Faster memory busses and PCIe 2.0 both help minimize the impact, but it’s there nonetheless.

The issue is never about how many windows you can have open, but how smoothly effects like Dashboard and Exposé run. Those depend on having enough video memory to store/manipulate all open windows.

I ran some tests to figure out exactly how much video memory was enough for a single display. I started with a blank desktop and measured available video memory. On a 512MB card, at 2560 x 1600, you end up with 488MB of free video memory in OS X 10.5.7.

Depending on the contents of the windows you open, their memory requirements will differ. I found that a full height Safari 4 window showing the AnandTech home page was pretty stressful from a memory footprint standpoint. A single Safari 4 window required 7MB of video memory at 2560 x 1600. Finder windows are much cheaper, some application windows are much more expensive (more on this later).

With a single window requiring 7MB, 10 requires about 70MB. Now things don’t always scale linearly and there’s additional overhead for dealing with more windows. At 10 windows that overhead appears to be around 1MB. While a single Safari 4 window needs 7MB at 2560 x 1600, ten will need around 71MB; twenty windows will need 144MB.

Lower resolutions require less video memory. At 1680 x 1050 the cost per 10 windows drops from 71MB to 44MB.

I extrapolated the data out to 130 Safari 4 windows and presented the video memory requirements, dependent on resolution in the graph below:

If you have a 30” monitor running at its native resolution (2560 x 1600), a 512MB video card will get you just under 70 windows.

Note that not all applications play nicely. Take Photoshop CS4 for example. One of its major features is the ability to enable OpenGL acceleration within the application. With each image being OpenGL accelerated you get benefits like being able to zoom and rotate smoothly, the downside is that each image you open in Photoshop now eats up even more video memory.

Under OS X each 12MP image from my digital camera that I open in Photoshop eats up around 56MB of video memory (at 2560 x 1600)! To make matters worse, OS X won’t reclaim all of the memory even if you close all of the images in Photoshop. You need to exit Photoshop to get all of your video memory back.

While it would take 70 normal windows to max out the 512MB of video memory on a GeForce GT 120 at 2560 x 1600, it would take less than nine 12MP images open in Photoshop to do the same. And once again, you don’t get that memory back when you close your images - only after you exit Photoshop. Most other windows in OS X will give you your GPU memory back as soon as you close the window.

If you find yourself doing a lot of work in Photoshop, you’ll want to either limit the number of images you have open at once or disable OpenGL acceleration. And by all means, quit the app once you’re done editing. Of course you could always move to a graphics card with more memory...

Installing EVGA's GeForce GTX 285 Mac Edition OS X Apps That Need a Fast GPU
Comments Locked

48 Comments

View All Comments

  • bupkus - Saturday, July 18, 2009 - link

    For so very long linux never could claim itself a good platform for games. So I'm thinking, admittedly quite wishfully, that the OS X's linux roots could provide a trail for drivers in OS X to become useful in linux.
    What say you experts on this matter?
  • erple2 - Saturday, July 18, 2009 - link

    OSX isn't based on Linux. It's based on a BSD flavor. I'm not sure if it's NetBSD or OpenBSD (I think NetBSD). Which is very different from Linux.
  • Kurotetsu - Tuesday, July 21, 2009 - link

    Well, according to Wiki (which means you should take it with some salt), it was both:

    Mac OS X is based upon the Mach kernel.[8] Certain parts from FreeBSD's and NetBSD's implementation of Unix were incorporated in Nextstep, the core of Mac OS X. Nextstep was the object-oriented operating system developed by Steve Jobs' company NeXT after he left Apple in 1985.[9]

    http://en.wikipedia.org/wiki/Mac_OS_X">http://en.wikipedia.org/wiki/Mac_OS_X
  • sprockkets - Tuesday, July 21, 2009 - link

    Yes, this is true. The BSD part is just for POSIX compliance. Even though OSX is certified UNIX, Apple saying it is UNIX stable is a bit disingenuous, as the part of the kernel doing all the work is all Apple, not UNIX or BSD.
  • 8steve8 - Friday, July 17, 2009 - link

    means can't connect to the LED 24" display apple makes.

    weird.
  • Natfly - Saturday, July 18, 2009 - link

    I would think a standard dvi -> mini-displayport adapter would work, right?

    http://www.monoprice.com/products/product.asp?c_id...">http://www.monoprice.com/products/produ...2&p_...
  • BrianMCan - Monday, July 20, 2009 - link

    no, that is to connect a DVI monitor to mini-displayport computer.

    to go the other way it would have DVI male, to mini-displayport female.
  • Demon-Xanth - Friday, July 17, 2009 - link

    quote:

    "However if you take into account the fact that two PCIe power cables will cost you $60"


    ...the markup on those cables is the most I've seen outside of audiophile or specialty cables.

    Connectors:
    4x Molex 45559-0002 $0.30ea, $0.14/ea in quantities of 5000
    24x Molex 44476-1111 $0.12ea, $0.05/ea in quantities of 4000
    12' 18AWG stranded wire (assuming the cables are 12") $38/100 foot spool, $145 for 1000'
    (prices from Mouser, distributors may be much lower)

    Low quantity cost: About $8 for the pair.
    Higher quantity cost: About $3 for the pair.

    Admittedly, the crimp tool itself runs about $320, so given the $52 profit margin, it should take about 7 sets to end up in the black.
  • rpmurray - Tuesday, July 21, 2009 - link

    I'd go with the higher quality pair, according to you they're $5 cheaper then the low quality
  • Demon-Xanth - Thursday, July 23, 2009 - link

    Quantity, not quality.

    The parts are $8 for two if you built one set. $3 for two if you build 1000 sets.

Log in

Don't have an account? Sign up now