For applications like emulators, or making vintage games (like Doom) run on modern platforms, that approach makes a lot of sense.
For applications like emulators, or making vintage games (like Doom) run on modern platforms, that approach makes a lot of sense.
(the resulting framebuffer can then of course be dumped into a GPU texture for rendering, but that just offers a bit more flexibility, eg embedding the emulated system into a 3D rendered world)
PS: of course one could build a GPU command list to render such a video frame somehow, but I bet just building this command list is more expensive then just doing the video decode with the CPU. It would basically come down to one draw command per (emulated system) pixel in the worst case.
If you had a frame buffer for the actual screen and you tried to do even a 1 to 2x2 expansion on the CPU's time, that'd have to be a serious speed hit. Presumably GPU hardware can do that sort of thing.
Window system composers should also be able to upscale bitmaps on their own though, and nothing prevents them to use the GPU for this.
My intuition says otherwise but I admit I don't have math on hand to back it up.