I'm developing a cross-platform game, for iOS, Windows, and OS X. Right now I'm at the point where I'm writing all my shaders for my graphics. So here's the question:
If I have working GL ES 2.0 shaders (#version 100
) for the mobile version of the game (which I developed fist), should I rewrite them in a more modern version of desktop GLSL (like #version 330
or something) for the desktop port of the game, or should I just use those shaders as-is? I tested the ES 2.0 shaders in a desktop environment in a test application, and they seem to work perfectly.
So do I (generally speaking) benefit from rewriting the shaders in a more modern GLSL version? I'm not talking about optimizing the shader code itself for mobile/desktop, that's fairly obvious, I will do that of course. I'm talking about using different GLSL language versions on different platforms. Is there any performance difference, compatibility issue, or anything of that sort, that's a good enough reason for porting the ES 2.0 shaders to a more modern version on desktop?
Since we're talking about fairly simple shaders for a 2D game, I won't really benefit from the extra functionality and better API of more modern desktop GLSL versions. #version 100
has enough to get the job done, it works fine for me. So the more modern functionality, I can do without. Other than that, is there any reason not to use #version 100
on desktop?