RT64: N64 graphics renderer in emulators and native ports
1–10 of 54 posts
Re: RT64: N64 graphics renderer in emulators and native ports
#2Re: RT64: N64 graphics renderer in emulators and native ports
#3Re: RT64: N64 graphics renderer in emulators and native ports
#4I may sound way out of the loop here, but... How come this was never a problem for older dx9/dx11/GL games and emulators?
Re: RT64: N64 graphics renderer in emulators and native ports
#5[flagged]
Work in Progress
Emulator Support (Plugin) and Ray Tracing (RT) are not available in this repository yet.Re: RT64: N64 graphics renderer in emulators and native ports
#6> Uses ubershaders to guarantee no stutters due to pipeline compilation. I may sound way out of the loop here, but... How come this was never a problem for older dx9/dx11/GL games and emulators?
Most modern emulators implement a shader cache which stores those shaders as they are encountered so that this "compilation stutter" only happens once per shader - but modern titles can have hundreds or thousands of shaders and that means on a playthrough you're pretty much encountering it consistently. Breath of the Wild was one that stands out as a game where you basically had to run it with precompiled shader caches as it was borderline unplayable without it.
Ubershaders act like fallback shaders - using an off the shelf precompiled "particle" shader vs the actual one, while the actual one is compiled for use next time - this prevents the stutter at a cost of visual fidelity. If you see an explosion in a game, it will be a generic explosion shader vs the actual one used in the game, until it is available in the shader cache.
Re: RT64: N64 graphics renderer in emulators and native ports
#7[flagged]
https://www.youtube.com/watch?v=Yl7WvabHfk4
the OG "less compressed" video was on a twitter post that i couldn't find right now.
Re: RT64: N64 graphics renderer in emulators and native ports
#8> Uses ubershaders to guarantee no stutters due to pipeline compilation. I may sound way out of the loop here, but... How come this was never a problem for older dx9/dx11/GL games and emulators?
Re: RT64: N64 graphics renderer in emulators and native ports
#9[flagged]
Re: RT64: N64 graphics renderer in emulators and native ports
#10> Uses ubershaders to guarantee no stutters due to pipeline compilation. I may sound way out of the loop here, but... How come this was never a problem for older dx9/dx11/GL games and emulators?
Compilation stutters was perhaps less noticeable in the DX9/OpenGL 3 era because shaders were less capable, and games relied more on fixed functionality which was implemented directly in the driver. Nowadays, a lot of the legacy API surface is actually implemented by dynamically written and compiled shaders, so you can get shader compilation hitches even when you aren’t using shaders at all.
In the N64 era of consoles, games would write ISA (“microcode”) directly into the GPU’s shared memory, usually via a library. In Nintendo’s case, SGI provided two families of libraries called “Fast3D” and “Turbo3D”. You’d call functions to build a “display list”, which was just a buffer full of instructions that did the math you wanted the GPU to do.