Remix.run Logo
maccard 6 hours ago

A single 1920x1080 framebuffer (which is a low resolution monitor in 2025 IMO) is 2MB. Add any compositing into the mix for multi window displays and it literally doesn’t fit in memory.

snek_case 5 hours ago | parent | next [-]

I had a 386 PC with 4MB of RAM when I was a kid, and it ran Windows 3.1 with a GUI, but that also had a VGA display at 640x480, and only 16-bit color (4 bits per pixel). So 153,600 bytes for the frame buffer.

Dwedit 5 hours ago | parent [-]

640 * 480 / 2 = 150KB for a classic 16-color VGA screen.

beagle3 an hour ago | parent | prev | next [-]

The Amiga 500 had high res graphics (or high color graphics … but not on the same scanline), multitasking, 15 bit sound (with a lot of work - the hardware had 4 channels of 8 bit DACs but a 6-bit volume, so …)

In 1985, and with 512K of RAM. It was very usable for work.

mrits 41 minutes ago | parent [-]

a 320x200 6bit color depth wasn't exactly a pleasure to use. I think the games could double the res in certain mode (was it called 13h?)

krige 17 minutes ago | parent [-]

For OCS/ECS hardware 2bit HiRes - 640x256 or 640x200 depending on region - was default resolution for OS, and you could add interlacing or up color depth to 3 and 4 bit at cost of response lag; starting with OS2.0 the resolution setting was basically limited by chip memory and what your output device could actually display. I got my 1200 to display crisp 1440x550 on my LCD by just sliding screen parameters to max on default display driver.

Games used either 320h or 640h resolutions, 4 bit or fake 5 bit known as HalfBrite, because it was basically 4 bit with the other 16 colors being same but half brightness. The fabled 12-bit HAM mode was also used, even in some games, even for interactive content, but it wasn't too often.

bobmcnamara 4 hours ago | parent | prev | next [-]

It's so much fun working with systems with more pixels than ram though. Manually interleaving interrupts. What joy.

echoangle 6 hours ago | parent | prev | next [-]

Do you really need the framebuffer in RAM? Wouldn't that be entirely in the GPU RAM?

jerrythegerbil 6 hours ago | parent | next [-]

To put it in GPU RAM, you need GPU drivers.

For example, NVIDIA GPU drivers are typically around 800M-1.5G.

That math actually goes wildly in the opposite direction for an optimization argument.

jsheard 5 hours ago | parent | next [-]

Doesn't the UEFI firmware map a GPU framebuffer into the main address space "for free" so you can easily poke raw pixels over the bus? Then again the UEFI FB is only single-buffered, so if you rely on that in lieu of full-fat GPU drivers then you'd probably want to layer some CPU framebuffers on top anyway.

throwaway173738 4 hours ago | parent | next [-]

Yes if you have UEFI.

the8472 5 hours ago | parent | prev [-]

well, if you poke framebuffer pixels directly you might as well do scanline racing.

jsheard 4 hours ago | parent [-]

Alas, I don't think UEFI exposes vblank/hblank interrupts so you'd just have to YOLO the timing.

Rohansi 5 hours ago | parent | prev | next [-]

> NVIDIA GPU drivers are typically around 800M-1.5G.

They also pack in a lot of game-specific optimizations for whatever reason. Could likely be a lot smaller without those.

monocasa 5 hours ago | parent [-]

Even the open source drivers without those hacks are massive. Each type of card has its own almost 100MB of firmware that runs on the card on Nvidia.

jsheard 4 hours ago | parent [-]

That's 100MB of RISC-V code, believe it or not, despite Nvidias ARM fixation.

hinkley 2 hours ago | parent | prev [-]

Someone last winter was asking for help with large docker images and it came about that it was for AI pipelines. The vast majority of the image was Nvidia binaries. That was wild. Horrifying, really. WTF is going on over there?

maccard 4 hours ago | parent | prev | next [-]

You’re assuming a discrete GPU with separate VRAM, and only supporting hardware accelerated rendering. If you have that you almost certainly have more than 2MB of ram

4 hours ago | parent | prev | next [-]
[deleted]
znpy 6 hours ago | parent | prev | next [-]

Aren’t you cheating by having additional ram dedicated for gpu use exclusively? :)

sigwinch 6 hours ago | parent | prev | next [-]

VGA standard supports up to 256k

ErroneousBosh 4 hours ago | parent | prev [-]

Computers didn't used to have GPUs back then when 150kB was a significant amount of graphics memory.

ohhellnawman 6 hours ago | parent | prev [-]

[dead]