NNEDI3 Slang Shaders


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.

Link to the shaders on github

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.


Oh wow, that’s awesome! Thanks for porting these!

I think we can just duplicate your repo into a new nnedi3 directory inside the main repo, license, readme and all. I’ll take care of it first thing in the morning.


Hello, ZironZ. Firstly, very good job with NNEDI3 and sorry to revive an old thread. I’m here just to tell that NNEDI3 was updated to v0.9.4.50.

Here: http://avisynth.nl/index.php/Nnedi3

Can you please port the update to your repo again so hunterk can incorporate it to the vulkan/slang shaders? Thank you!