Shader Model and GLSL versions
When reading articles about graphics programming you come alone the term ‘Shader Model’ and version numbers for GLSL, OpenGL and Direct3D (depending on the API used in the article). While the described algorithms (nearly always) can be implemented in the ‘other’ API as well the different versioning schemes can be confusing – what OpenGL version and GLSL version do I need to implement this ‘Shader Model 4.0’ technique?
Note that you can’t always find an exact match for each version in the other API so take this chart with a grain of salt, its intension is to give you a rough overview of which API versions have a similar enough feature set to implement similar algorithms.
OpenGL | GLSL | Direct3D | Shader Model |
---|---|---|---|
2.1 | 120 | 9.0 | 2.0 |
3.3 | 330 | 10.0 | 4.0 |
4.2 | 420 | 11.0 | 5.0 |
The Shaders itself are also called differently (but serve the same purpose):
OpenGL | Direct3D |
---|---|
Vertex Shader | Vertex Shader |
Tessellation Control Shader | Hull Shader |
Tessellation Evaluation Shader | Domain Shader |
Geometry Shader | Geometry Shader |
Fragment Shader | Pixel Shader |
Compute Shader | Compute Shader |
Here’s a complete list of GLSL versions and the corresponding OpenGL versions (thank god the ARB changed the versioning scheme with OpenGL 3.3!):
OpenGL | #version | latest spec version number | Note |
---|---|---|---|
2.0 | 1.10.59 | ||
2.1 | 120 | 1.20.8 | |
3.0 | 130 | 1.30.10 | |
3.1 | 140 | 1.40.08 | |
3.2 | 150 | 1.50.11 | added Geometry Shaders |
3.3 | 330 | 3.30.6 | |
4.0 | 400 | 4.00.9 | added both Tessellation Shaders |
4.1 | 410 | 4.10.6 | |
4.2 | 420 | 4.20.11 | |
4.3 | 430 | 4.30.6 | added Compute Shaders |
Shaders in OpenGL were available even earlier thru extensions, early extensions were defined for OpenGL 1.3.
Also a more complete overview for Direct3D:
Direct3D | Shader Model | Note |
---|---|---|
8.0 | 1.0 – 1.3 | |
8.1 | 1.4 (PS) / 1.1 (VS) | |
9.0 | 2.0 | |
9.0c | 3.0 | |
10.0 | 4.0 | added Geometry Shaders |
10.1 | 4.1 | |
11.0 | 5.0 | added Domain & Hull Shaders |
Update 8/6/12: added OpenGL 4.3
GPU Rasterizer Pattern OpenGL ES 3.0