There we go, actually found the issue.
Add a define back so we work without GLEW 1.6, Also I missed a line when I was fixing binding sampler locations last night when I was tired.
Move the GLSL extension checks over here so it is nicer.
Go back to using glGetString with GL_EXTENSIONS because glew 1.7 is required to check for newer 4.2 extensions that way.
Implement Program shaders cache. Seems to reduce a small amount of stuttering when F-Zero starts. Did it because I can :|
Give OSX users more of a chance of supporting Single pass DSB in the future.
Missed a if, don't want people crashing now do we?
If CG isn't available, still compile and fallback on GLSL
If user doesn't compile with glew 1.6, cut out program binaries so everything still compiles.
Write all shaders to disk on emulator stop instead of constantly. Also change pair from u64 to u32.
Only use explicit attribute locations  when we are supporting GLSL > 1.2 since we need in/out instead of attribute variable types. This was brought to my attention from MESA. MESA supports GL_ARB_explicit_attrib_location, but yets to support GLSL 1.3, so basically useless extension to MESA right now?
Add in the Windows fix.
Missed a line here
default to GLSL instead of Cg
fix formatting uglies introduced in glsl-master branch
Checking GLEW_VERSION_4_0 is superfluous since we check GL_ARB_get_program_binary, and it's a runtime variable anyways.
refactor ProgramShaderCache::PCacheEntry
Remove some warnings in ProgramShadercache, Was using wrong variable for checking dual source blending.
Woops, better not forget the ing
oops, forgot to make sure the gl program is actually free'd.