|
|
ARB Meeting NotesDecember 10-11, 2002Hosted by NVIDIA in San Jose, CA Meeting notes taken by Jon Leech, SGI |
| Alain Bouchard (telecon) | Matrox | abouchar 'at' matrox.com |
| Allen Akin | (Self) | akin 'at' pobox.com |
| Avinash Seetharamaiah | Intel | avinash.seetharamaiah 'at' intel.com |
| Barthold Lichtenbelt (telecon) | 3Dlabs | barthold 'at' 3dlabs.com |
| Ben Ashbaugh | Intel | ben.ashbaugh 'at' intel.com |
| Bernice Chen (telecon) | Sun | ??? |
| Bill Armstrong | E&S | armstron 'at' es.com |
| Bill Licea-Kane | ATI | bill 'at' ati.com |
| Bimal Poddar (telecon) | Intel | bimal.poddar 'at' intel.com |
| Bob Beretta | Apple | beretta 'at' apple.com |
| Brandon Fliflet | Intel | brandon.fliflet 'at' intel.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 Aronson (telecon) | MS | daronson 'at' windows.microsoft.com |
| Dave Zenz | Dell | dave_zenz 'at' dell.com |
| Francois De Villiers | 3Dlabs | francois_devilliers 'at' creativelabs.com |
| Gary Choksi (telecon) | ATI | ??? |
| Gary Grewald (telecon) | Alt.software | ??? |
| Graham Connor | Imagination Technology | graham.connor 'at' powervr.com |
| Herb Kuta | Quantum3D | kuta 'at' quantum3d.com |
| Helene Workman | Apple | plotka 'at' apple.com |
| Ian Romanick (telecon) | IBM | idr 'at' us.ibm.com |
| Jack Middleton | Sun | jack.middleton 'at' sun.com |
| Jeremy Sandmel | ATI | jsandmel 'at' ati.com |
| John Kessenich | 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 |
| Matt Craighead | NVIDIA | mcraighead 'at' nvidia.com |
| Marc Olano (telecon) | UMBC | olano 'at' umbc.edu |
| Matt Russo (telecon) | Matrox | matt.russo 'at' matrox.com |
| Michele Stamnes (telecon) | Intel | michelle.stamnes 'at' intel.com |
| Neil Trevett | 3Dlabs | neil.trevett 'at' 3dlabs.com |
| Nick Triantos | NVIDIA | nick 'at' nvidia.com |
| Pat Brown | NVIDIA | pbrown 'at' nvidia.com |
| Phillip Gilman (telecon) | MS | pgilman 'at' willkie.com |
| Rick Hammerstone (telecon) | ATI | rhammers 'at' ati.com |
| Rob Mace | ATI | mace 'at' ati.com |
| Scott Peterson (telecon) | HP | scott.k.peterson 'at' hp.com |
| Suzy Deffeyes | IBM | suzyq 'at' us.ibm.com |
| Teri Morrison (telecon) | HP | terim 'at' fc.hp.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.
GL2 group meeting weekly. Latest draft of shading language spec has
very few issues remaining. More work remains on the GL2 extensions
themselves; hope to get some of that done at this meeting.
VAO group has been meeting weekly for 2 months driving
ARB_buffer_object proposal. Will continue with conference
calls after the meeting, working on other extensions.
Conformance tests held up. Previous volunteer to lead the working
group no longer available, and some licensing issues still being
worked by SGI so contributed tests are redistributable to licensees.
Hope to pick up the working group soon; Alt.software has volunteered
to lead it.
Bylaws group developed Amendment #1 to let us make changes in IP
disclosure portions of the Bylaws. The Amendment was voted in
unanimously by the Permanent Members. Now looking at Apple and
Microsoft IP policy proposals; will choose one and move forward.
Membership level proposal also on the table.
March ARB meeting details to be determined - potential volunteers
should contact Jon ASAP.
Nick forwarded some comments on the updated draft spec from Paula
Womack, the original spec author:
Interested parties (probably Jon, Paul, Brian Paul, Bill Licea-Kane)
will finish this up by email - probably doesn't merit a full WG
since we are just replicating a proven WGL extension.
NVIDIA has a WGL_render_depth_texture extension which
layers on WGL_render_texture. IBM is probably interested in
a GLX version of this. NVIDIA also has a
NV_render_texture_rectangle extension which is simple and
may be of interest.
Pat Brown has a bunch of issues NVIDIA ran into implementing the
WGL_render_texture extension which he'd like to bring up,
too. May setup a full working group to discuss all this.
Matt has a list of 5-10 existing extensions (some ARB, some not)
he'd like to see put into a new core. No technical or policy reasons
not to put a high level language in OpenGL. However, we can expect
some IP issues.
Dale would like to see synchronization features added to the core.
Matt would like ARB_vertex_program and
ARB_fragment_program included in the new core. Also the
ARB_buffer_object spec, if it's in time - lots of demand
from ISVs.
NV_float_buffer also suggested. ATI thinks floating point
is essential, but needs to be more generic - here's what floats do,
here's how the spec changes - rather than exposing one architecture.
So they would remove some restrictions in the NV spec. NVIDIA is OK
with adding support for all texture targets but would resist adding
blending support - for example, it's not clear how to implement
glLogicOp on floating point values. They also have some
hesitation to define an extension which is not implementable on any
current hardware.
NVIDIA has a "quasi-shipping" (in NV30 emulation)
extension to expose FP pixel formats, though they cannot be used to
render to displayed windows.
Apple's feedback is that their customers don't need more than 10
bits/pixel integer components today. Floating-point buffers are
undisplayable on current hardware.
Current spec has [0,1] clamps in several places, and implicit
assumption of clamped ranges elsewhere. These need to be relaxed for
FP pipelines. Current NV spec does this only for fragment programs,
but it could be done for the fixed-function pipeline as well.
We should develop guidelines on what features people want in FP
buffers, to guide this. ATI also has FP pixel format and texture
extensions and is willing to compare that to NV extensions as a
starting point.
NVIDIA would like to make some common operations, like render to
texture, into pure GL functionality rather than something requiring
multiple contexts and visuals. They suggest migrating WGL
functionality into the core spec. ATI noted the über buffers
proposal encompasses much of this.
Other extensions Matt suggests for the updated core:
We will continue discussion on a new core revision in the main
participants' mailing list.
Neil summarized
progress on the embedded subset being developed within Khronos.
WGs sometimes find themselves making essentially arbitrary (e.g. no
clear technical winner, lots of divisiveness) decisions by vote. How
can this best be done? Lots of information on voting strategies on
the web now. Allen got into this when we were struggling with some
ARB_vertex_program decisions. There are at least half a
dozen variant voting schemes which have better mathematical
properties, such as acceptance voting (yea or nay on each
alternative), Condorcet (ranking), and Borda counts (ranking with
weighting, sum up weights).
Considerable variation in what big standards bodies do. Highest
level voting policies tend to be tightly specified and complex.
Loosely, they tend to be majority-rule based. Different weights
given to votes based on class of membership. Multi-round voting is
common; failure of unanimous votes leads to revote on reduced
options.
Recent example from GL2 group: object handle/ID votes. We had
previously constructed a spectrum of 6 possible solutions as
examples; a simple Yea/Nay vote on that many options would probably
have failed. Acceptance voting fell down on specifying what a cutoff
level of acceptability might be. Borda voting came up several times
as a possibility, and was tried.
ACTION: formal votes going forward will be secret ballot until the
vote is closed. We may want to reduce the duration of email voting
periods in revising the Bylaws, and more tightly specify voting
rules and other working group operating principles.
Rob Mace distributed a white paper on "über buffers"
They differ from current objects (like texture objects); instead of
being "buckets" which contents are placed into, über
buffers are their content.
Buffer properties are specified at creation time, including
potential uses.
Considerable discussion followed, and lots of concerns and requests
for clarification were raised. A straw poll was strongly in favor of
creating a working group to explore this area. Rob will lead the new
WG, which he and Kurt agreed to call "super buffers", and
develop ideas from his white paper, related ideas from 3Dlabs
proposals via Randi and Barthold, etc. into an ARB extension
proposal.
Bill reviewed final open issues in the shading language
specification.
Long discussion about bitwise integer operations and being able to
store integers in textures, for ISVs who want to pack multiple data
channels into a single texture component. Also need some way to get
unprocessed integer data into texture memory; this is not easy today
though NV_texture_rectangle has a potentially useful
concept of turning off processing when loading float texture data.
Could revive EXT_index_texture to support this.
Revisited issue 23, ability to read from the framebuffer. After
considerable discussion, including the performance costs of this in
deeply pipelined architectures and desirability of overturning WG
decisions in the full ARB, we revoted and decided this would
not be supported by a large margin.
7-8 new issues discovered during review. Bill will add to the spec.
We will resume discussions tomorrow afternoon.
Amendment #1 has been approved by the Permanent Members; we are now
collecting their signatures. This change enables further bylaws
revisions in areas such as membership levels, IP disclosure
policies, working group creation, etc. The working group will
continue developing changes in these area.
Matt summarized the features and purpose of the
ARB_buffer_object extension. Dale observed that the spec
allows all GL commands to be issued while a buffer is mapped, but
has undefined behavior when rendering from a mapped buffer. Matt
noted this is not an inconsistency, though it imposes the
performance cost of checking whether or not the buffer being drawn
from is mapped.
Lots of discussion of buffer map behavior in various circumstances
that might change mappings, such as uninterruptable power save
events on portables.
Discussion of new intptrARB and sizeiptrARB types.
Need suffix attached in the spec, and more informative definitions.
Discussion of indirect protocol issues - server must be able to
interpret client data and translate as needed at draw time. We
should continue using use "basic machine units"
terminology for sizes and offsets.
Straw poll on whether this spec was the right general direction for
us to pursue; almost everyone in favor, modulo remaining concerns
expressed during the discussion.
Working group will resume telecons and plan to have the final spec
and an implementation done in early January for an email vote.
The shading language specification is closer to completion
than the GL2 extensions, though neither is quite finished. We
may choose to vote on the language first and the extensions
later, though there are some drawbacks of that.
Bill summarized the Borda-count vote held to determine the object
management strategy. Approach (3) - a single classic ID namespace
managed through a single API - narrowly won over (4), the handle
proposal. This affects the GL2_shader_objects extension
proposal.
Lengthy discussion of GL2 program management vs. low level program
management - can some of the low level mechanism be reused?
How to move forward?
Pat Brown has offered to head a new working group to review the
low-level instructions sets for advanced features such as looping,
branching, and subroutines. This will be harder since there's more
variability in different IHV's feature sets than there was for the
original low-level instructions - how do you express restrictions?
Pat suggests looking at NV_vertex_program2 for an example
of new capabilities. He asked for input and requests for the areas
that the group should look at. ATI is interested and recognizes the
differences in capabilities in current-generation hardware.
As a conceptual bound on this exercise, Jon suggested looking at the
high-level shading language, determine its requirements if it
were to be compiled into the low-level language (which isn't how
we expect implementations to work), and understand the gap in
capabilities. But the low-level instruction sets are tracking
restrictions of current hardware while the high-level language is
more forward-looking.
This could be a lot of work; another strategy is to narrow down
NV_vertex_program2 to the common subset of supportable
operations. This seems considerably easier.
Pat will convene a new working group and start looking at the
instruction set compatibility issue; the group will decide how to
proceed.
Thanks to NVIDIA for hosting this meeting!
Action Items / Conclusions from the Meeting
Summary of Discussion Topics
Tuesday, December 10
Introductions
GLX_ARB_render_texture
Next OpenGL Revision
Khronos "OpenGL ES" Update
Voting Strategies
Super Buffers
Shading Language
Wednesday, December 11th
Bylaws Revisions
Vertex Array Objects
OpenGL Extensions for the Shading Language
Low-level Program Revisions