CG Shaders gone/not working on v1.9.1

Windows user here.

After updating from RA v1.9.0 to v1.9.1 my CG shaders don’t work anymore. I’m using the GL video driver, but it seems to force to GLSL:

[INFO] [GL]: Default shader backend found: glsl.
[INFO] [Shader driver]: Using GLSL shader backend.
[INFO] [GLSL]: Checking GLSL shader support ...
[WARN] [GL]: Stock GLSL shaders will be used.

I also noticed that the v1.9.1 (x64) package only comes with glsl shaders. Is there a reason for this? Have CG shaders been discontinued?

EDIT: I suppose this is the answer:

  • CG: Old, deprecated format. Might not be available if RetroArch is built without Cg runtime support.
  • GLSL: Shader format available to OpenGL. Wide range of platforms including phones and tablets.
  • Slang: New and recommended shader format, when available. Compatible with Vulkan, Direct3D 10/11/12, OpenGL Core, WiiU and Metal renderers.

source: https://www.retroarch.com/?page=shaders

Yes, that’s correct: The Nvidia Cg Toolkit package in MSYS2 (the toolchain we use to build RetroArch) is apparently broken (installation of it requires a dependency that it can’t fulfill), so we couldn’t include it. We’ve known this would eventually be a problem since Nvidia officially killed Cg years ago and it is not an open-source framework.

3 Likes

Are you’all looking for a workaround? Possibly going to contact someone at NVIDIA or send out an SOS to the community to see if anyone came come up with a solution?

Nvidia’s not going to do anything about it. We talked to them about it back when they first killed it.

There’s not really anything anyone else can do about it, other than try to get MSYS2 to fix their package.

1 Like

How’s that been going? Has anyone started down that route?

Not that I know of. I’m happy to see it gone, myself.

1 Like

I see. Well I’m just an end user here so I wouldn’t know how bad it is from a development perspective. I’m mostly familiar with CG’s use in shaders and from a final output perspective and my systems run fine and still look great using the *.cgp shaders that I setup many years ago. Guess I’ll have to look for some equivalent or better up to date shaders then. What’s a good modern replacement for “Death To Pixels.cgp”?

the problem with the analog shader pack is that it’s filled with dozens of redundant copies of the same shaders, maybe with nothing changed, maybe with 1 number changed somewhere, maybe with more substantial changes but they don’t make sense, and no comments about what’s changed or why.

So, even though I’ve ported all of the original shaders it uses (except I don’t think I ever ported the oldtv shader), I can’t just convert the presets to use the updated shaders because of all of the little (maybe) changes everywhere, with little way to tell which shaders are actually needed for any given effect.

1 Like

Hmmm…does this mean that if you attempted to convert 1 shader preset for e.g. Death To Pixels.cgp would that alone be extremely tedious or is it that trying to convert all of the original presets that the pack came with might be a daunting task? I’m asking this because I’m thinking that maybe only a few very good ones might be needed to satisfy many users who have opted to give it up due to it becoming incompatible.

Hmm, I didn’t have to tinker anything to get it working fine with MSYS2… simply installed one package and that was it.

1 Like

Interesting. Do you care to elaborate? Does that mean you can get *.cgp shaders to work properly in RetroArch v1.9.1+?

Not personally tried (I get along with slang), but I built a fresh version for a friend who does need them, and haven’t heard any complaints.

What package was this?

Pretty sure it was mingw-w64-x86_64-nvidia-cg-toolkit

And with a few cg dlls (cg.dll, cgD3D9.dll, cgGL.dll) in the running side =

1 Like

Wow! I’m sure there might be many others who were caught off guard with the sudden dropping of compatibility with CG Shaders between 1.9.0 and 1.9.1. For others like myself who might need more time to transition to the more modern formats or have been satisfied with the look, feel and performance of their setups using CG Shaders and probably older video API drivers can you perhaps share a link to this build and/or provide a guide to the steps of building so that we may also have access to this wonderful creation? Who knows, maybe CG can be reintegrated into the main build or perhaps this can be the start of a new fork?

Buildbot clearly does not have the package installed. That is all that is required for ./configure to detect it.

Sorry, I’m not posting exes, and the existing building instruction steps do apply.

Okay, thanks for confirming what’s possible though. At least now we know that it can be done and how. The details are available.

Hi, hunterk

With the Analog Shader Pack version 3 can you ignore the shaders_cg folder and convert everything else? There’s some really nice shaders like PVM/BVM and Arcade monitors/professional monitors etc. that I just can’t live without. I don’t wish to stick with an outdated version of RA but I will to use these shaders. I didn’t see these when I upgraded my RA last night.

What’s the process to convert them? Is it something I can do on my end? Is this process posted online anywhere and I’ll just take the time myself.

Thanks for any help.

If you like overlays with PVM & other monitors this might be of interest to you

4 Likes

I compiled the latest Retroarch Build 1.9.8 with CG_Shaders enabled. It can be done by anyone if you follow the steps in the Wiki, with one exception. You have to google different link to mingw-w64-i686-nvidia-cg-toolkit. It can be simple installed in “MSYS2 MSYS” with this command: pacman -S mingw-w64-i686-nvidia-cg-toolkit. Just copy my .exe file to RA folder and get 3 missing .dll files (cgGL.dll, cg.dll, cgD3D9.dll). Thank God i could get my Analog Shaders 3.0 back.

https://drive.google.com/file/d/13zmm0x_AKbQ5Y_MJihkd17dFdoSMdUix/view?usp=sharing

3 Likes