OpenGL 4.0 Announced; Offers DX11 Feature Parity

The Khronos Group that maintains the OpenGL API launched two new flavors of the specification at the Games Developer Conference (GDC) this week. OpenGL 4.0 is designed to update the API to DirectX 11-level functionality, while the 3.3 release is meant to allow previous generations of OGL hardware (presumably 3.x-compliant cards) to take advantage of OpenGL 4.0 functionality. Khronos lists the following features as new in version 4.0:

  • 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.
OpenGL isn't all that important to Windows-based PC gaming—the API defines its features relative to DirectX—but it remains the API of choice for professional rendering software, CAD/CAM drafting, and various other non-gaming programs. It's used by OS X, but not completely—the current version of Snow Leopard (10.6.2) only supports OpenGL 2.1, essentially putting it on equal footing with DirectX 9.0c. Comments from beta testers using OS X 10.6.3 indicate that Apple is moving towards supporting OpenGL 3.0 completely in either 10.6.3 or a future point release.

It makes really pretty pictures:  Render by OpenGL(That's the artist, not the API)

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.