|
|
ARB Meeting NotesMarch 2-3, 2004Hosted by Apple in Cupertino, CA Meeting notes taken by Jon Leech, SGI |
| 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 |
People reading the OpenGL ARB minutes are cautioned that statements made by attendees do not represent official company positions unless explicitly identified as such.
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.
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.
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.
Straw poll: YES, unanimously.
Dependency: Minor spec changes previously discussed by Bill are required by March 31st.
Straw poll: NO (deferred until Wednesday's WG meeting, at which this was discussed in depth).
Together, these allow float16/32 to be used for pixel buffers, textures, and (undisplayable?) framebuffers. They do not allow float16s for vertex processing.
Straw poll: YES, near-unanimously. These extensions were discussed in more detail on Wednesday.
Dependency: The arb-float WG must complete final extension specs by March 31st, and the ARB must then formally vote to approve the extensions.
Superbuffers does overlap in functionality, and Rob thinks it's better for operations like render-to-vertex array (fewer copies required). There's been discussion on making uber buffers mappable; if there was a clean way to do that, it has the potential to be a better way to stream in data than PBOs.
General sense is that the functionality is desirable, but it could be provided either through PBO or through layering on superbuffers. Open to further discussion.
Nick & Rob will discuss whether to augment superbuffers, or finalize PBO. Nick will circulate PBO spec to the ARB. We will probably hold a straw poll by email at that point.
Dependency: Agreement to use PBOs layered on VBOs. If so, the final extension spec must be delivered by March 31st, and the ARB must then formally vote to approve the extensions. If we decide to use PBOs layered on superbuffers, they will not be included in OpenGL 2.0.
Straw poll: YES. Kent would like to address the t-direction issue.
Dependency: Kent and other interested parties must develop changes to control the t coordinate direction by March 31st, and the ARB must then formally vote to approve any changes. Otherwise, the existing extension specification will be used as is.
Pat says they've found strong correlation between FP buffers and NPOT textures. There are other ways of getting this functionality, like EXT_texture_rectangle (a subset of NPOT supported in more hardware).
Straw poll: predominantly in favor - but given implementation difficulties, its inclusion may be questionable for now. People are more comfortable with committing to doing only the 2D part.
Dependency: Nick will drive a discussion in the arb-texrect WG to determine if support is required for the other texture targets, and if not, deliver proposed changes to the ARB by March 31st. The ARB must then formally vote to approve any changes.
Straw poll: YES on functionality, with agreement to provide lookup by texel index functionality in the shading language, instead of through the extension API. Kent says this is very painful on their hardware, and may be a showstopper for them.
Dependency: Bill and the arb-gl2 WG must develop changes to the shading language to support indexed texture access by March 31st, and the ARB must then formally vote to approve the changes.
Straw poll: YES. A few companies want to sanity-check the extension, and make sure it uses the same enum values as the equivalent ATI vendor extension.
Dependency: Companies needing to do sanity checking have until March 31st to push back on the extension, or offer changes for compatibility. The ARB must formally vote to approve any changes.
Straw poll: probably NO. Pat and Ian are strongly in favor; 4-5 others are opposed because there's no obvious use for this. Jeff wants to look up whether ISVs are using the ATI extension this was based on (his later response indicates it's used in their SDK demos, but they're not aware of ISV usage). Mirror clamp mode will not be included unless there's significant feedback and change of heart by March 31st.
Straw poll: probably YES. However, Teri & Jon were both opposed for lack of demonstrated use. They will ask their volume rendering people for feedback.
Dependency: Members who are concerned about utility must provide developer and/or internal feedback by March 31st. Only significant pushback will prevent inclusion in OpenGL 2.0.
Straw poll: NO (8 people in favor, 11 opposed). This is an increase in support from when we considered inclusion in OpenGL 1.5, but still not enough. The shadow extension is logically dropped as well, without the base fragment program extension it builds on.
Straw poll: YES, unanimously.
Dependency: Bill, Rob, and the arb-gl2 WG must make changes to define interactions with the Shading Language by March 31st, and the ARB must then formally vote to approve the changes.
Straw poll: YES, unanimously. Ian however wants this only as an OpenGL 2.0 function, not an extension, due to GLX implementation difficulties.
Dependency: Open issues must be resolved by March 31st, and the ARB must then formally vote to approve the extension.
Straw poll: YES, unanimously.
Dependency: We must explore and understand the potential IP issue by March 31st, in order not to accidentally push encumbered technology into the OpenGL core.
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.
Assuming the dependencies discussed on Tuesday are all satisfied, the OpenGL 2.0 feature set will include:
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.
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.
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.
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.
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.
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 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.
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!