If anyone is interested in checkout out the massive ubershdaers, I've stashed a copy here:
https://gist.github.com/phire/25181a9bfd957ac68ea8c74afdd9e9...
If anyone is interested in checkout out the massive ubershdaers, I've stashed a copy here:
https://gist.github.com/phire/25181a9bfd957ac68ea8c74afdd9e9...
Also - does this generalise to other rendering pipelines for other devices do you think?
The main difference with ubershaders is skip the shader generation/compilation and directly interpret the raw shader binary .
> Also - does this generalise to other rendering pipelines for other devices do you think?
Modern shader cores are more or less Turing complete, so you should be able to do the same on any other rendering pipeline which fits into 'opengl pipeline model', including other modern GPUs.Though, while it might be possible to run modern shaders in this manor, it won't run fast enough, because you will have to spill some (or even a lot) of the shader's state to the host GPU's main memory.
Ubershaders work well for dolphin because the entire mutable state of the GameCube's pixelshaders fit into the available registers, with plenty of space left over. I assume it will work well for other DirectX 8 or even DirectX 9 era GPUs.