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 &quot;max&quot; 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 &quot;dark arts&quot; to me (other than RAM timings).
Any hardware in the graphics card is fixed.

No, the storage of a graphics card is fixed. How that storage gets used, particularly on any semi-modern graphics card, is flexible.
Essentially, what a graphics display device has is a mechanism for being told, &quot;the bytes of video memory starting at address X is in format Y and size Z; send it at the next vblank period to display device W&quot;. Really old graphics cards had specific memory structures for holding framebuffers, which imposed strict limits on how things could work. But that hasn't been the case on PCs for a good decade at least.
There may be limitations on how many display devices a particular piece of hardware could hypothetically output to, or the sizes and formats which the hardware can use. Some hardware devices may only be able to use non-virtualized GPU addresses (which I'd guess is why NVIDIA has special memory types for allocating render targets) or somesuch, but even that is a matter of the user interface, not what the internal hardware is doing. As far as the display device's output is concerned, it could use more or less any GPU memory address.
So, what happens when you plug in a new display device? The OS allocates a framebuffer's (or two) worth of video memory for that display device's video output. If you change the resolution of a display device, the OS allocates a differently-sized slice of memory and frees the prior framebuffer allocation. And so forth.