Siggraph 2011 BOF Presentations

The slides for the OpenGL portion of the BOF are up.

The main information not mentioned in the spec release has to do with the ecosystem. Apparently, they’re expecting the conformance test to hit its first version in November, which should include 3.3 and “selected later feature coverage”. I don’t know why they didn’t just tell us what they were planning to cover.

They are apparently planning to have less “undefined” and “implementation-specific” stuff in future specifications. They apparently are focusing on improved error detection (yay!), but they specifically state that they’re avoiding things that will impact performance.

Oddly, mentioned here is a quick blurb about GL ES converging with desktop GL. Well, that could mean that ES 3.0 does texture uploading correctly. But it could also mean that later GL versions does texture uploading incorrectly (ie: like ES 2.0). Though to be fair, since ARB_texture_storage is an ES extension too (or has ES language in it), the latter seems unlikely.

For those who don’t much care for the arrangement of information in the spec, it’s apparently getting ransacked. This won’t change actual functionality, but it will improve the layout. Since the current one is based on fixed-function, which means that information on core GL tends to be rather scattered around.

I’m somewhat ambivalent about the last change. It’s certainly true that the current GL spec is poorly structured from both an implementation point of view (errors for glDraw* calls are not in the place where glDraw* are defined) and a reader point of view. But I’m concerned about several things.

First are extensions. These are defined as modifications of the spec. It was usually pretty easy to track down where something that an older extension specification modified. It referred to sections by number and title; even if the section number changed in later specs, you could still generally find it by number. Now, to be fair, extensions are typically written against a specific OpenGL version. But it is going to be more difficult to track down what the extensions are talking about.

This matters even more for OpenGL 3.3 being extended by a hypothetical future core extensions. They will likely be referring to OpenGL versions that have a completely different structure from 3.3. They won’t mesh very well. But that’s mostly theoretical. However much they don’t mesh, it’s fairly obvious how it works, and that’s what is important.

The other concern is compatibility. The spec rewrite is going to be based on shader-based stuff. So where does that leave the compatibility spec? Are they going to rewrite that too? Is it going to be a separate spec, where they keep both of them up-to-date? Or are they planning on dumping it (sadly unlikely)?