Comment by wk_end
3 days ago
I'm not totally sure what you're trying to say. Even back in the days of "software rendering" - or on those embedded systems that you're describing - you still had a piece of graphics hardware that converted the frame buffer into whatever got spit out to the monitor, so I don't think this is meaningful, really.
What's meant by software rendering is really software rasterization - the process of taking the triangles, textures, etc. of the scene and turning those into the pixels that eventually make their way to the screen. You can still do that in software on the CPU today without touching the GPU, even the integrated one. At that point you hand it off to the hardware to make its way to the screen, sure, but it's only an implementation detail that makes that different from handing 0xA0000000 over to the VGA card. The interesting part of the process, and the results, are functionally the same.
The difference is if it's hardware accelerated or not, or at least that's my understanding. Software rendering means there is no hardware acceleration. I think the term is outdated because typically it means you don't use the GPU, and this was true like a decade ago and earlier, but I think today CPUs have integrated graphics, so it's like they have tiny GPUs to help render to the screen because it's more efficient. So even if someone is not using a physical GPU, chances are the CPU still uses hardware acceleration, and that's why it works so well today.
I have an Intel i9 with no integrated graphics, if I don't use a GPU, the screen would barely render in very low resolution, although haven't really test it that. I can disable hardware acceleration in the browser and it spikes several CPU cores and is terribly inefficient.