In the olden days we didn't have GPUs, we had "CRT controllers".

What it offered you was a page of memory where each byte value mapped to a character in ROM. You feed in your text and the controller fetches the character pixels and puts them on the display. Later we got ASCII box drawing characters. Then we got sprite systems like the NES, where the Picture Processing Unit handles loading pixels and moving sprites around the screen.

Eventually we moved on to raw framebuffers. You get a big chunk of memory and you draw the pixels yourself. The hardware was responsible for swapping the framebuffers and doing the rendering on the physical display.

Along the way we slowly got more features like defining a triangle, its texture, and how to move it, instead of doing it all in software.

Up until the 90s when the modern concept of a GPU coalesced, we were mainly pushing pixels by hand onto the screen. Wild times.

The history of display processing is obviously a lot more nuanced than that, it's pretty interesting if that's your kind of thing.

Small addendum, there was already stuff like TMS34010 in the 1980's, just not at home.