3 ms·
It doesn't quite emulate the whole 3D pipeline, but it emulates the entire pixel and vertex stages. If anyone is interested in checkout out the massive ubershd
by phire 9y ago
It doesn't quite emulate the whole 3D pipeline, but it emulates the entire pixel and vertex stages.
If anyone is interested in checkout out the massive ubershdaers, I've stashed a copy here:
https://gist.github.com/phire/25181a9bfd957ac68ea8c74afdd9e9e1 https://gist.github.com/phire/25181a9bfd957ac68ea8c74afdd9e9...
- chris_wot 9y agoSo if I read the article right, this shader emulates those parts of the rendering pipeline of the GameCube/Wii... which to my mind still just sounds absolutely amazing - does this mean you've had to implement any quirks of the devices into the shader? Also - does this generalise to other rendering pipelines for other devices do you think?
- phire 9y agoYeah, Though we had already implemented all those quirks in the old generated shaders. 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.
- pzone 9y agoThis is utter insanity. Bravo.