xSaL - fixes, new shader and presets

Hello!

I continued my work on the fast 2xSaL shader (should run full speed on any HW that supports shaders) and produced a level 2 version of it. It’s somewhat slower but looks much better. The major advantage it has is the simple logic behind it which doesn’t care about color equalities, only differences, so it operates with no problems in rich color environments. It lacks any extra fancier making code code because it’s rather focused on speed and efficiency. I guess folks with modest HW might find it interesting and give it a try.

I also fixed the AMD/Ati line bug in 2xSaL original shader which was a bit annoying.

I added some presets also, like 4x versions and versions with crt dotmasks.

Greetings, guest.r

Oh wow, those are lovely and incredibly fast! They’re probably the highest ratio of quality to performance of anything I’ve seen :open_mouth:

I added them to the common-shaders repo, so they should be available via the online updater very soon.

Thanks for taking good care of the shaders. :slight_smile: I might spend the rest of the year to find an improvement, i even found a silly workaround for even nicer smoothing but it’s too stupid (…clumsiness :P). The problems are if you fix level 2 within a working sample then you break level 1 or if you fix both of them then isolated pixels are eaten away and similar. The shader can get better though, they always do. :slight_smile:

I have some bad and some good news regarding my xSaL level 2 research. Previous posted versions include some artifacts which i tried to clear. The bad is i can’t make the shader operate at 2x scale because it’s IQ is set at 4x (tried really hard to make it cooperate, but it wouldn’t). So i had no choice but to make the first pass scale to 4x. The good is the quality increased significantly and they are still pretty fast (for a 4x scaler). I had to rewrite the whole xsal repo, so it shouldn’t be updated but completely replaced (pretty please). I guess that’s it because level3 is a b*tch. :slight_smile:

Nice time everyone,

guest.r

Ha, no problem! Those 4x versions look great.

Can someone post screenshots? :slight_smile: Would like to see the results.

I tried my new SaL shader in a different role, this time as an sprite enhancer. It’s look-ups are a bit extended so it’s easier to do horizontal and vertical blur/interpolation while preserving diagonals clear. This feature made me possible to do some cosmetics on Hyllian’s well developed xBR Level3 shader. So i added some presets which have some SaL/SaI features. :slight_smile: like the mentioned line blur which i like. Please make some nice screenshots if you like them. (here is one, and another one). There were also some bugs in my crt presets, they are fixed now.

Ooh, nice, that xBR combination looks really good. It’s not quite full speed on my old HD3000, but it’s close.

r5 has been porting these to the slang shader format, so they’re available with the Vulkan backend, as well.

@papermanzero Here’s one of the 4xsal-level2 preset: and here’s one of the 4xsal-level:

You have a point here. :slight_smile: My eagle eye made a tough decision, but i can post the fast version, they should go fullspeed / speed can be adjusted by output resolution also. Big thanks for porting the shaders to slang also. My card is not supported, but i’m motivated to upgrade by RA big time.

Oh wow. Great work @guest.r The shader is awesome. :slight_smile:

I won’t open a new thread on this, since it’s related code-wise. :wink:

I managed to improve the aa-shader-4.o-level2 preset, it does a better job now and is quite fast for non-upscaling resolutions. For downscaled 4k internal resolution the first iteration might do a better job.

For 2D please use the 4xSaL shader.

The GLSL preset code:

shaders = 3

shader0 = shaders/aa-shader-4.0-level2/aa-shader-4.0-level2-pass1.glsl
filter_linear0 = true
scale_type0 = source
scale0 = 1.0

shader1 = shaders/aa-shader-4.0-level2/aa-shader-4.0-level2-pass2.glsl
filter_linear1 = true
scale_type1 = source
scale1 = 1.0

shader2 = ../stock.glsl
filter_linear2 = true
scale_type2 = viewport
scale2 = 1.0

parameters = "AAOFFSET;AAOFFSET2"

AAOFFSET = 0.5
AAOFFSET2 = 0.25

Edit: the adaptive sharpen seems to cause a massive slowdown with glsl. Better this way then.

2 Likes