OpenGL

ARB Meeting Notes

December 9-10, 2003

Hosted by Sun in Menlo Park, CA

Meeting notes taken by Jon Leech, SGI

Attendees

Alain Bouchard (telecon) Matrox abouchar 'at' matrox.com
Andrew Wiltzius (telecon) HP andrew.wiltzius 'at' hp.com
Axel Mamode ATI axel.mamode 'at' ati.com
Barthold Lichtenbelt (telecon) 3Dlabs barthold 'at' 3dlabs.com
Bill Armstrong E&S armstron 'at' es.com
Bill Licea-Kane (telecon) ATI bill 'at' ati.com
Bob Carwell (telecon) IBM bcarwell 'at' us.ibm.com
Chris Brady alt.software cbrady@altsoftware.com
Dale Kirkland 3Dlabs dale.kirkland 'at' 3dlabs.com
Dave Zenz Dell dave_zenz 'at' dell.com
Doug Crisman (telecon) SGI crisman 'at' sgi.com
Helene Workman Apple plotka 'at' apple.com
Jack Middleton Sun jack.middleton 'at' sun.com
James McCarthy Imagination Tech. james.mccarthy@powervr.com
Jeff Weyman ATI jweyman 'at' ati.com
Jeremy Sandmel (telecon) ATI jsandmel 'at' ati.com
John Kessenich (telecon) 3Dlabs johnk 'at' 3dlabs.com
John Rosasco Apple johnk 'at' 3dlabs.com
John Stauffer Apple stauffer 'at' apple.com
Jon Leech SGI ljp 'at' sgi.com
Kent Lin Intel kent.lin 'at' intel.com
Marcia Courtemanche (telecon) IBM mcourtem 'at' us.ibm.com
Matt Russo (telecon) Matrox matt.russo 'at' matrox.com
Neil Trevett 3Dlabs neil.trevett 'at' 3dlabs.com
Nick Triantos NVIDIA nick 'at' nvidia.com
Pat Brown (telecon) NVIDIA pbrown 'at' nvidia.com
Paul Puey (telecon) NVIDIA paul 'at' nvidia.com
Ray Klassen (telecon) Intel raymond.b.klassen 'at' intel.com
Rob Mace ATI mace 'at' ati.com
Sandy Block (telecon) IBM msb 'at' us.ibm.com
Simon Green NVIDIA sgreen 'at' nvidia.com
Suzy Deffeyes (telecon) IBM suzyq 'at' us.ibm.com
Teri Morrison (telecon) 3Dlabs teri.morrison 'at' 3dlabs.com
Yanjun Zhang Sun yanjun.zhang 'at' sun.com

Disclaimer

People reading the OpenGL ARB minutes are cautioned that statements made by attendees do not represent official company positions unless explicitly identified as such.

Action Items / Conclusions from the Meeting

Summary of Discussion Topics

Tuesday, December 9

Superbuffers Review

Getting very close to the final version. Need clarifications and conversion to classic specification form. Rob has a spec based off the version 0.26 whitepaper but it needs updates. Expect to be able to hold a vote before, or by the March ARB meeting.

Reviewed changes from 0.26 discussed at the September meeting (see 0.29 document).

Reviewed examples (9.7, 9.8)

Q & A - John R. thinks number of entry points could be reduced by OO-encapsulation. Rob tried to follow existing GL practice. Primarily written as a white paper, rather than a classic extension spec, for development and discussion purposes,

Discussion of motivation - could expand the two paragraphs in section 1.3, which Rob wrote more than a year ago. General idea: moving from static to dynamic binding of resources, making them useful as both inputs and outputs to the GL state machine, and being able to bind them at many different points. This makes many new algorithms possible, so app writers can capture more of the power of modern GPUs. Demand is building quickly.

John R. suggests "views" may be a better way of thinking about "sub memories", and avoid conceptual collisions with SubImage calls. Rob will think about incorporating this change. Could incorporate additional views such as subimages; Rob thinks if we were to do this, we should add a new call to create a view, as contrasted to accessing a view of mipmaps or depth slices which were (at least conceptually) created at the same time as the base object.

NVIDIA issues with superbuffers:

Bylaws WG Updates

Timeline: need to get documents out of the WG in mid-January to allow for a vote at the March ARB meeting. Will have meetings to discuss transition plans.

Detailed review of the Membership Agreement, Bylaws, and Licensing documents with many small changes and additions proposed. Refer to Dave's WG notes for details.

Wednesday, December 10

Specification Edits/Changes

OpenGL 1.5 Spec Changes:

Reviewed a bunch of proposed changes for 1.5 spec. Most were non-controversial. Some need further wordsmithing. Some need more research. Will circulate proposed wording and new draft soon.

Shading Language Spec Changes:

Reviewed changes discussed in the arb-gl2 working group. Most were editorial and will be circulated to the mailing list. One functional change to be reviewed and email vote held.

Procedural update:

In the future, for editorial (non-substantive) changes to specs, we will simply put them out on the participants' mailing list and allow several weeks for feedback; failing pushback, they will be deemed adopted by consensus. For substantive changes recommended by the workgroup, the ARB should hold a formal vote.

ARB_fragment_program_shadow proposal

Bill and Pat reviewed a proposal to allows new shadow texture targets for ARB_fragment_program, and discussed different options for supporting it; they chose new targets over different instructions. This is a simple extension of low enough complexity not to demand its own working group.

New Working Groups

Marketing and Technical (infrastructure) Working Groups haven't got much traction in the way of volunteers since September, so we'll try to drive them from the top.

ARB_extensions_query proposal

Simple IsExtensionSupported query like the GLU 1.3 feature - except that GLU 1.3 isn't supported by the Microsoft GLU implementation. Possible augmentations: way to enumerate extension names + not adding future extension strings to the static string.

Since the main problem being addressed is old apps which don't allocate enough buffer space to copy the extensions string into, not adding them to the static string may be inevitable.

Problem: how do you know this extension is supported without querying the EXTENSIONS string? On Windows could assume non-NULL return from wglGetProcAddress would suffice.

To get developer feedback, we will come up with a poll or discussion topic for opengl.org by discussion on the mailing list.

OpenGL Next Release Plans

Should we stay on the June spec update cycle? Depends on what new functionality is available. Not much point, aside from marketing, in staying on a yearly release cycle if there isn't compelling functionality added.

Possible classes of things to add for the next version:

1) Promoting existing extensions to the core. Candidates:

2) Superbuffers. Doesn't exist as an ARB extension yet. Conceivable it could make it into the core but a March ARB extension makes that problematic for a June spec update.

3) High level shading language. Jon asked for current interest / support information from IHVs. NVIDIA knows of only one major ISV using it today, and they're in a fetal stage (not shipping). 3Dlabs has about half a dozen ISVs implementing or already running; not sure if any have released yet. Similar for ATI. Mostly functionality has been available in betas, but ATI/3Dlabs now have publically available drivers with support.

Straw poll of attendees for thoughts on promotion of shading language into the core. There was a roughly equal split between those supporting immediate inclusion in the next OpenGL release, and those wanting additional ISV feedback and deployment experience as ARB extensions before moving to this stage, with slightly more people advocating the latter position. Nick noted that better tools and interchange formats would be valuable, in addition to the base shading functionality.

Pat notes that promotion to the core gives us an opportunity for changes beyond minor spec updates. The arb-gl2 working group is still operating, but just dealing with clarifications and minor functionality changes at present - no major new topics on the table.

The marketing WG should engage on this decision ASAP.

VBOs and Multiple Contexts

Kent says they've implemented this and have issues about sharing of VBOs. Example: VBO bound to object 1 in context A and B, but not current in B. Now context A can delete the VBO successfully; what happens in B, where there's still a reference to the object ID?

Nick noted (as rephrased later by Matt Craighead in email) that the best behavior is for the ARRAY_BUFFER binding to contribute to the reference count. This isn't strictly necessary because this binding is never used directly, but it would be somewhat odd if ELEMENT_ARRAY_BUFFER did contribute to the reference count (it needs to) and ARRAY_BUFFER didn't. Rob noted that the bind call was poorly named.

Rob suggests clarifying this distinction in the spec. Nick will propose language changes for this and circulate to the participants' list.

Next Meeting Plans

Apple will host in Cupertino on March 2nd/3rd; Howard Miller is again the contact at Apple. Intel will probably host in Sacramento in June. Volunteers for September and December are needed.

Thanks to Sun for hosting this meeting!