OpenGL

ARB Meeting Notes

June 22-23, 1998

Hosted by 3Dlabs in London, England

Meeting notes taken by Jon Leech, SGI

Attendees

Allen Gallotta ATI alleng@atitech.com
Alligator Descartes Arcane descarte@arcana.co.uk
Bill Armstrong E&S armstron@es.com
Bill Clifford DEC/Compaq william.clifford@digital.com
Bimal Poddar Intel bpoddar@pcocd2.intel.com
Bruce D'Amora IBM damora@austin.ibm.com
Chris Frazier Raycer cfrazier@raycer.com
Chris Thornborrow PixelFusionchris@pixelfusion.com
Dale Kirkland Intergraph kirkland@ingr.com
Dan Brokenshire IBM brokensh@austin.ibm.com
Dan McCabe S3 danm@s3.com
David Kirk Nvidia dk@nvidia.com
David Yu SGI dyu@sgi.com
Deanna Hohn 3dfx hohn@3dfx.com
Eamon O Dea PixelFusioneamon@pixelfusion.com
Igor Sinyak Intel igor.sinyak@intel.com
Jack Middleton Sun jackm@eng.sun.com
Jeremy Morris 3Dlabs jeremy.morris@3dlabs.com
Jon Leech SGI ljp@engr.sgi.com
Kevin Lefebvre HP kevinl@fc.hp.com
Mahesh Dandipani Rendition mdi@rendition.com
Matt Papakipos Nvidia papakipos@nvidia.com
Michael Gold Nvidia gold@nvidia.com
Miriam Geller SGI miriamg@sgi.com
Nathan Tuck Raycer ntuck@raycer.com
Pedro P. Ramos Real3D pedro@real3d.com
Phil Huxley 3Dlabs phil.huxley@3dlabs.com
Ralf Biermann Elsa AG rbierman@elsa.de
Tom Frisinger ATI tfrisinger@atitech.com
Zahid Hussain TI zhus@daldd.sc.ti.com

Summary of Discussion Topics


Monday, June 22

GLU 1.3 Discusion

Discussion of possible additions to GLU to go with OpenGL 1.2. There were three suggestions: promoting the nurbs_tesselator and object_space_tess GLU extensions to the core, adding a gluBuild3DMipmaps function to go with the new 3D texturing capabilities, and supporting the new packed pixel types in all gluBuildxDMipmaps calls. A straw poll showed majority support for all three. A decisive vote will be held by email after the ARB meeting.

Discussion of versioning issues followed. Since the underlying GL version may vary on a per-context basis, and since GLU is entirely a client-side library, it's easy to produce situations where GLU assumes OpenGL capabilities that aren't available. But it's not practical for GLU calls to check the GL version on a per-call basis. One suggestion is to add a new target such as GLU_SUPPORTED_VERSION to gluGetString, which would return the minimum supported GLU version (ala glXQueryVersion)

Magician

Alligator Descartes of Arcane gave a presentation of their OpenGL Java bindings, Magician. This is available as a self-running PowerPoint presentation from http://www.arcana.co.uk/products/magician/junarb.zip

Need to add David Yu's notes on Magician and Sun's JDK 1.2 status here.

Magician/Java Discussion

Magician is available free for personal use; educational and commercial runtime licenses are available, as are source licenses.

David Yu pointed out that there are two parts to OpenGL bindings: core library bindings and window management/utility library classes. The ARB might be more interested in standardizing the core bindings as a first step.

SGI's Java bindings went a different direction with respect to window system bindings (more like GLX/WGL), but the API bindings are close to Magician.

Alligator said that API bindings were only a few days work, while window system work was much more complex. He thinks Sun JDK 1.2 work doesn't support enough Java implementations (Microsoft is incompatible, and 1.2 is at best going to ship at end of summer '98).

Most Magician users are Windows-based (96% of downloads). There's still value in a portable standard; can consider window system bindings separately.

Sun wants to see a proposal for the core bindings and a separate (later) proposal for window system bindings. They suggest forming an ARB subgroup to develop these proposals. Who other than ARB members should be involved in such a proposal?

IBM thinks that, in the absence of standard Java windowing interfaces, we shouldn't proceed with the high-level bindings. Sun suggests establishing a second working group for this purpose.

SGI agreed to establish a Java interest subgroup. The javagl@postofc.corp.sgi.com mailing list has been created for this purpose. You can add yourself to the list by sending a message containing
subscribe javagl
to external-majordomo@postofc.corp.sgi.com

The javagl list will bring a proposal on low-level bindings back to next ARB meeting.

ARB extensions

EXT_multitexture is the first candidate. Rendition thinks EXT_texture_env can be easily extended for vendor-specific capabilities.

Raycer is concerned about virtualizing texture chains. Is the MAX_TEXTURES query adequate? Do you return the minimum or maximum number of units supported depending on the environment state?

Several types of proxy queries may be relevant: proxy for multiple simultaneously resident textures, proxy for whether a texture chain is supported.

AreTexturesResident doesn't answer the right question for multiple texture images (e.g. whether they're all simultaneously available for texturing). Matt Papakipos thinks that image proxy queries must return the conservative answer: TRUE iff MAX_TEXTURES images of this size can be supported.

Matt P. wants to move for a vote today. Very little support for this; 3dfx wants to hold vote by email. IBM feels strongly that proxy issue needs to be addressed.

Kurt Akeley talked about the background of multitexture. Proxies were not put into the original SGIS_multitexture spec; really hard problem. Should be solved, but too complicated for now.

Will try to hold a vote on ARB_multitexture tomorrow.

Very brief discussion (only mentioning the names as a reminder, really) of other extension specs which may soon be candidates as ARB extensions. SGI will send the location of some of these to the opengl-arb-interest list. Potential candidates include fragment lighting, Blinn-style bump mapping, point parameters, fog coordinate, secondary color.

PixelFusion is interested in driving some of these to completion, particularly EXT_scene_marker. They'll try to form a subgroup to discuss it.

Intel is interested in reviving the INTEL_parallel_arrays extension for their upcoming Katmai processor.

Conformance Proposals

For all tests, state which paths are tested (e.g. should be enabled).

Chris Frazier, who was involved in initial development of the conformance suite, discussed the purpose of the "mustpass" tests.

Rendition & Nvidia both observed that texdecal.c assumes that texture component resolution >= frame buffer component resolution, which is often not the case. This needs to be looked at.

Comments on individual tests:


Tuesday, June 23

Procedural Issues

The ARB is interested in adding new members to represent the new PC IHV community. There's concern about the committee getting too big to make progress, and it's not clear how to do this in a way that's fair to the large number of IHVs.

To begin with, we need to clearly articulate the criteria for adding new members. SGI will do this by the next meeting, and propose ~2 IHVs as candidates for membership, to be voted on by the entire ARB.

The next meeting will be hosted by Nvidia in Sunnyvale, CA in September. Probably 9/15-9/16 (moving to Tue-Wed so people don't have to travel on a weekend).

For the following meeting, both S3 (Bay Area) and Metrolink (Orlando) have volunteered to host. We'll decide later.

Status update - Mark Kilgard is indeed working on a new release of GLUT (3.7). It's currently in beta, should be out soon.

Dale Kirkland asks where to send bug reports on the sample codes from the Addison-Wesley "Red Book". Use opengl-redbook@sgi.com.

Jon will tell Dave Shreiner (one of the people involved in updating the Red Book), to think about how to include the OpenGL 1.2 imaging subset and the upcoming ARB extensions.

Multitexture conformance

Matt Papakipos presented his proposal. Chris Frazier observed that we need to rev the conformance tests to allow for ARB extension tests. This runs into problems with Microsoft licensees, who do not submit conformance results to SGI, and who rely on Microsoft for conformance test updates.

Some Windows licensees may not currently have conformance source access, but MS will ship source as part of the 1.1 DDK.

Comments indicated the need to shrink texture size to 64^2 and window size to 100^2. Get rid of color interpolation in texenv tests?

Multitexture Specification

The spec isn't explicit about how bindings operate. Probably need a table showing how coord sets and textures are routed. This discussion deepened and it became apparent that there are still significant unresolved issues. A subgroup broke out to try and work them out, but did not finish the job, so no vote was held. Discussion and a vote on multitexture will be completed via email.

Conformance Proposals (continued from Monday)

GLX 1.3

Windows-only licensees left at this point, with the understanding that if the Unix licensees agreed on GLX 1.3, they would rubber-stamp the decision (since the bylaws require unanimous approval of specification revisions, but GLX is Unix-specific).

Jon Leech summarized changes between the May and June drafts, then the group discussed and resolved remaining issues:

Pg. 18: Specify that GLX_DONT_CARE is not allowed for GLX_LEVEL [negative levels specify underlay planes in some implementations].

Pp. 18-19: remove comments about "with precedence given to to larger/smaller values..." and "when the value is not specified or if it is specified as..."

Pg. 20: Change "Selection Critera" to "Selection and Sorting Critera". Remove "ignored" rows from the table.

Pg. 22: Remove GLX_BAD_FBCONFIG error return from glXGetFBConfigAttrib (actually, it's not there in the present draft).

Pg. 32: Remove GLX_BAD_CONTEXT error return from glXQueryContext. Instead, specify that a GLXBadContext error may be generated (if round trip to server is involved and ctx is invalid).

Throughout: strike all references to OPTIMAL_PBUFFER_{WIDTH,HEIGHT}, since we haven't defined that behavior very well.

Pbuffer clobber events vs. windows: windows don't generate these events when clobbering each other's ancillary buffers (just standard X damage events). Pbuffers may clobber window ancillary buffers, but will only ever cause GLX_SAVED PbufferClobberEvents when (temporarily) clobbering the ancillary buffers.

Pg. 22: remove GLX_PRESERVED_CONTENTS attribute from glXCreateWindow - now has an attribute list which must (currently) be empty.

Pg. 11: Move first sentence following PbufferClobberEvent struct definition on page 34 to the definition of the GLXPbufferClobber event in section 3.2.

Add GLX_FBCONFIG_ID attribute to table 3.7 on page 38; remove glXGetFBConfigFromVisual on page 22. Add GLX_VISUAL_ID attribute to table 3.1 on page 14. We need to make sure GLX_VISUAL_ID gets added to protocol spec.

Pg. 50: Change to "Each version of GLX supports all versions of OpenGL up to the version shown in table 6.1 corresponding to the given GLX version."

Assign a different opcode for DestroyGLXPixmap and DestroyPixmap to make sure we can distinguish them on the server.

All of Kurt's edits for typos accepted without comment.

Document that table 3.3 may also return GLX_NONE for an FBConfig which doesn't support rendering to windows.

Section 3.4.2 and later: change "X is identical to Y" to "X is equivalent to Y(...GetFBConfigFromVisual(visual))"

Pg. 30: Enumerate cases where the draw drawable is destroyed and what happens (e.g. if the core X11 Window is destroyed, GLX window remains valid - like rendering to the NULL clip, values read back are undefined. Return BadWindow error the next time the GLX window is made current or passed to SwapBuffers.

Pg. 26: Similar clarification on what happens when a pbuffer is damaged - change "effect is undefined" to "effect is the same as if the pbuffer were destroyed".

Vote: all Unix ARB members (HP, DEC, IBM, SGI) in favor. Windows-only ARB members will be polled by email, but for practical purposes, GLX 1.3 is approved modulo the changes discussed in the meeting.

Addendum 7/15/98 All Windows licensees voted in favor by email; GLX 1.3 is now official. The final specification is available as PostScript and PDF.

Thanks to 3Dlabs for hosting this meeting!