New MacBook Pros are here! Get the lowest prices anywhere: Apple Price Guides updated Aug 27th (exclusive coupons)

Tuesday, December 16, 2008, 05:00 am PT (08:00 am ET)

OpenCL and OpenGL take on DirectX

The broad industry support Apple is building around OpenCL will help increase the critical mass behind OpenGL, the 2D and 3D graphics language Apple uses extensively in Mac OS X.

Since the mid 90s, Microsoft has worked to prevent the adoption of OpenGL as an interoperable industry standard in favor of its own proprietary DirectX portfolio of graphics software and gaming tools.

DirectX at Microsoft

Microsoft's DirectX strategy was originally intended to push DOS game developers to Windows; it has since served to tie PC gaming to Windows, as DirectX is only available on Windows. Successive versions of DirectX have also been used to push developers to the latest version of Windows; for example, the latest version 10 was intended to result in a crop of Vista-only games that would boost Vista sales. However, this did not work out as intended, as the slow uptake of Vista prevented any real market for DirectX 10 games from developing, leaving PC games to target Windows XP instead.

OpenGL and Apple

The basis for OpenGL originated at high end graphics workstation vendor SGI in the 80s and became an open standard during the early 90s; Microsoft released its competing Direct3D as part of Windows 95's DirectX tools. Despite a period of codevelopment between SGI and Microsoft under the name Fahrenheit in the late 90s, efforts to merge the two never successfully materialized. Instead, Microsoft's dominance over PC computing allowed it to develop its proprietary DirectX and push its adoption with GPU makers, leaving the open source community around OpenGL without the support it needed to keep up as a viable option.

OpenGL nearly faded into obscurity until Apple dropped its own QuickDraw 3D architecture and adopted OpenGL as the official 3D library for Mac OS X in the late 90s. The company's consumer platform helped create a wider audience for OpenGL applications. Interest in open source computing since then has also helped, as OpenGL is used by Linux and, more recently, by all of the major game consoles, including Sony's PSP and PS3 and Nintendo's Wii.

The console exception is of course Microsoft's Xbox, which was named after the DirectX graphics libraries it was designed promote in an effort to stop a broad migration to OpenGL in gaming and a subsequent erosion of Microsoft's software monopoly.

OpenGL is now more competitive with DirectX than ever. Microsoft's stumble with Vista and its DirectX/Direct3D version 10 has also helped to stall its momentum in the market. Microsoft plans to add OpenCL-like support for GPGPU computing into DirectX 11 in Windows 7, but Apple's OpenCL, which is designed to work closely with OpenGL code, will arrive first and with broad industry support. Apple has also released OpenCL as a royalty-free, open standard anyone can implement on any platform.

The design similarities between OpenGL and OpenCL make it easy for developers to create code that, for example, calculates the data for a visualization in OpenCL and then uses the same objects to render graphics in OpenGL. Alternatively, graphics rendered in OpenGL can be processed and transformed using tasks built in OpenCL. The adoption and familiarity of each will support the other.

Support for open standards at GPU makers NVIDIA and AMD, as well as platform support from Apple, Sony, Nintendo, and for Linux and Windows appears ready to release direct graphics support and development from Microsoft's Windows-only grasp and give developers from any company the ability to contribute toward driving ahead the state of the art in graphics.