OpenGL 2.0 - Out To Save Programmable Graphics

Several Additional Functions And Capabilities Are Being Added, Such As

  • FlushStream. The current specification allows too much freedom in keeping data buffered. Flush is over-used, and is pushing drivers to optimize it. A real flush is needed when an application is done issuing rendering commands. Buffered rendering should start in parallel with application doing something else, and before waiting on GLsync, need to ensure buffered commands will be processed. FlushStream solves these problems.
  • Asynchronous Data Binding. This will provide functions return before data is copied, and allow for host parallelism during data binding. A thread can do something else while OpenGL gets data. This will prevent memory from being modified until OpenGL access completes, but it requires notification of when it is safe to modify memory.
  • Background Stream. The existing asynchronous data binding still prevents parallel rendering. By providing a background stream, a separate stream can issue asynchronous bound commands into lower priority than normal rendering. This provides the ability to issue OpenGL commands into foreground stream, the normal command stream within a context today. Foreground stream is higher priority, and takes precedence over background stream.
  • Vertical Blank Notification. Seemingly an obvious thing to have, vertical blank notification allows OpenGL to synchronize code with video output.

Right when it seemed darkest, the graphics community has proven themselves to be more committed to the cause of graphics than they are to the cause of their own platforms and products. Even Microsoft is showing an interest in extending the usefulness of OpenGL, and even more heartening is the willingness of major hardware vendors to play along by opening up the IP where it had earlier showed an inclination to put the clamp down. And both ATI and Nvidia have committed to making their technologies work together.

One of the key points stressed by the ARB is that the "open" needs to go back into OpenGL. The group has pledged that all ideas submitted for OpenGL, if adopted, are then open for use and not licensable as IP. Sure, there are two edges to this sword, but so far what we're seeing is a recognition by the ARB that graphics, good-wonderful-shimmering-FX-laden-graphics, is pretty much the whole point, and a commitment to that is a commitment to success in graphics.