One of the reasons I was ok with what GL3 eventually became was that OpenGL did not need the distraction of a major refactoring of the existing graphics abstraction on the cusp of that abstraction becoming obsolete.
I’ll go out on a limb and say that we’re well past the point of diminishing returns trying to make the existing OpenGL hardware abstraction support first class tessellation, order-independent transparency, global illumination, micropolygon rendering, virtualized texture. Even adding seemingly simple things like texture arrays and geometry shaders takes years.
CUDA, OpenCL, and DirectX Compute all illustrate that the GPU is really coming into its own as a general purpose computing device. What’s being mostly ignored is that graphics should be the killer app for the compute mode of these devices.
CUDA and OpenCL essentially ignore graphics, OpenGL ignores compute, and DirectX Compute tries to bury a “general purpose” mode into the existing graphics abstraction. None of these seem to be a good fit for taking graphics forward in new and interesting ways on modern GPUs.
The only effort right now that may be sniffing in the right direction is the Larrabee Native Interface, by changing the focus to a general compute device that can function efficiently as a GPU. But obviously this interface will not be an open standard, making it a non-starter for most developers.
I propose that the most forward-looking and interesting direction for OpenGL Next is to define its function and implementation fully in terms of OpenCL.
Said another way, if OpenGL Next cannot be efficiently implemented atop OpenCL, then I think Khronos will have missed a golden opportunity to set the right direction for open, portable graphics in the age of the GPGPU.