MacOS – Mac: VRAM with multiple Monitors

displaygraphicsmacmacos

It seems that when multiple monitors are attached to a MacBook Pro (Retina), OSX splits up the VRAM for the monitors. Even when a screen is captured by e.g. a game, performance degrades very steep. The only thing that helps is to put the MBP in clamshell mode and remove one of the 2 attached displays to get back to reasonable performance.

The thing I don't understand is, why does the OS not allocate all resources to the captured display by default when it's captured? What's the reasoning behind this?

Best Answer

The rule is if a monitor is attached, GPU needs to push content to it, therefore taking out memory space.

The good thing is, that space is quite small when a game is in fullscreen since it's just a big black canvas being pushed.

The bad news is, performance isn't degraded because of the VRAM, it's rendering units.

Each GPUs is made up of different units specialized in performing different tasks. There's one kind of units that are specialized in rendering outputs.

That said, even if the retina display is blank, it still consumes a great deal of rendering unit's resources. That is what I think make the game slow.

It's like the difference between my recently purchased GTX 660 TI and 670. They are as good as each other in terms of calculation performance (texel rate, effects), but it has slower RAM and less rendering units. That makes it perform much worse in high resolution.