NNEDI3 is a neural network based image doubler. I really like the way it makes 16-bit games look, so I decided to port it for use in Retroarch.
Some examples of NNEDI3 scaling to 4x using 32 neurons in RGB
NNEDI3 has 5 different quality settings (16, 32, 64, 128, and 256 neurons). Each increase in neurons doubles the amount of processing that needs to be done. There isn’t a massive difference between the quality settings, but 16 neurons should look the worst and 256 neurons should look the best.
Since NNEDI3 is rather slow, it can be useful to do a RGB to YUV conversion and scale the luma using NNEDI3 and the chroma using a different algorithm like Jinc. I’ve included a few examples of this in the github repo. You can also scale the chroma separately at a different number of neurons, but that requires modifying a few of the shaders to use different passes as their sources.
I’m not sure how this could be incorporated in the main shader repo. It is real tough to decide on default slangp files since people’s graphics cards vary so much. I doubt most integrated graphics cards will even be able to use NNEDI3 to scale to 4x.