Quick way to test upscale algorithms and libretro shaders

I’m developing a tool which uses well know pixel art upscaling algorithms that are usually found on console emulators.

Video demonstration: https://youtu.be/JD_YYiU6cj4

Initially the objective is to compare the results and possibly create new filters. It already open and exports png, jpg and animated gifs.

I recently added a OpenGL frontend to be able to use the libretro shaders. It still need to handle the glslp files (libretro presets), but glsl files already works.

The project is on GitHub.

Binaries for Windows (v0.1.1): Download

It can be compiled on Linux and Mac as well.

Super-cool! Thanks for sharing this :smiley:

Nice work! I know this may be too early, but are you planning support for the new (currently working in RetroArch but not finalized) .slang shader format for Vulkan?

I didn’t know that exist. Maybe when everything is stable enough I can try to add this feature. It would be a good way to start learning Vulkan.

I think the Vulkan shaders will convert down to working GLSL (possibly better than the spaghetti code that cgc gives us) using the vulkan reflect API.

Also, a manual refresh button and an “automatically refresh” checkbox with a configurable interval in seconds might be useful for shader development. I know shadertoy.com already allows you to edit shaders in realtime like that, but your tool has the whole custom animated gif thing that brings the awesomeness to a new level!

Sorry, but I didn’t get the purpose of the “automatically refresh” checkbox. Do you mean refresh shaders if the file is edited outside? You can change shaders by double clicking the glsl file on the file treeview. I am about to add a spin box to control the interval time between sprites. Right now is fixed 100ms. I also want to add a “shader editor”, although you can modify in any other editor and reload it on the program.

If you have already tested, fell free to add issues on github!

Yeah, the autorefresh would be so as soon as you save a shader you’re working on, you would see the result. It’s a nice feature if you’re planning to make your program into a shader IDE. Otherwise, double-clicking the name to re-load it works, too :slight_smile:

Yes, exactly what hunterk said. :slight_smile:

Finally returned to work and added the auto refresh feature and control over animated gif delay time between frames. Now you can edit shader in any editor and see the results in realtime.

These features are not on a available release yet, just in the code, but I thought that would be nice to let you know.