OpenGL

ARB Meeting Notes

March 2-3, 2004

Hosted by Apple in Cupertino, CA

Meeting notes taken by Jon Leech, SGI

Attendees

Alain Bouchard (telecon) Matrox abouchar 'at' matrox.com
Andrew Wiltzius HP andrew.wiltzius 'at' hp.com
Barthold Lichtenbelt (telecon) 3Dlabs barthold 'at' 3dlabs.com
Ben Ashbaugh (telecon) Intel ben.ashbaugh 'at' intel.com
Bill Licea-Kane ATI bill 'at' ati.com
Bill Marshall Alt Software bmarshall 'at' altsoftware.com
Bob Carwell (telecon) IBM bcarwell 'at' us.ibm.com
Chris Brady Alt Software cbrady 'at' altsoftware.com
Chris Niederaner Apple ccn 'at' apple.com
Dale Kirkland (telecon) 3Dlabs dale.kirkland 'at' 3dlabs.com
Dave Zenz Dell dave_zenz 'at' dell.com
Eskil Steenberg (Self) eskil 'at' obsession.se
Francois de Villiers (telecon) 3Dlabs/Creative francois_devilliers 'at' creativelabs.com
Guofang Jiao XGI guofang_jiao 'at' xgitech.com
Helene Workman (telecon) Apple plotka 'at' apple.com
Ian Rominick (telecon) IBM idr 'at' us.ibm.com
Jack Middleton Sun jack.middleton 'at' sun.com
Jeff Weyman ATI jweyman 'at' ati.com
Jeremy Sandmel ATI jsandmel 'at' ati.com
John Kessenich (telecon) 3Dlabs johnk 'at' 3dlabs.com
John Rosasco Apple jdr 'at' apple.com
John Stauffer Apple stauffer 'at' apple.com
Jon Leech SGI ljp 'at' sgi.com
Kent Lin Intel kent.lin 'at' intel.com
Lingjun Chen XGI lingjun_chen 'at' xgitech.com
Marcia Coutemanche (telecon) IBM mcourtem 'at' us.ibm.com
Mark Galvan (telecon) Intel mark.galvan 'at' intel.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
Steven Zhu (telecon) Intel steven.j.zhu 'at' intel.com
Suzy Deffeyes IBM suzyq 'at' us.ibm.com
Teri Morrison 3Dlabs teri.morrison 'at' 3dlabs.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 2

Specification Edits/Changes

1.5 specification edits reviewed. Dale thinks the GetHistogram pixel processing language - which is a bit tricky - is finally correct. Still need to resolve secondary color alpha default value (done on the next day). Changes are adopted by unanimous consent.

Shading Language and related extension specification edits reviewed. There are some functional changes. The glslang array function parameters now have to be sized and can be overloaded on array size. Updated fragment shader spec with mostly trivial changes, but reserved some new sampler type enumerants in addition to int/float/matrix types. This is backwards compatible.

Versioning - original was 1.052. Changed to major.minor (100.054) so major matches the extension name string. Currently compiler provides a VERSION token matching the name string (100), but not capturing the minor version. We clearly need some way to query the minor version. Exposing many more ARB_shading_language_### name strings is probably wrong. Also need some way to indicate support of new sample type enums in the shader object extension.

NVIDIA wants to setup a shader language metafile working group; general agreement, and Bill is OK with this being separate from the arb-gl2 WG. We will setup a new mailing list and NVIDIA will identify a WG leader.

Marketing Working Group Review

First WG telecon held last week. Shawn wants to float a dues figure of $12K-$15K for each Promoter, under the new membership structure. This is aimed to be enough to provide seed money for a developer conference, hire a half-time ARB engineering resource, or other such tasks of large and useful scope. People should take this figure back and check inside your company. Some pushback from people who have been assuming the earlier $5K figure floated

Proposed shared documentation project - would begin with pointers to existing documentation on IHV developer websites, expand to new material. Another possible use of member dues.

Major topic: next OpenGL version - are we ready to promote the HLSL into the OpenGL core?

A couple of years ago, Bill would have been surprised if a CAD ISV was one of the first to support the shading language because of their conservative reputations. But today a CAD ISV (SolidWorks) is one of the first to ship support for the shading language. They are using the shading language for material shading libraries (cast iron, anodized aluminum, stamped steel, etc). Also, RenderMonkey (joint ATI/3Dlabs project) is about to be shipped with shading language support. DCC ISVs (anonymous for now) will also be shipping shading language support.

Dave Zenz informally polled about a dozen of their workstation ISVs. Very responsive to the shading language. Out of 6-7 responses, 5 were actively developing or had already released apps using the HLSL. Responses typically indicated strong interest. Asked about extension vs. core - 5 respondents had a preference for a core implementation, 4 had a very strong preference. Asked about quality of implementation - 3 liked it, rest were mostly lacking experience.

Nick has also generally found good, positive response from ISVs. Some minor issues that have been brought up, but can probably be added to future revisions of the language. Pretty wide variety - content creation, graphics authoring, CAD - with roughly the same sentiments.

Neil has had similar experiences with their ISVs, and very strongly supports putting the HLSL into the core.

Randi's "OpenGL Shading Language" book was published by Addison-Wesley last week - joins the stable as the "Orange Book".

Dave thinks the real push is from the workstation side, where they want stable drivers over the longterm, and don't want to jump versions until there's compelling reason to do so. Bill notes that game publishers would like to be able to say e.g. "OpenGL 2.0 required" on the box.

Eskil thinks game developers are not so concerned with the latest and greatest API version, given their 3-4 year development timescale, but they would be more confident planning to use "OpenGL 2.0" than a bunch of extensions.

Kent suggests bundling the HLSL with the FP buffer extensions. The extensions Dale is proposing are fairly far along, with the exception of the one handling enables, which has some yucky issues to resolve.

John R. thinks debugging needs to be addressed.

Straw poll shows everyone in favor of folding HLSL into the core! Continued discussion to identify other features.

OpenGL 2.0 Feature Selection

Each proposed feature was discussed followed by a straw poll of support. We have roughly 5 months to SIGGRAPH. Agreed plan of action is that the feature set can only get smaller from here on in. Features will be dropped if identified dependencies (spec changes, clarifications, etc.) are not done by March 31st. At that time we will hold formal votes on new ARB extensions, changes to existing extensions, and approval of the 2.0 feature set, then enter the spec editing and review cycle. Jon will break down the timeline in more detail soon.

Mark Kilgard wrote up a summary following the meeting, giving more detail on NVIDIA's preferences for non-programmable 2.0 features.

Bylaws Working Group Session

Reviewed a number of specific glossary and legal language issues and achieved a compromise on handling joint development agreements (existing agreements to be grandfathered).

In general, people are happy with the direction of the developing agreements, and we will probably be able to stay on Dave's timeline for completing the process. We need to be careful that the quiet period suggested around approving the new bylaws doesn't interfere with approval of OpenGL 2.0 by SIGGRAPH. Refer to Dave's WG notes for further details.

Wednesday, March 3

Review of OpenGL 2.0 Feature Set

Assuming the dependencies discussed on Tuesday are all satisfied, the OpenGL 2.0 feature set will include:

Superbuffers Working Group

John S. is concerned about complexity and extent of design change with superbuffers; thinks we can solve customer problems with a different approach. An area of particular concern is how OSes are interacting more directly with GPUs for UIs, raising resource allocation/control issues.

Lots of discussion about implementation strategies, programming model, marketing, etc. It doesn't appear feasible to wrap up the current superbuffers proposal, get the ARB to sign off on it, and promote it to the core in the SIGGRAPH 2004 timeframe, so we won't plan on that. Instead, the WG will continue evolving its proposals and getting ISV feedback, allowing a chance for fully thought out alternate proposals to be brought forward. However this sorts out, the functionality could likely be at the heart of "OpenGL 3.0", as it represents another large advance and usage model change beyond the HLSL.

To reduce contention over closing issues that there may not be agreement on closing, Jon suggested the group consider maintaining the issues list separately from the uber buffers specification. This could reduce the workload on Rob, too.

Eskil Steenberg gave us a related presentation on algorithmic use of more flexible memory models, from his ISV perspective. Quick summary of the slides:

Jon thinks the short code sample in Eskil's talk was quite useful in exposing memory access patterns and required changes in the GPU programming model, and that additional examples of what developers would like to accomplish with the HLSL would be helpful to drive discussion of this area in the arb-gl2 WG.

Secondary Color Alpha

SecondaryColor3 sets A=0. However, the default value is 1, so there's no way to restore the initial state. We've been discussing this for a long time; it's not entirely clear how we arrived at this point, but by consensus, Jon will change the 1.5 spec to mandate that SecondaryColor3 set A=1. This is in theory an incompatible change and could affect some application, but nobody considers it to be a problem in practice.

VBO Binding Issues

Kent has several issues. First, specifying directly that individual array bindings are established at array specification (e.g., VertexPointer) time. This is just a spec clarification.

Second, specifying when buffer deletions actually happen. The present language says that bindings are released at delete time, and Nick's proposed change (delayed deletion) doesn't match this. We will not change the current language.

Third, we should add discussion in section 6.1.14 (and in the extension issues list) to note behavior when popping the array binding to a binding to a no-longer-existent array. Need to resolve whether or not a new object is created in this case - by analogy with texture objects, it would be created. Resolution is TBD on the participant's list per Pat's proposal.

Floating Point Working Group

Dale reviewed ARB_half_float_pixel, ARB_texture_float, and WGL_ARB_pixel_format_float proposals. Need to determine whether to use half or float16 to refer to the 16-bit precision float data type. Need GLX equivalent to the WGL extension.

Pat reviewed ARB_color_clamp_control. Allows disabling clamping at several stages of the pipeline. Lots of open issues around specific operations which currently clamp, and around AA and multisampling math which may not make sense with non-[0,1] values.

ARB_extension_query

We need to enumerate compatibility drawbacks of not continuing to expand the EXTENSIONS string and only using this query, then poll developers. Rob suggests an alternate approach for enumerating extensions in addition to this.

Jon will construct a prototype question and post it to the participants list.

General Technical Working Group

We have a good list of proposed tasks but difficulty in engaging on them. Need to get people together, see who can pony up resources (Pat may have someone). To drive this, the WG will identify a specific task as our first goal, then collect parties interested in that particular task.

GLX Protocol Working Group

GLX protocol needs to be established for a number of ARB extensions (and corresponding 1.4/1.5 core features) to bring GLX up to date. May also want to define GLX equivalents of some WGL extensions such as WGL_ARB_render_texture.

General agreement to establish the WG. Ian may be interested in leading, and Pat also offered Joe Kain from his group as a possibility. Jon will setup the mailing list and we'll go from there.

Next Meeting

Intel will host in Sacramento on June 8-9. Kent Lin will provide more detailed information soon.

Volunteers are needed to host September, December, and beyond meetings. Please email or phone Jon if you may be willing to host.

Thanks to Apple for hosting this meeting!