# How does the OS + hardware support multiple screen resolutions and multi-display?

Modern operating systems support a wide range of resolutions. Mine ranges from 800x600 to 1920x1080. They also support multi-displays. I've never tried it but I have seen other users with 2 or 3 monitors.

I'd like to know some details about how this is all supported. The trivial way is to size the graphics card buffer for the largest possible display, and then crop off any unused parts before sending it out the video port. But a little math, so 1920x1080, 24 bit color, is about 6.2 MB, which is not that big at all for a piece of VRAM. However, then we get to multi-display. What is a reasonable max number for displays? 4? 8? And then don't forget you want to support high frame rates of at least 60 fps, maybe 120 or even 240. Then remember you should support double- or even triple-buffering.

Not to mention, I have seen bigger rez monitors online that advertise themselves as compatible with Windows 7 and 10. So it seems to me that just providing the max possible buffer size is not feasible. The "max" changes too rapidly these days.

TLDR: I can understand if every monitor and GPU comes with its own driver. What I'm trying to understand is how one set of hardware can support a very wide range of screen resolutions without being trivially wasteful. Is there some clever way of doing this?

Disclaimer: I'm a CS guy and don't keep up with modern hardware. I used to read a little about various hardware back in late 90s / early 00s, but never worked on it career-wise or hobby-wise. I can build my own comp and understand basic specs of most parts, but the graphics capabilities are the biggest mystery and "dark arts" to me (other than RAM timings).

• I don't understand the question. Why is the obvious solution (ie: using a memory sized for the current resolution/number of screens) not simply the way it gets handled? – Nicol Bolas Mar 4 at 22:38
• @NicolBolas Any hardware in the graphics card is fixed. How big do you think the frame buffer should be? Enough for 4K on 4 monitors? Yet the vast majority of ppl use less than 4K rez on less monitors than that. But a single set of hardware can, ostensibly, support such huge things. That's what i mean by "trivially wasteful" and figured there was a better way. – DrZ214 Mar 5 at 0:45
• I found a supporting statement on a related question here: ( computergraphics.stackexchange.com/questions/7952/… ), where the answer says Once the slave is done, it sends its render to the master to combine into one image before sending it to the monitor. So that suggests there are ways of using smaller VRAM or framebuffer to combine into bigger image, but i'm hoping for more details than just the abstract concept. – DrZ214 Mar 5 at 0:46
• "Any hardware in the graphics card is fixed." There are only X bytes of RAM, but what you use it for is not necessarily fixed. Why do you think that a GPU would be restricted to having fixed, hardware-bound images for render targets or display targets? That is, why do you think the hardware would say that physical GPU address range X to Y is framebuffer memory and only that can be output to a display device? – Nicol Bolas Mar 5 at 0:50
• "RAM is slow" Even if that's true, it doesn't need to be especially fast.Once you have image data stored into it, you have somewhere between 16 and 8ms to transmit it to the display device. Plenty of time even by CPU RAM standards. – Nicol Bolas Mar 5 at 3:29