|
|
ARB Meeting NotesDecember 7-8, 1999Hosted by SGI in San Jose, CA Meeting notes taken by Jon Leech, SGI |
| Allen Akin | Precision Insight | akin 'at' pobox.com | 650-326-0962 |
| Barthold Lichtenbelt | 3Dlabs | barthold.lichtenbelt 'at' 3dlabs.com | 970-482-8819 |
| Bill Armstrong | E&S | armstron 'at' es.com | 801-943-0423 |
| Bill Clifford | Intel | william.h.clifford 'at' intel.com | |
| Bimal Poddar | Intel | bimal.poddar 'at' intel.com | 916-356-3504 |
| Brian Paul | Precision Insight | brian 'at' precisioninsight.com | 970-870-8156 x10 |
| Bruce D'Amora | IBM | damora 'at' austin.ibm.com | 512-838-5610 |
| Bruce Stockwell | Compaq | bruce.stockwell 'at' compaq.com | 603-884-2304 |
| Dale Kirkland | Intergraph | dlkirkla 'at' intense3d.com | 256-730-6085 |
| Chris Hall | 3Dlabs | chris.hall 'at' 3dlabs.com | 408-530-4751 |
| Craig Dunwoody | SGI | dunwoody 'at' sgi.com | 650-933-3635 |
| Dairsie Latimer | PixelFusion | dairsie 'at' pixelfusion.com | 44 0 1454 878519 |
| Dan Brokenshire | IBM | brokesh 'at' austin.ibm.com | 512-838-3373 |
| David Blythe | SGI | blythe 'at' sgi.com | 650-933-3325 |
| Don Mullis | 3dfx | dwm 'at' 3dfx.com | 408-935-4082 |
| Elio Del Giudice | Matrox | edelgiud 'at' matrox.com | 514-822-6317 |
| Herb Kuta | Quantum3D | kuta 'at' quantum3d.com | |
| Jens Owen | Precision Insight | jens 'at' precisioninsight.com | 970-870-8156 x15 |
| Jon Leech | SGI | ljp 'at' sgi.com | 650-933-8187 |
| Ken Nicholson | SGI | nicholson 'at' sgi.com | 650-933-6153 |
| Kurt Akeley | SGI | kurt 'at' sgi.com | 650-933-3612 |
| Igor Sinyak | Intel | igor.sinyak 'at' intel.com | |
| Jack Middleton | Sun | jack.middleton 'at' eng.sun.com | 650-786-0114 |
| Kent Lin | Intel | kent.lin 'at' intel.com | 408-545-9982 |
| Kevin Lefebvre | HP | kevinl 'at' fc.hp.com | 970-898-4382 |
| Matt Papakipos | nVidia | papakipos 'at' nvidia.com | 650-852-9470 |
| Michael Gold | nVidia | gold 'at' nvidia.com | 408-615-2573 |
| Patrick Brown | Intel | patrick.r.brown 'at' intel.com | 916-356-7479 |
| Paula Womack | 3dfx | paulaw 'at' 3dfx.com | 408-934-5056 |
| Rick Hammerstone | ATI | rhammers 'at' ati.com | 508-303-3900 x3319 |
| Steve McGuigan | SGI | guig 'at' sgi.com | 650-933-6357 |
| Steve Wright | Microsoft | swright 'at' exchange.microsoft.com | 425-703-4237 |
| Tom Frisinger | ATI | tfrisinger 'at' ati.com | 508-303-3965 |
Steve McGuigan recapped the Register article and resulting FUD: SGI and Microsoft both made public responses on opengl.org and other forums, and Microsoft is working with the Register on a correction.
Steve Wright did a Microsoft update. The Register article made it to Japan as well, and Microsoft Japan people translated and are distributing the official response response there. Microsoft is trying to staff up on OpenGL - interviewing, but haven't found good candidates yet. Need strong development lead + 1-2 development/test people. They're exercising OpenGL in new ways for e.g. scene graphs, and need to work on systems integration issues. If interested, contact Steve. Lots of customers are using OpenGL, not only on Quake but professional applications - more than Phil Taylor (DX Evangelist) thinks.
Microsoft has never shipped ICDs in the box. Had hoped to do this for Win2K, but video testing people were concerned about the "black box" aspect of an ICD. The Register panicked and didn't know what was going on. They're looking at getting ICDs into the "Windows Update" mechanism. People buying cards and systems are getting drivers that way - the concern is people upgrading from NT4 to Win2K. If people have data on such upgrade cases, please contact Steve - marketing people at Microsoft have disagreed on how much exposure this represents and how many people will be affected.
Ken Nicholson did the SGI update. Comment on Register issue - like a wildfire in the press. Contacted by JPA, Tom's Hardware, etc. When they did the research, they found out that it's a rumor, but still wanted a story. General comment - press would like to write about OpenGL!
SI status - final beta in test. Make sure you've signed the 1.2 license agreement. Soliciting feedback. Remaining work is integration of pbuffers & other GLX 1.3 entry points.
ICD status - continued integration of Intel optimized geometry code underway. Final beta to Microsoft imminent, they will test and distribute in a wider beta. Work on opengl32.dll scheduled for January, as is accelerated multihead support for Win2K SP2.
Steve Wright - DDK having slipped helps on Microsoft side, since they've had trouble getting test resources. Getting it in late December helps. There's also contention with people working on scene graphs - should free up in early January. Steve has also found a group inside Microsoft who runs the mechanics of beta programs, and wants to use them for ICD beta. They're also looking ahead to 64 bit support, coordinated with Intel, and to a full 1.2 driver example demonstrating that the DDK does everything it needs to.
Otto's team is working with some third parties on an OpenGL layered-on-DX driver for people not wanting the highest performance drivers. Steve expects ICDs to be model of choice for highend CAD, but it's hard to test since it doesn't support the type of internal hooks that DX drivers have. If people have ideas on improving testing, please contact Steve.
Ken - lots of Linux going on work at SGI. Monitoring DRI work and seeing if that's the right basis for Linux drivers going forward. Continuing to work on Java binding issues with Magician. Looking at wider testing and qualification programs and at 64-bit support.
Steve Wright - chime in on testing issue. Feedback from CAD ISVs is that testing on midrange and lowend cards focuses on Quake and fails for their apps. It's hard to boil their problems down to simple test cases. Compaq and Microsoft think a higher level of certification would be suitable. Even conformance tests are much longer than other WHQL test suites.
Michael proposes that WHQL testing not include Microsoft-specific pixel formats (e.g. anything that doesn't touch the display driver, like offscreen renderers).
Tests might be contributed to Microsoft or to Allen Akin for glean (glean.sourceforge.net).
Paula Womack - 3Dfx has open-sourced Glide and announced that they will be concentrating their work on standard 3D APIs in the future.
Jon - 2 remaining issues. First, there's a missing DepthRange test in mustpass.c; this is present in Microsoft DDK, but was removed from the 1.1.1 SI in 2/97 by Paul Ho for currently unknown reasons. Second, the GLX protocol problem with ReadPixels and REDUCE-mode convolution. Removed the ReadPixels test until this is resolved - we'll have a proposal for fixing this by the next meeting, but won't hold up the vote yet again.
VOTE held on 1.2 conformance: passes 10:0:0 (at last!)
Kurt reminded people that we have a chance to make OpenGL continue to be relevant and evolve rapidly. He's looking forward to seeing how the first try at the ARB extension process works.
Michael made the case for context-dependent pointers again - context-independence is error-prone and places a burden on drivers. Brian Paul described his dispatch mechanism prototyping experiments, which look fairly straightforward.
Clarification on spec - query can be called whether a context current or not. Need to add extra parenthesis after function declaration.
VOTE: 3Y, FAILS.
Paula proposed an alternate: screen dependent pointers. Jon will bring back both versions tomorrow: context dependent and screen dependent.
GLX issues: no new protocol is created. Gets are not layered; server must recognize new query enums and return transposed data.
VOTE: 10Y/0A/0N, PASSES.
Must change spec to read ARB instead of EXT (Intergraph is shipping the EXT version now).
Hard to test - this is a WGL extension, and conformance structure doesn't support it. No test specified yet.
Interaction with ARB_multisample - will behave as though a ReadPixels/DrawPixels was done, supersample information is lost.
Intergraph has layered KTX_buffer_region on top of this extension. Kinetix is willing to migrate to using the ARB version over time, though they're on a long release cycle.
VOTE: 9Y/1A/0N (E&S abstains), PASSES.
Open issues:
Decided to stay with old (value,invert) interface and layer the range interface later.
Missing GLX protocol; Dale will generate some with Jon's help.
Want more specific spec language in the future (e.g. what changes apply to what specific parts of the GL and GLX specs).
Coverage testing is hard; many existing tests might break when run on a multisample buffer.
Will choose to allow one-sample multisample buffers, despite the "distinguishing characteristics of ARB extensions", because it invokes different rasterization rules.
discussion suspended for presentation from Michael Duncheon
30 day review period was proposed because it was felt to be beneficial to have a short, but not too short period for patent reviews. Some people felt this was too short a period. From the perspective of creating a timeframe that encouraged more review, 60 days seems better. People implementing prior to that are somewhat at their own risk - the ARB would have to decide what to do if an interference was raised.
Dale asked why ARB members are held to a shorter review period (e.g. must state objections when vote is held) than signers of the Participation agreement. Michael hasn't specifically reviewed this and suggests the Bylaws be revised to be consistent with the Agreement.
Bimal asked why current ARB members should sign the Agreement, when they've already put work into getting the Bylaws signed. Michael will report back on this.
Jon asked about rights assignment for changes to the Specification and conformance tests. The Specification is covered by the Agreement, but the tests appear not to be. The consequence is that SGI should probably write the actual tests, rather than accepting them from others, unless (maybe) there's a rights assignment doable quickly.
Michael Gold asked what to do when someone raises an objection on IP grounds prior to the meeting. Michael Duncheon says we should note that and explore exactly what the infringement might be, so we can figure out how to work around it or reduce the risk. Ultimately the ARB must make a decision to work around it or to standardize it and let implementors take on the risk for themselves. The mere fact that someone asserts they have a patent doesn't mean we shouldn't approve an extension.
Dale will write up changes tonight and final vote will be tomorrow. Straw poll shows it will be approved.
Bill Armstrong: the pertinent E&S patent is #5,651,104, filed April 25, 1995 (predates DirectX 6), granted July 22, 1997: "Computer Graphics System & Process for Adaptive Supersampling". Haven't resolved anything about licensing at this time; they believe the patent conflicts with the spec. E&S is not willing to sign an ARB document granting worldwide use at this time. Bill's personal opinion is that the patent covers all implementations of the extension.
Steve Wright: Believes some Talisman technologies also applies (anisotropic texturing is in DX6). Have turned over to their lawyers for comment.
Tabled pending resolution of E&S issue - Michael will propagate a few proposed language fixes back into the EXT spec.
Kurt proposes that we go off and think creatively about ways to rewrite the spec to encompass e.g. summed-area tables or other old approaches to anisotropic filtering, rather than specifying a possibly encumbered approach.
This is currently in wide use as an EXT. Concerns were raised about what state was allowed to change while locked. Dan Brokenshire said IBM had trouble getting substantial performance improvements and has pulled support in their newer hardware. He wants to add hints as to what state may be changed during the lock; if any state can be changed, assumptions made in compiling are limited. Example: changing TexGen mode invalidates computed coordinates.
Pat Brown said that, having implemented this, it left performance on the table and was speced vaguely, allowing implementations great latitude. Finally, the arrays that are locked are the ones enabled at the time they're locked - e.g. Quake will disable texcoord array, lock, enable texcoord array, render, change texcoord array and render another pass. Michael Gold's assumption is that any array enabled while the lock is on, is itself locked.
Dan proposed just clarifying the existing spec. Need feedback on what needs to be fixed. Straw poll suggests that ARB would approve a clarified spec.
Some notion of specifying which individual arrays are locked via a bitmask; Dan is interested in a more precise hint as to which state might change, but this is very open-ended.
Bimal revisited different uses for vertex arrays:
He contends that current version works well for (1) and (2).
One clarification needed: is an array implicitly unlocked when it's disabled?
We'll convene a separate working group for vertex array objects and also clean up the EXT language and re-propose it as an ARB extension.
Pat wants the overview to include at least one justification for this function. The spec as written is against GL 1.1 (or maybe 1.0) and needs to be updated. It also needs to insert GL_ADD in the list of possible texture functions, and make change in texture function type in state table (Z4->Z5).
Conformance test proposal: must include ALPHA and INTENSITY tests. Draw a polygon in some color with an added texture color, and test result. Punt on alpha test w/no destination alpha.
VOTE: 10Y/0A/0N, PASSES. Michael will clean up and bring back tomorrow.
Point of order: this is affected by ARB_multisample (not SGIS_multisample); will need to discuss this.
Dan: what happens if min point size > max point size? Answer: implementation defined.
Bill: suggests changing DISTANCE_ATTENUATION to specify it applies only to POINTs.
Dan: when does threshold size apply? Answer: to derived size, not specified size.
Dan: should resolve an issue - does specifying negative values generate an error?
Blythe: derived point size should behave like core PointSize regarding errors and use within Begin/End. Need to add to the list in section 2.6.3.
Bimal: there are two maximum point sizes (smooth and aliased).
Kurt: initially wrote SGIS spec so limits applied to derived point sizes, not specified sizes.
Dale: alpha fade behavior seems backwards - should fade alpha on size < 1 for non-multisampled points. Blythe will check our code and with person who wrote the spec as to whether it might have been specified backwards.
Jon: needs GLX protocol for PointParameters.
Bill passed on some typos for Michael.
Michael will clean up and bring back a more readable form tomorrow.
Issue: AA points with size [0,1) will behave differently if ALPHA_FADE behavior is changed.
Blythe will explore SGI implementation and report back.
After a format-independent way of specifying compressed textures. Provides generic compressed formats and a way to return compressed textures in an opaque format.
Two issues unresolved:
Should the extension encompass external opaque compressed formats, or just compression on download? Two scenarios: precompressed textures provided with the app which should be downloaded compressed, and generic uncompressed->internal compressed textures.
Lots of discussion of ways of using compression; straw poll on 4 options:
Straw poll suggests most interest in (2) and (4). Propose to table the extension and figure out how to encompass streaming protocols.
Intel will try to create a generic version of the extension by January, on which 3Dfx could layer FXT1 as an example.
Discussion of GLX protocol problems; Steve Wright noted in passing that X servers on Windows with indirect GLX support is of growing importance to them.
Straw poll on how to define GLX/GLS protocol for compressed data - overwhelming preference for option (3), define new APIs and protocols for compressed data including an explicit out of band data size. These APIs will bypass pixel transfer operations.
Open issues: what pixel transfer operations are allowed on compressed downloads? How is byteswapping handled on the protocol stream for these formats? Are existing formats byte-order independent?
Pat will continue the working group - send him or Bimal email (address is on the current extensions page). There will be two specs: current ARB_texture_compression (uncompressed app -> compressed server), and a framework for compressed app -> compressed server. Second spec would be layered example using FXT1.
Allen Akin came in to discuss implementation and utility in more detail. Two types of issues: First, actually using extensions is hard. Context independence eases some of these problems. Example: renderer code assumes functionality is available, then app invokes a renderer appropriate to the hardware. Context dependent pointers make it more difficult to modularize, since renderer needs to know current context each time it's called. Possible but complex, also a performance loss that can't be made up on the core dispatch side.
Second, system implications. By creating a distinction between those things dispatched through the core and through a context-dependent pointer, creates possibility of a new class of error: invoking a driver function when that driver doesn't own the current context. Probably need to start inserting tests into the driver to validate the context.
Lots of discussion about context dependence and implementation details, much of which was repeating topics covered repeatedly on the working group list. People changed their opinions after hearing Allen's discussion, and it was brought up again:
VOTE: 8Y/1A(NVIDIA)/1N(Microsoft), PASSES
Steve Wright requested that practical experience on implementation be forwarded to him, and that the difference in behavior with wglGetProcAddress() be very well documented so ISVs aren't confused.
Revised version distributed by Dale. Steve W. will update the WGL enumerant registry per spec. Jon asked that Steve distribute a copy of the WGL registry for inclusion in the broader GL registry.
VOTE: 10Y/0A/0N, PASSES
David Blythe looked at SGI implementation. Reason for FADE_THRESHOLD was that when multisampling, it allows reasonable behavior for small smooth points - when very small, there are motion artifacts because they cover significantly different number of multisamples as they move. For aliased points, nobody cared because the motion artifacts were unfixable. App is probably already manipulating alpha explicitly for aliased small points, so recommendation is to leave behavior unchanged in that case.
Michael will correct clamping so user-specified range clamp is followed by implementation-defined range clamp. Can't restrict user-specified range to implementation range since there are two impl. ranges (smooth or aliased).
Will make max user-specified size the same as the max aliased point size, for ease of default state test.
Conformance test - draw points and test sizes, Michael will propose details. Very much like the existing pntrast.c test, which has been pulled from the TESTLIST.
Nits: need to correct 'd' to 'dist' in the distance attenuation equation. Rewrite 'alpha *= { conditionals' expression on bottom of page 4 to valid mathematics. Strike following 'points do not affect the current color' comment.
Does derived alpha get used before or after texturing? Ideally after at coverage application, realistic fallback will allow before for current hardware too. Need a new block in the state machine diagram to express this.
E&S is concerned about how multisample behavior works, and suggests pulling out the alpha fade behavior into a separate extension. Michael counterproposed that Bill check the behavior on his systems and report back, and that the vote be deferred to email in 2 weeks.
Jon missed the (short) discussion
VOTE: 9Y/0A/1N (Intergraph), PASSES
Pat Brown notes that cube mapping is one of the first compelling uses of texture borders :-)
Kurt summarized his thoughts about the extension process:
At the ARB meeting the idea isn't to get agreement from everyone that a given approach is the "right" one, but rather to create in advance agreement among a subset of the ARB that a given approach is the one to champion, and to then use the meeting to get agreement in the form of a vote that the approach is acceptable. We should avoid design-by-committee in the interest of getting on with extending OpenGL.
Group discussion:
After recapping the first round, we discussed ARB extension candidates for the next meeting. The following proposals are continuing:
Dale suggested the following new ARB extension candidates:
Jon brought up these candidates:
Craig Dunwoody presented an overview of the different interface layers: API, ABI, loadable driver interface (LDI), etc. This was followed up with general discussion of the current Linux OpenGL ABI proposal and how we might want to lift that into a non-Linux-specific standard. The discussion was lengthy and mostly speculative, and I haven't tried to capture it here.
The next ARB meeting will be the week of March 14-15, in Sacramento. Intel will host. Exact date TBD - this is the week after GDC.
The following meeting is tentatively set for June 6-7, location & host TBD - 3Dfx and NVIDIA are both willing, NVIDIA might host in North Carolina.