Shader compatibility concern


I’d like to write a program that uses shaders (mostly for full screen effects like desaturation, cctv simulation, etc). I have quite a wide range of platforms I’d like to support. I’d obviously like to use GLSL but some of the platforms don’t support it (Linux with slightly older Intel GMA hardware, FreeBSD with open Radeon drivers, amongst others). I could use nvidia’s Cg toolkit but frankly the license looks terrifying and it doesn’t support all of the platforms I’m targeting anyway.

What are my options here? Do I really have to forget high level and use GL_ARB_fragment_program?

Well, nobody said that backwards compatibility would be easy. The more platforms you want to support, the more effort it will take to support them.

I never claimed it’d be easy. I just wanted to know if I was right about what it’d take to do it.

It looks as if I have to target pixel shader 2.0 (lowest common denominator, as far as I can tell).