OpenGL 4.0 Announced; Offers DX11 Feature Parity
- Two new shader stages that enable the GPU to offload geometry tessellation from the CPU;
- Per-sample fragment shaders and programmable fragment shader input positions for increased rendering quality and anti-aliasing flexibility;
- Drawing of data generated by OpenGL, or external APIs such as OpenCL, without CPU intervention;
- Shader subroutines for significantly increased programming flexibility;
- Separation of texture state and texture data through the addition of a new object type called sampler objects;
- 64-bit double precision floating point shader operations and inputs/outputs for increased rendering accuracy and quality;
- Performance improvements, including instanced geometry shaders, instanced arrays, and a new timer query.
The other area where OpenGL is making strides is the mobile/handheld/smartphone market. These devices typically use OpenGL ES (Embedded Standard); the fact that there's no Mobile DirectX makes this a space where we could see a great deal of growth in the next few years. At present, the OpenGL ES standard is on version 2.0. This appears roughly analogous to DirectX 8—it's hard to tell precisely, but OGL ES 2.0 added support for programmable shaders (a DX8 function) while OGL ES 1.1 and DirectX 7 both relied on fixed-function shaders.
We contacted Microsoft to inquire about the possibility of any sort of Mobile DirectX but received no response. NVIDIA has pledged to support OpenGL 4.0 with Fermi; ATI has not yet commented on when we'll see a 4.0-compatible driver. It took AMD about six months to release an OGL 3.0 driver, but the company delivered its 3.1 and 3.2 drivers much more quickly. AMD has mentioned on several occasions that it would like to see more of its GPUs in professional workstations; better OpenGL performance and support is important if AMD is to crack NVIDIA's lock on that market.