OpenGL

ARB Meeting Notes

March 11-12, 2003

Hosted by SGI in Mt. View, CA

Meeting notes taken by Jon Leech, SGI

Attendees

Alain Bouchard (telecon) Matrox abouchar 'at' matrox.com
Allen Akin (Self) akin 'at' pobox.com
Avinash Seetharamaiah (telecon) Intel avinash.seetharamaiah 'at' intel.com
Barthold Lichtenbelt 3Dlabs barthold 'at' 3dlabs.com
Bill Armstrong E&S armstron 'at' es.com
Bill Licea-Kane ATI bill 'at' ati.com
Bimal Poddar Intel bimal.poddar 'at' intel.com
Bob Beretta Apple beretta 'at' apple.com
Cass Everitt NVIDIA cass 'at' nvidia.com
Chris Brady alt.software cbrady 'at' altsoftware.com
Dale Kirkland 3Dlabs dale.kirkland 'at' 3dlabs.com
Dave Zenz Dell dave_zenz 'at' dell.com
Doug Crisman SGI crisman 'at' sgi.com
Evan Hart ATI ehart 'at' ati.com
Francois De Villiers 3Dlabs francois_devilliers 'at' creativelabs.com
Helene Workman Apple plotka 'at' apple.com
Herb Kuta (telecon) Quantum3D kuta 'at' quantum3d.com
Ian Romanick (telecon) IBM idr 'at' us.ibm.com
Jack Middleton Sun jack.middleton 'at' sun.com
James McCarthy Imagination Technology ???
Jeremy Sandmel ATI jsandmel 'at' ati.com
John Jarvis alt.software jj 'at' altsoftware.com
John Kessenich (telecon) 3Dlabs 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
Kurt Akeley NVIDIA kurt 'at' nvidia.com
Lee Gross (telecon) IBM leegross 'at' us.ibm.com
Marc Olano (telecon) UMBC olano 'at' umbc.edu
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 NVIDIA pbrown 'at' nvidia.com
Paul Carmichael NVIDIA pcarmichael '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
Scott Peterson (telecon) HP scott.k.peterson 'at' hp.com
Suzy Deffeyes IBM suzyq 'at' us.ibm.com
Teri Morrison HP terim 'at' fc.hp.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, March 11th

Next OpenGL Revision

Discussed timeline leading up to SIGGRAPH release. Bylaws WG will not complete in time to affect this, so we're looking at the same 30-day comment period after spec approval and prior to public release.

Ran down proposed list of extensions to make first cut at feature set:

Shading Language

HLSL spec was voted out of the working group last month and has been posted for public review. OpenGL extensions binding the HLSL to the API are still under development; major remaining issue is the choice of object model. The WG attempted to vote on this in December, but the new "Borda vote" scheme confused us and the results were unclear.

Bill skimmed over his GDC presentation to update non-WG participants on recent changes in the HLSL.

Still need to get license to use Perlin noise function description/code in the HLSL specification - Jon is pursuing this with his lawyers.

Held straw poll, then WG vote on the object model issue. Results of the vote were 5 for handles, 3 for old-style names, and 1 Don't Care. We'll proceed with current handle-based API.

Discussed extension proposals in the WG, concentrating on GL2_shader_objects. Concern about UseProgramObject requiring compilation work be done at that point, instead of at use (glBegin) time, and possibility of having to do unneeded work for e.g. hetereogeneous graphics heads where some heads will not be used by that shader. Concern about info logs being persistent per-object; Barthold will propose a per-context per-object-class alternative. We reconvened as the entire ARB at this point.

The HLSL WG has reported out the HLSL spec and would like it to be formally approved, even though the GL2 specs remain to be completed. Some objection to this staged approach since interactions between the extensions and the language might still emerge. Compromise straw poll held; HLSL spec signed-off on 12 Yes, 0 Abstain, 0 No. We'll move forward expecting minimal changes to the HLSL spec. Formal vote to be held after WG completes work on the extensions.

3Dlabs was asked to alter the "IP Status" comment on the GL2 extensions to account for their having submitted the original version of those specs under an explicit Contributor License.

Nick revisited half precision floating point and their strong desire to see it in the HLSL.

Wednesday, March 12th

Bylaws Working Group

No telecon tomorrow since people have been travelling. Will resume on Monday.

Helene reviewed recent progress on currently open issues list, followed by lengthy discussion of IP disclosure and licensing policies. Dave Zenz tracked comments.

Khronos "OpenGL ES" Update

Neil and David Blythe summarized progress on the embedded subset being developed within Khronos. OpenGL ES is nearly complete; final spec will be brought back to the ARB for signoff.

Super Buffers Working Group

Good progress is being made. Kurt proposed an alternative "image buffers" spec. Rob and Kurt have worked to converge and refine the proposed specifications. Added notion of a frame buffer object to which memories are attached. This methodology clarified distinctions between window-system owned and application-allocated (through the GL) buffers.

Some issues still need more input to be resolved; the next step will be defining and specifying micro-behaviors and writing a final spec.

Biggest remaining difference is in creating textures. Über buffers creates the texture memory object at one time, and has a sub-memory object interface to ask for e.g. specific mipmap levels or cubemap faces. While these sub-memories are buffers from most of the API's viewpoint, they are really just views into a single object.

In contrast, image buffers are fundamentally 1D, 2D, or 3D, and are aggregated together to form a mipmap pyramid, cubemap, etc. However, both APIs use aggregation to construct framebuffers.

Considerable discussion on this difference and its consequence. Much closer on other topics.

Next difference is 'bind' vs 'attach'. Mostly notational; straw poll showed strong preference for 'attach'.

Discussion on how to standardize this - can it be put in the next core release? Straw poll had all 12 responses in agreement: ARB extension first, promote to the core later. Additional comments: SGI thinks there's not enough time to get this finished and tested for a SIGGRAPH core release. Apple and Intel are both concerned about implementation difficulty. HP wants to address the buffer object problem. 3Dlabs thinks it's a bit premature.

Options for mapping: never, required, optional, required only for certain classes of objects. Discussion followed by straw poll: 6 responses (SGI, Apple, NVIDIA, Intel, Sun, HP) in favor of "never mappable". 2 (IBM, E&S) in favor of supporting mapping as an extension. 1 (alt.software) in favor of either never mappable, or only allowing some classes of objects to be mapped. 1 (ATI) in favor of only allowing some classes to be mapped, but they can live with never mappable.

Über buffers has content access APIs - MemImage, MemSubImage, etc. for writing into a buffer; GetMemImage for reading; MemCopy for copying. Mapping has the usual potential problems in multithreaded situations.

Straw poll: 7 (alt.software, ATI, E&S, HP, Intel, SGI, Sun) think they're useful. Additional "useful" comments: ATI could live without them. E&S and Sun are both concerned about implementation difficulty. SGI is concerned about data representation and transformation in the future, when these can be used as sources and sinks for HLSL programs using arbitrary structured data.

3 (Apple, IBM, NVIDIA) are not convinced they're useful. Apple is concerned about expressing/defining the structure of the underlying data as it's moved between memory objects. IBM wants to wait and add this in later if it turns out to be needed. NVIDIA wants to see if there's a simpler way to express this capability.

WGL_ARB_render_texture

Evan and Bimal discovered an ambiguity - bind semantics do not support an error indicating that binding to multiple texture objects is not allowed. But release semantics indicate that the buffer is released (e.g. all references are destroyed), rather than that it's detached from the bound texture object. They will propose the tiny spec change required on the participants' list.

Next Meeting

Following the meeting, Apple volunteered to host the June 10-11 ARB meeting in Cupertino; further details TBD.