OpenGL

ARB Meeting Notes

December 3-4, 1998

Hosted by Metro Link in Fort Lauderdale, FL

Meeting notes taken by Jon Leech, SGI

Attendees

Adrian Muntianu ATI muntianu 'at' atitech.ca
Allen Gallotta ATI alleng 'at' atitech.com
Bill Armstrong Evans and Sutherland armstron 'at' es.com
Bill Clifford Compaq william.clifford 'at' digital.com
Bruce D'Amora IBM damora 'at' austin.ibm.com
Chris Frazier Raycer cfrazier 'at' raycer.com
Dale Kirkland Intergraph kirkland 'at' ingr.com
Dan Brokenshire IBM brokensh 'at' austin.ibm.com
David Yu SGI dyu 'at' sgi.com
Fred Fisher 3Dlabs fred.fisher 'at' 3dlabs.com
Garry Paxinos Metro Link pax 'at' metrolink.com
Igor Sinyak Intel igor.sinyak 'at' intel.com
Jack Middleton Sun jack.middleton 'at' eng.sun.com
Jason Mitchell ATI jasonm 'at' atitech.com
Jon Khazam Intel jonathan.khazam 'at' intel.com
Jon Leech SGI ljp 'at' sgi.com
Kent Lin S3 klin 'at' s3.com
Kevin Lefebvre HP kevinl 'at' fc.hp.com
Kurt Akeley SGI kurt 'at' sgi.com
Mahesh Dandapani Rendition mdi 'at' rendition.com
Matthew Papakipos NVIDIA papakipos 'at' nvidia.com
Michael Gold NVIDIA gold 'at' nvidia.com
Miriam Geller SGI miriamg 'at' sgi.com
Pat Brown Intel patrick.r.brown 'at' intel.com
Paul Jensen 3Dfx pgj 'at' 3dfx.com
Rob Wheeler 3Dfx wheeler 'at' 3dfx.com
Stuart Anderson Metro Link anderson 'at' metrolink.com
Tim Kelley Real 3D kelleyt 'at' real3d.com
Tom Frisinger ATI tfrisinger 'at' atitech.com
Victor Vedovato Micron vvedorato 'at' micron.com

Summary of Discussion Topics


Thursday, December 3

ICD / SI Status

OpenGL 1.1 ICD has shipped. This frees up SGI resources to apply to OpenGL 1.2.

GLU 1.3 code is nearly ready for beta. It will go out soon for testing by licensees who have OpenGL 1.2 implementations.

OpenGL 1.1 SI code merge with optimized Intel code is running inhouse now. Available within 2 months.

OpenGL 1.2 without ARB_imaging available before March. 1.2 complete in March.

Java Bindings

Jack Middleton ran this segment. 3 bindings were presented at the September ARB meeting. Jack created an issues list based on ARB and email list feedback; responses to the issues were received covering Magician and (very recently) JSparrow. Jack suggested Magician as a baseline and reviewed their response (also available in PDF).

Jack brought up two other points on behalf of Sun. First, due to trademark issues, we should not use the name "JavaGL". He instead suggests "JavaGL(R) Bindings for OpenGL(R)". Second, Sun wants to allow for Magician's composable rendering pipelines as a vendor layer but not require them in the base spec.

Conformance

This is intended to be the final definition round for conformance tests, followed by online voting for the code once that's ready. Some licensees are starting to make 1.2 implementations available in advance of the new SI, so conformance has become a higher priority.

texdecal - Nvidia and Rendition pointed out a problem with this test at the last ARB meeting. It should use max(epsilon.texture,epsilon.color) as the error bound, in cases where texture depth exceeds frame buffer depth.

blend - Should be done iff the imaging subset is supported. Don't use 0.5 as the blend value - use 0.5 + an epsilon corresponding to the frame buffer resolution.

All imaging operations which do complex arithmetic - assume no more than 8 bits precision/component internally and compute error bounds based on that.

color matrix - use non-random values in the last two columns. Set up the matrix so that two components are permuted, one component is undersaturated, and one is oversaturated. Use some matrix elements with magnitude > 1 and some negative elements.

color table - start proxy query at 32 entries (guaranteed to be supported) and double, so it's guaranteed to fail. Use the same (1/(max(FB resolution,table resolution)) error epsilon throughout. Check if the alpha test ECP is appropriate. Change the RGB maps so they independent ramp 0 -> 1/2, 0 -> 1, and 1 -> 0.

convolution - relax error tolerance due to the cascaded operations. Need to look at the specified kernels and images again, though this can easily be changed once the test proper is available.

edge clamp - use a solid green texture with BORDER_COLOR blue. Use a larger texture with a distinct interior color (red).

histogram - increase mustpass size to 16. Allow for +/- 1 bin slop in where samples fall.

minmax - return to non-black, non-saturated colors.


Friday, December 4

Extensions

EXT/ARB Extension Policies (Chris Frazier)

Chris distributed a document discussing IP issues in multivendor extensions and suggesting how to deal with them.

ARB_texenv and EXT_texenv_op

Mahesh updated status of the proposed EXT_texenv extension. He looked at passing arrays of enums to TexEnv to specify the entire blending equation at once; Kurt felt that this wasn't consistent with the rest of the API.

Michael Gold and Tom Frisinger presented the EXT_texenv_op specification ATI and Nvidia are working on. EXT_texenv has taken a long time; their extension is proposed as a vendor-specific alternative in the interim.

EXT_texenv_op takes multitexture to the next stage, exposing much more of the capabilities of their texture pipelines. Other hardware has similar capabilities soon; they looked for a reasonable subset many vendors could agree on, with an easy mechanism to layer additional vendor capabilities as separate extensions using the same interface.

EXT_texenv_op specifies an operation, operands to the operation, and sources of the operands. RGB and A (alpha) operations are split, and crossover between the two is allowed.

Kurt asked how to distinguish new from old operations, and why there's a merged RGBA operation when RGB and A are available separately (principally for convenience).

Could the TexEnv MODE be used to specify operations, instead of TexEnvOperationEXT? There's possible ambiguity with MODULATE.

Specifying such complex blending operations requires a lot of fine-grained API calls. Should we revisit using dlists to encapsulate these state changes, or vectors of arguments ala Mahesh's proposal for EXT_texenv?

EXT_texenv_op provides a*b; Nvidia supports a more general (a op b) op (c op d). How to layer this?

TexEnv(... mode, OPERATION)
TexEnv(... operation, ADD_MODULATE_01_MODULATE_23)

Or,

TexEnv(...mode, A_OP_B) /* or AB_OP_CD */
TexEnv(...operation, ADD)

Jim Bushnell proposes texture environment objects:

BeginEnv()
/* specify ops */
EnvEnv()

Determing what expressions are supported is complicated. One mechanism would be to provide a very general interface, and indicate the set of supported expressions through the extension string. Instead of a validation mechanism, this describes an entire family of supported expressions.

To drive these questions to closure, there's interest in having a weekly conference call among interested vendors - discuss with Jim.

WGL Extended Pixel Formats

Steve Wright joined by telephone. Returning to the 1.1 ICD briefly, Steve asked that people let him know if they haven't received the CD. About 30 copies are out now. It will be announced on the same day as the next monthly hardware newsletter comes out (December 14).

Dale discussed Intergraph's original proposal. Given a pixel format descriptor, it would allow selectively turning on extended capabilities. The SGI approach mirrors GLX by increasing the number of pixel formats, always enabling all extended capabilities for an individual PFD. Intergraph is probably agreeable to using this approach.

Steve said that it may be too late to get this extension into NT5, which is approaching Beta 3, but he'll try to squeeze it in. He's also concerned about the support burden of two parallel mechanisms for obtaining PFDs, as done in the SGI approach - he'd prefer either two completely separate code bodies, or layering the old code on the new internally.

IHVs interested in WGL extensions should notify Steve Wright of their interest. Microsoft is probably willing to manage an enumerant / name registry, analogous to the GL and GLX registries, or hand it off to SGI. Microsoft agreed to create a reserved enumerant space for WGL by 1/1/99.

Dale and/or Michael will propose a WGL extension "bootstrapping" mechanism (so a WGL extension string can be queried).

Texture Compression

Mahesh provided an update on this. Since compression is a texture parameter, why require a compressed internal format parameter for TexImage?

Jon pointed out that the definition of texture completeness should be extended to require the same compression method on each mipmap level.

Kurt thinks texture management issues should be dealt with by the scene graph - OpenGL doing it makes life difficult for a scene graph trying to do the same thing.

There's no way to query what compression method was actually applied - should there be a new TexLevelParameter to return this?

Conformance (cont.)

packed pixels - added a readback in packed format. Note that color epsilon changes per component for packed formats. Added _REV formats to mustpass. Michael will update the test.

rescale normal - since either NORMALIZE or RESCALE_NORMAL may be used, the tests should allow for either. Remove nonuniform scale from mustpass.

separate specular color - there are only 10 distinct results in 48 cases tested. Could just pick these 10 and use for mustpass. There could be trouble with picking a point close to the vertex given the laxness allowed for color interpolation.

texture lod control - need to talk offline with Chris Frazier to figure out how to test LOD selection.

texture3d - Tim and Chris will discuss changes to the test and get back to Jon.

Next Meeting

3DFX will host the next ARB meeting, March 1999 in Santa Clara, California.

Thanks to Metro Link for hosting this meeting!