Just an idea that came to my mind. First a bit of story, once I was making a design for a console. No, I don’t work for that, it was just an idea that probably will never be By the way, the thing is, I was too lame that instead of a proper rasterizer I was going to use a normal processor as the GPU. DSP, very long instructions, dedicated video instructions, whatever needed, but a normal processor after all. I swear, it was pure lazyness, I didn’t know that was going to be the trend that engineers would be seeking in the future, I didn’t even know about the existance of shaders.
Anyways, there’s a problem with that: fixed functionality is always faster than one done through programming, simply because of the fact you can hardwire it as part of the circuit and don’t waste any extra cycles. So I was thinking: how would an hybrid GPU work?
Basically, the idea is simple: there’s a processor, and there is some extra hardware to help with rasterizing and such, maybe as part of the dedicated instructions. So, while the processor could do rendering by itself, it could as well use those fixed hardware, even if just to do part of the rendering. As if the hardware were ultrafast versions of some common code.
Example: you want to render a normal triangle, but use custom shading/blending/whatever. The processor would do all the calculations for every pixel, however it would use a hardwired circuit that would guide it through all the pixels by just using a single instruction, rather than having to calculate which pixel goes next too. This would speed up things a lot.
Mmmh, well, I think it doesn’t look that simple to explain. Anyways, I wanted to know your opinion. The good thing of using a processor is that you can pass any kind of data to it, so (for example) you could let it to handle models and their animation directly rather than doing it in the CPU and then sending the polygons manually. Having hardwired helpers makes programming of drivers easier too, because some common functionality is already there, but you aren’t forced to use it if you don’t want.
What do you think?