Recommend shaders for the Lakka documentation

I would like to add a few suggestions for new users to help them get started with shaders. As you can see right now in the docs there is not much guidance on the topic: http://www.lakka.tv/doc/Shaders/

[B]What hardware do you use, and what shader do you recommend for it?

What shaders do you think would be good for new users to try out?[/B]

I don’t know if Lakka includes Cg support for x86/64, but if so, those shaders are currently preferred over the GLSL shaders. There’s no Cg for ARM, though, so any ARM-based devices need to use the GLSL versions.

Mobile GPUs can’t run a lot of the fancier shaders but crt-easymode is relatively lightweight and may work alright on more powerful devices. On Raspberry Pi variants, check out crt-pi, which was written specifically to run full speed on them.

For smoothing shaders, xBR generally looks better and is preferred on x86/64, but again, mobile GPUs can’t often handle it. For those, hqx (e.g., hq2x) are lighter. I don’t know if they’re light enough for RPi, though.

For people who like super-sharp pixels, retro/sharp-bilinear should be fast enough for pretty much anything and will prevent misshapen pixels caused by non-integer nearest-neighbor scaling. The aann and pixellate shaders have similar effects but are slower and may be too slow for mobile GPUs.

Hi, I’m running Lakka on a good old Raspberry Pi 1 and I’m happy to say that it’s powerful enough to run most Genesis, NES and PC Engine games in fullspeed (in 480p and “moderate” overclocking via config.txt).

I can even enable some shaders, like crt-caligari or crt-pi, keeping smooth 60fps (yeah!) but with a problem: in 480p I get “wrong” scanlines, “spread” non correctly on screen.

There is a way to fix one of these light shaders for 480p resolution? It would enhance the rPi 1 experience a lot!

Thank you

@scandy To get nice, even scanlines, you need to enable “integer scaling” in settings > video. This will leave black borders on the top and bottom of the image but it will look better. If you still have issues with integer scaling, it is a result of your display’s internal scaling as it brings it from 480p to the full resolution.

[QUOTE=hunterk;42700]@scandy To get nice, even scanlines, you need to enable “integer scaling” in settings > video. This will leave black borders on the top and bottom of the image but it will look better. If you still have issues with integer scaling, it is a result of your display’s internal scaling as it brings it from 480p to the full resolution.[/QUOTE]

Thank you for your answer. I enabled integer scaling and via config.txt the output is 480p (so it is recognized also by my LG TV). I can’t see black borders but scanlines are always odd (crt-caligari). What I’m doing wrong?

Thank you for your support.

That’s your TV/monitor’s fault, then. Instead of setting RetroArch to 480p, try setting it to 1080p or whatever your display’s native resolution is. That will keep it from doing any additional scaling.

Unfortunately on rPi 1 if I set a 1080p resolution performance are really poor. On 480p are perfect. Strange that it’s a TV fault, resolution and refresh are correctly recognized and I don’t see any other scaling artifact.

[QUOTE=scandy;42686]Hi, I’m running Lakka on a good old Raspberry Pi 1 and I’m happy to say that it’s powerful enough to run most Genesis, NES and PC Engine games in fullspeed (in 480p and “moderate” overclocking via config.txt). [/QUOTE] crt-pi needs overclocking set to “Turbo” on Pi1s and Pi Zeros (and “Pi2” on Pi2s).

Hi, On my Raspberry Pi 2 and 3, many shaders bundled with Lakka don’t work at all (not just slow, but no effect or black screen). Is there a list somewhere of all the Raspberry Pi supported shaders ? And if some shaders don’t work at all on the Pi, why bundle them with the RPi’s Lakka distribution in the first place ?

I don’t know how to code in GLSL but is it technically possible to make some of the incompatible shaders work on the Pi ? I really like the awesome Handheld console border shaders for example. How can i know what part of the shader makes it fail on the Pi ? If it is not too much to learn i would be interested in making a Pi version of these shaders.

Mobile GPUs are a mess. What works on one is broken on another, frequently in a way that doesn’t provide any information (i.e., black screen, no failure to compile and no crash).

I understand that, but something should be possible with the Pi in most cases, right ? I’m not an OpenGL or GLSL developer but i know other languages so i would like to give it a try. The thing is, i don’t know how to start. Since most shaders are really short programs, just hacking in it and see the result would help me understand what i’m doing. Is there a way to do that on the Pi (just have a static input image and apply almost live coded shaders to it) ? The code on https://github.com/hizzlekizzle/glsl-shaders/tree/master/handheld/console-border/shader-files is an automatic conversion so i assume it is be possible to improve it.