OpenGL

ARB Meeting Notes

September 15-16, 1998

Hosted by Nvidia in San Francisco, CA

Meeting notes taken by Jon Leech, SGI

Attendees

Adrian Muntianu ATI muntianu@atitech.ca
Allen Gallotta ATI alleng@atitech.com
Axel Schildan S3 schildan@s3.com
Bill Armstrong Evans and Sutherland armstron@es.com
Bill Clifford Compaq william.clifford@digital.com
Bimal Poddar Intel bpoddar@pcocd2.intel.com
Brian Greenstone Apple greenstone@apple.com
Bruce D'Amora IBM damora@austin.ibm.com
Chris Frazier Raycer cfrazier@raycer.com
Dale Kirkland Intergraph kirkland@ingr.com
Dan Brokenshire IBM brokensh@austin.ibm.com
David Kirk NVIDIA dk@nvidia.com
David Yu SGI dyu@sgi.com
Eric Young S3 eyoung@s3.com
Fred Fisher 3Dlabs fred.fisher@3dlabs.com
Garry Paxinos Metro Link pax@metrolink.com
Igor Sinyak Intel igor.sinyak@intel.com
Jack Middleton Sun jack.middleton@eng.sun.com
Jan C. Hardenbergh Mitsubishi Electric jch@merl.com
Jon Leech SGI ljp@sgi.com
Kent Lin S3 klin@s3.com
Kevin Lefebvre HP kevinl@fc.hp.com
Kurt Akeley SGI kurt@sgi.com
Mahesh Dandapani Rendition mdi@rendition.com
Matthew Papakipos NVIDIA papakipos@nvidia.com
Michael Gold NVIDIA gold@nvidia.com
Miriam Geller SGI miriamg@sgi.com
Morgan Von Essen Metro Link morgan@metrolink.com
Naruki Aruga PFU aruga@pfu.co.jp
Nathan Tuck Raycer ntuck@raycer.com
Newton Cheung S3 ncheung@s3.com
Paul Jensen 3Dfx pgj@3dfx.com
Phil Huxley 3Dlabs phil.huxley@3dlabs.com
Richard Schlein Apple schlein@apple.com
Rob Wheeler 3Dfx wheeler@3dfx.com
Steve Wright Microsoft swright@microsoft.com
Tim Kelley Real 3D kelleyt@real3d.com
Tom Frisinger ATI tfrisinger@atitech.com

Summary of Discussion Topics


Tuesday, September 15

 

ICD / SI Status

Steve Wright described the status of the Windows OpenGL 1.1 Installable Client Driver. Testing of the final bits from SGI was preempted by NT5 testing, but is about to begin and should finish in ~2 weeks. The ICD runs on NT 4, NT 5 beta, Win95, and Win98. It includes a software rasterizer and a sample S3 Virge driver.

Current OpenGL 1.2 ICD plans do not include software rendering. The DDK dispatch table changes needed for 1.2 entry points will go into NT 5, but it's possible that NT 5 might not support metafiles and printing. NT4/Win95 support for the 1.2 ICD is not planned.

Jon Leech and David Yu described the status of the OpenGL 1.2 Sample Implementation. In order to get 1.2 features out quickly, they are first being put into the existing SI codebase; this should be ready in 6-8 weeks. Merging the old SI with the Intel-optimized codebase will follow, around January. The Windows ICD should follow the SI release by about 3 months.

OpenGL 1.2.1 Specification Approval

The draft specification was not changed in a functional sense. However, a terminology change to the ARB_multitexture specification in appendix E was made: references to "active textures" were generally replaced with "texture units". The "active texture" now refers to the specific texture unit selected by glActiveTextureARB(). The MAX_ACTIVE_TEXTURES_ARB enumerant was changed to MAX_TEXTURE_UNITS_ARB.

After making these changes and prior to voting, Microsoft expressed concerns about adopting multitexture too quickly, without enough flexibility to meet the needs of CAD customers.

The vote on the final OpenGL 1.2.1 Specification was unanimous in favor; OpenGL 1.2.1 is approved (subject to the changes agreed on at the meeting). The final specification document will be posted by Jon shortly after the meeting.

GLU 1.3 Specification Approval

The draft specification underwent several changes after discussion:

Steve Wright noted that an updated GLU can't be released on NT except as part of a service pack, since it's considered a system component.

We'll vote on the final version of the GLU spec by email after these changes are integrated.

Wednesday, September 16

 

New ARB Members / Next Meeting

The permanent ARB members met following the GLU discussion on Monday to discuss additions to the ARB. HP was voted in as a permanent member. To increase representation from the PC IHV space, 3Dlabs and Nvidia were voted in as auxiliary members for one-year terms. Congratulations to the new members!

Metrolink will host the next ARB meeting, December 3-4, 1998 in Fort Lauderdale, Florida.

OpenGL Extensions

 

EXT stability

Nate Tuck brought up the desire of several IHVs for increased stability of multivendor EXT extensions, and better codification of the process of promoting an extension from vendor-specific through EXT and ARB status and finally into the OpenGL core. While EXTs are not controlled by the ARB per se, it's still a good forum to discuss this issue.

Nate proposed adding to the guidelines in Paula Womack's extension rules document. Suggestions contributed by attendees included:

More suggestions should be sent to Nate or to Chris Frazier; they'll develop a proposal.

Fragment Lighting and IP

SGI distributed copies of the fragment_lighting, light_texture, coordinate_frame, and texture_perturb_normal extensions with an attached statement clarifying their IP interests. The purpose of this family of extensions is to provide high-quality lighting and bump mapping. Questions about the IP statement should be directed to Ken Niven in SGI's legal department: kwn@corp.sgi.com, 650-933-3020.

Some concern was expressed about slowing down the EXT process by drawing in lawyers.

ARB_texenv

This in-development extension is intended to support additional texture blending modes beyond those in OpenGL 1.2. Mahesh Dandipani will lead discussion and development of this extension on the opengl-arb-interest mailing list. We hope to turn this into the next ARB extension. Points raised included:

 

Texture Compression

Mahesh started this discussion. Should compression operate as a hint, or new internal formats? Mahesh preferred hints; others preferred internal formats. Note that hints mess up texture proxy calls, which assume that all relevant state is passed in the call.

Digression to discuss S3's block compression algorithm. Nate Cheung from S3 said that decoding is freely licensed; encoding status is unclear. He'll talk to S3 developer relations and report back to the ARB.

We might want e.g. RGBA_COMPRESSED (generic) and RGBA_COMPRESSED_JPEG (vendor- or method- specific). Some schemes demand additional quality parameters; might we need new TexImage calls to support this? Do we want to support just internal formats, or compressed host formats as well?

Mahesh will also lead this discussion.

Intergraph Extensions

Dale Kirkland led this discussion and handed out copies of their extension proposals. The first proposal, wglSwapInterval, raised general questions about WGL:

Returning to wglSwapInterval proper (initially created for Id software), Intergraph's motivation is flight simulators, which need to provide different swap rates for different windows. Dale will lead discussion of this extension on the mailing list and come up with a final specification for the registry.

The remaining Intergraph extensions are all incomplete; talk to Dale if you want to work together with Intergraph on finishing these.

INGR_blend_func_separate was created for imaging houses needing separate RGB and A fragment blending. The only ugly part is querying for the old BLEND_SRC / BLEND_DST state. People like this approach to splitting RGB and A state better the the current ARB_texenv approach.

INGR_color_clamp is useful when doing color space conversions where some output channels are not in the [0,1] range. This is based on the OpenGL 1.2 imaging subset, replacing the 1.2 "final conversion" operation.

INGR_depth_float is to make the depth range more accurate near 0. This really should be in WGL, but PFDs currently don't allow specifying vendor-specific bits (Steve Wright will also look into this issue). The semantics of changing from float <->fixed depth buffers are not yet defined by the extension.

INGR_stencil_wrap defines a new mode for wrapping (instead of clamping) stencil values; this is useful for in/out testing and other operations where the stencil might over- or underflow, but the low bit(s) are still well defined and meaningful. The extension as defined is controlled with a glEnable; it could also use INCR_WRAP and DECR_WRAP parameters to glStencilOp.

INGR_ycrcb_pixels supports YCrCb host memory formats but, unlike SGIX_ycrcb, just expands 422 -> 444 format prior to the imaging pipeline. It relies on pixel pipeline operations to do the actual YCrCb -> RGB color space conversion.

Jon observed that the SGI extension uses a different component ordering; should reversed (or permuted?) component order formats be provided for compatibility? This needs to be followed up after the meeting.

Intergraph is also working on pbuffers - this is hard on Windows. They're interested in SGI video input extensions - interlace, 422, maybe a few more. Raycer may also be interested.

Other Extensions

Jon suggested that EXT_point_parameters would be a good candidate for the next ARB extension. Although the extension is currently supported by multiple vendors, there are some outstanding issues regarding multisampled and antialiased points which should be resolved.

Java Bindings

Jack Middleton led this discussion. Three proposals were received in response to the ARB RFP: Magician, Java4GL, and JSparrow. Arcane previously presented Magician to the ARB at the June ARB meeting.

JSparrow Presentation

Naruki Aruga of PFU presented JSparrow. PFU is a subsidiary of Fujitsu and Panasonic. They are developing a range of Java products and want to be able to do 3D on a handheld "Java Terminal" (a prototype was shown). JSparrow is their approach to bridging the OpenGL and Java worlds, and addresses the following points:

The remainder of the presentation was a combination of slides and a live demo, which can't be reproduced in the minutes. PFU's slides are available at http://www.will.or.jp/~jsparrow/ for the present.

Summary

Jack summarized several aspects of the 3 proposals:
Magician Java4GL JSparrow
Support Windows, Linux, Solaris, Irix
Multiple JVM
Mesa / SGI OpenGL / Sun OpenGL
Multiple OS
Sun JDK
Not sure which OpenGL versions
Windows
Sun JDK
Microsoft OpenGL
Packaging (class/interface structure)

What should go in an interface or class? This affects extensions.

Separate GL and GLU classes ? Single interface
Naming (e.g. vertex vs. glVertex3f)

Overloading or not? This adds test and documentation complexity.

Arrays instead of pointers? This adds ambiguity if the array length isn't encoded in the call name

Type Mapping

No unsigned types in Java - this affects images.

Untyped pointers (e.g. glCallLists) are a problem. Expand to type-specific calls?

Window System

How should we specify non-default visuals? It's hard to get this right.

The Magician abstraction makes it harder to support extensions - must modify to accept abstract types.

Classes for visuals, events, contexts, windows Methods for window creation and context management Methods for window creation and context management
Version Compatibility

We probably want undefined behavior.

Java bindings themselves will need versioning of some sort.

No-op if GL doesn't support the feature ? ?
GL Extensions Build a new class subclassing the GL class All methods are in one class Haven't addressed this yet
Exceptions Methods throw (return?) OGLException - only used in the error pipeline

glError

glError glError
Callbacks (GLU) Create a derived class and override methods ? Java reflection mechanism

Magician's composable pipelines (tracing, error detection, profiling) are "nice", but Sun doesn't believe these belong in the core bindings.

Other issues Sun doesn't think we should address now:

 

Recommendations to the ARB

Who writes the specification?

Resources

We're not yet to the point where a specification can be constructed - probably soon. Jack will maintain the issues/solutions list, forward issues to the ARB list as they emerge, and come up with a plan/schedule for the bindings.

To help this along, we need a lot more feedback from licensees to Jack, particularly on core bindings and window integration.

Conformance

Multitexture proposal - Nvidia will remove the last bits referring to "texcoord set 0". Conformance source will be released to licensees as a separate source module.

General issues on conformance:

Convolution border modes - this is conform only, no mustpass portion.

Remaining conformance proposals still need to be refined; Jon fell behind on this.

Thanks to Nvidia for hosting this meeting!