Some shader announcements

The difference between those images is probably just a matter of the neighbor texel blending option. If you guys can find better values, feel free to submit PRs.

I’ve been working on porting crt-royale to slang, which has been tough, but in the process, I stole some of its passes and merged them with crt-lottes-multipass to make a fast shader with halation/glow and proper handling of interlaced content.

The default glow setting is probably stronger than many people would like but you can modify it via runtime parameter. It’s called crt-lottes-multipass-interlaced-glow.slangp (clever name, I know).

Hunterk, you’re my hero. :smiley:

When crt-royale is done, do you think it will be easy to get the Kurozumi settings on Vulkan, too ? It is my favorite shader and it’s what’s holding me from using Vulkan.

when/if I get it fully ported, kurozumi’s settings should “just work.” It’s a hard nut to crack, though. I’m currently just ignoring the geometry/curvature functions because they’re so complicated.

Well, personnally I don’t use the curvature. :slight_smile:

A proper glow effect was the one thing I felt Lottes was lacking.

Thanks, now I have a new favourite. :slight_smile:

Success! I got most of crt-royale ported and working in slang format, along with the kurozumi preset (located at slang-shaders/presets/crt-royale-kurozumi.slangp). It runs full speed 1080p on my Shield ATV, which was a big surprise to me. The only things missing are geometry/curvature and trying to open the parameters menu crashes my Shield (parameters work fine on the desktop GPU I did most of the work on). EDIT: hurrdurr, the crash is caused by having ‘threaded video’ enabled, which isn’t necessary with vulkan anyway; parameters work fine with threaded video OFF.

I can’t promise that it’s 100% perfect, but it looks quite close to me.

Nice work, a welcome surprise it works so well on Shield hardware.

I’m waiting on my usual stand bys, crt-easymode-halation and pixellate, to be finished/unbroken to play around with Vulkan more. Right now when I test it out I use normal easymode, which really pales in comparison to the halation version IMO. Hopefully those will be much easier to get going compared to the hell beast that is Royale :slight_smile:

Pixellate and easymode-halation are in now, so you should be all clear for vulkan :slight_smile:

Awesome, thanks a lot man!

I really like crt-lottes-trinitron though the paths needed tweaking… http://pastebin.com/wQ5vVek0

thanks, glad you like it! :slight_smile:

Yeah, I totally forgot to adjust the paths after making it in the crt directory and then moving it >.< Thanks for the heads-up.

I’m having some issues with the Vulkan shaders right now. They worked very well for me a while ago, but I’m getting errors on most of them (Pixellate a notable, and fortunate, exception). I have absolutely no idea what the error means, and updating my drivers and VulkanRT didn’t seem to help, so here’s the relevant log:

RetroArch [INFO] :: Found #pragma parameter NTSC CRT Gamma (NTSC_CRT_GAMMA) 2.500000 0.000000 10.000000 0.100000RetroArch [INFO] :: Found #pragma parameter NTSC Display Gamma (NTSC_DISPLAY_GAMMA) 2.100000 0.000000 10.000000 0.100000
RetroArch [INFO] :: [slang]: Compiling shader "C:\GameStuff\Emus\RetroArch\shaders\slang-shaders-master
tsc\shaders/ntsc-pass1-composite-3phase.slang".
RetroArch [INFO] :: [slang]: Using render target format R16G16B16A16_SFLOAT for pass output #0.
RetroArch [INFO] :: [slang]: Compiling shader "C:\GameStuff\Emus\RetroArch\shaders\slang-shaders-master
tsc\shaders/ntsc-pass2-3phase.slang".
RetroArch [INFO] :: [slang]: Using render target format R8G8B8A8_UNORM for pass output #1.
RetroArch [INFO] :: [slang]: Compiling shader "C:\GameStuff\Emus\RetroArch\shaders\slang-shaders-master
tsc\shaders/ntsc-gauss-pass.slang".
RetroArch [ERROR] :: Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
ERROR: 0p‹ò: 'push_constant' : only allowed when using GLSL for Vulkan 
ERROR: 1 compilation errors.  No code generated.




RetroArch [ERROR] :: 
RetroArch [ERROR] :: Failed to compile vertex shader stage.
RetroArch [ERROR] :: Failed to compile shader: "C:\GameStuff\Emus\RetroArch\shaders\slang-shaders-master
tsc\shaders/ntsc-gauss-pass.slang".
RetroArch [ERROR] :: [Vulkan]: Failed to create preset: "C:\GameStuff\Emus\RetroArch\shaders\slang-shaders-master
tsc
tsc-256px-gauss-scanline.slangp".
RetroArch [ERROR] :: [Vulkan]: Failed to create filter chain: "C:\GameStuff\Emus\RetroArch\shaders\slang-shaders-master
tsc
tsc-256px-gauss-scanline.slangp". Falling back to stock.

It seems it might be a similar bug to what happens with certain Cg shaders on AMD cards…but those shaders usually worked on GLSL (if they weren’t broken entirely, that is) and I used this and other shaders on Vulkan before that are now producing errors. Any idea what might be going on? ‘Version 450’ means nothing to me as an end user, and the instances I found on Google weren’t terribly helpful from a non-dev perspective. (It isn’t unique to RA, though; RPCS3 bug reports show a similar problem.)

The ‘version 450’ thing is normal but the bit about ‘push_constant : only allowed when using GLSL for Vulkan’ is not. Do you know whether it started after a RetroArch update or a driver update?

It’s an easy enough thing to correct, if it comes down to it. The push_constant stuff is just a performance optimization, which it would suck to lose but whatever.

…false alarm. For some reason I downloaded the Stable build instead of the Daily. Don’t know how I screwed that up, but I tried in the latest daily and it works fine now. It seems like there’s still a couple of bugs, but nothing major; I’ll report once I’ve experimented a bit if I have anything more useful to say.

Sorry for the false bug report, and thank you for your continued work on porting shaders to Vulkan! Do you know when we’ll get the ability to update slang-format shaders within RA?

whew! I’m glad it wasn’t a bigger issue :smiley:

No, but I’ll try to speed that along. They’ve been stable for awhile now.

Nice work with the ds-hybrid-view.cg that’s a great one. :slight_smile:

But it cuts the top of the lower screen if you switch to it with the “screen toggle” option. Probably because I’m on a 1080p screen and yours is 1200.

I wonder if that would be possible to make a left part (big size single screen) that would be an integer ratio of the current resolution (with a parameter in shader menu x1 x2 x3…) and that would apply another shader on that picture. The smaller 2 screens on the right would be left out of that other shader and just x1 or scaled down in a clean way.

Glad you like it! I decided to make it after seeing the hybrid mode that was just added to the Desmume core options, since it uses NN scaling and is super-pixellated. Radius asked if it was possible to do the same layout but with better interpolation using a shader, so I decided to take a stab at it :slight_smile:

I made it on 1080p but I didn’t test it extensively, so I may just need to change the vertical modifier a bit to avoid cutting off. Can you get me a screenshot of how much it’s losing?

The problem I ran into with combining it with other shaders is that it totally breaks if you apply a first-pass shader at >2x scale and I’m not sure why. The handheld/ds-hybrid-sabr.cgp preset is pretty much the best-looking one I could find, unfortunately.

Yes I noticed that and I tried to throw random numbers in the cg code to display 3x but got nowhere.

Mario kart: Top Screen / Bottom screen

There’s this thin line on bottom with the “Top Screen” displayed too.

It’s good to use with the old Desmume core with older DSP. I always come back to it; the sound has an issue for sure in the current version.

The current version can run at 3x native resolution with 4 CPU ON though which is nice.

Oof, that’s a lot cut off! I’ll see what I can do about it!