Nutty, what version of OpenGL added PS/VS shaders? Which one added the fragment branching, or is that NVidia specific?
I can coorelate feature addtions if I know what revisions of OpenGL added things, as opposed to DX. Currently, my understanding is that ATI/NVidia are at version 1.5 or so of the ARB? Is that a fair assumption?
Well NV introduced vertex shaders along time ago. About Detonator 7 they were available as emulation in the drivers. This was months before the GF3 emerged with them in hardware. This was NV_VertexProgram, which was the equivelent of DX8 Vertex Shaders, however DX8 wasn't out at this point.
DX8 class pixels shaders arrived with the GF3, in the form of NV_TextureShader, and NV_RegisterCombiners. Technically they could achieve more than DX8 pixel shaders, but were a bugger to code for.
Current drivers support opengl 1.4. Currently the ARB standards, ARB_VertexProgram (which come to think of it, is more akin to DX8 class Vertex Shaders) and ARB_FragmentProgam (DX9 class pixel shader) are only ARB extensions. They should be in the core of 1.5 though.
NV_VertexProgram2, is the GF-FX Vertex Shader, which has dynamic branching. NV_FragmentProgram is basically PS2.0, but slightly better. It has conditional statements, (not true branching) and much higher instruction counts.
Now, if we're talking about pure ARB only stuff. we currently have
ARB_VertexProgram = DX8+ Vertex shader
ARB_FragmentProgram = DX9 Pixel Shader.
Now, the new GLSlang language, introduces two new versions called
ARB_VertexShader, and ARB_FragmentShader. These are the two vertex and fragment shader implementations for the upcoming GLSlang high level shading language compiler.
I haven't looked at them much, but they're probably similar to DX9 equivelents. Perhaps with a few extra features, I dont know.
Anyone know if a new Vertex Shader was introduced in dx9, and what features it has over dx8 vertex shaders?