Microsoft sets the standard for 3D graphics on the desktop/laptop. Once you set the standard (D3D10/11), copycats (OGL 3.X/4.X) will have to wait months, if not years, to catch up in terms of implementation quality.
And yet, that didn’t stop NVIDIA from shipping D3D-10-level extensions pretty much the day the GeForce 8000’s hit the market.
I was hoping for an announcement of an OpenGL ES 3.X spec at this year’s GDC, but doesn’t appear to be on anyone’s radar. Maybe we have to wait for Microsoft to bring such D3D10-features to the next version of Windows Phone before Khronos makes a move.
In the mobile space, there’s a general stagnation about hardware features. In desktops, performance generally pushed features; take the Radeon 9700. It sold well not because it ushered in the age of D3D9-class cards, but because it was so much faster than the competition at the time.
In the mobile space, power consumption rules all. Any new features you add take up die space and power, so unless new battery technology happens that suddenly gives you lots more power, you’re not going to see significant jumps in features happening that often. The mobile space favors slow evolution of hardware.
Combine this with the simple utility of extensions. The base ES 2.0 platform represents some core functionality, but most ES platforms also expose a number of extensions. This represents the ability to select features as needed, allowing your engine to be responsive to different featuresets on different hardware.
All an ES 3.0 would do is specify a new base featureset. Desktop OpenGL can get away with that because Microsoft is out there defining specific levels of hardware. But in the mobile space, you have PowerVR and… well, that’s it. NVIDIA’s trying to get involved with Tegra, but they’re still basically following PowerVR’s featureset.
Or, to put it another way, there’s really no need for ES 3.0. The most it might do is standardize existing practice (promoting to core a commonly used set of extensions, like FBO). This would have little effect on users.