(02-22-2016, 02:18 AM)Hyllian Wrote: I don't know about the inner workings of Dolphin/Ishiiruka, so take that with a grain of salt. What I'm saying is just based on the behavior of these shaders. They behave as if the input texture isn't native. It seems like Ishiiruka is prefiltering the input before passing to the shaders. It's that or we are getting some wrong param. Your lanczos port is correct, I compared with the version in GedoSato and Retroarch, the sources are the same. Why only Ishiiruka doesn't output correct filtering, then?
Look at these two screenshots I got using Ishiiruka. I configured it to native 1x internal res and checked the option 'Auto adjust Window size', so that it runs in a Window and its size will always adjust to the internal res (even if it changes in real time). It's using the shader nearest-neighbor.glsl.
I can get pixel-perfect output if I do 1x IR + Auto adjust Window Size + Aspect Ratio "Stretch to Window". No post-process shader applied.
New Super Mario Bros
SSBM
The key question is, is it possible to take the raw 640xWhatever frame and then resize it directly to 1920x1080 using a scaling algorithm like lanczos4?
I think we should make a new thread about image scaling, since input from other Dolphin devs would be great, and proper scalers in Master would be even better.
Edit: I just noticed that the DolphinFX shader has the exact same lanczos4 algorithm. The question is why isn't DolphinFX's lanczos4 all blurry?
Edit 2: Apparently defining PI as a global variable causes blurriness. Defining PI within the function prevents that. Is that a bug?
The fixed lanczos4 algorithm is great for upscaling, but it doesn't do anything when downsampling. This leads me to believe the algorithm isn't receiving the IR as input.