+ All Categories
Home > Documents > ARB OGL2 Mar05 - OpenGL

ARB OGL2 Mar05 - OpenGL

Date post: 22-Mar-2022
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
20
© Copyright 3Dlabs, 2001 - Page 1 Update Update OpenGL ARB Meeting March 5-6, 2002
Transcript

© Copyright 3Dlabs, 2001 - Page 1

UpdateUpdateOpenGL ARB Meeting

March 5-6, 2002

© Copyright 3Dlabs, 2002 - Page 2

Takeaways From Last MeetingTakeaways From Last Meeting•Get agreement between 3Dlabs, ATI, and NVIDIA•Continue to update white papers•Develop a proposal for prioritizing the ARB’s efforts•Highest priority items (from the ARB’s perspective) are:

- High-level shading language- Object management harmonization- Basic memory management features- Basic synchronization features

•Lower priority items can be left to the Khronos Group or for OpenGL 2.1

© Copyright 3Dlabs, 2002 - Page 3

PR ProgressPR Progress•Still a lot of positive buzz about OpenGL 2.0•Numerous appearances in the trade news

- Peddie Report- Jon Peddie white paper- CGW- Tom’s Hardware

•Good discussion threads occurring- OpenGL.org- SlashDot

•OpenGL 2.0 tutorial accepted for SIGGRAPH 2002•Comments and requests for additional features are still coming

© Copyright 3Dlabs, 2002 - Page 4

Cooperative ProgressCooperative Progress•3Dlabs, ATI, and NVIDIA have reached broad agreement on how

we should work towards OpenGL 2.0•Open and positive discussions are underway to agree on a

detailed and realistic implementation plan•We broadly agree that:

- Marketing and perception issues are critical to OpenGL- Work will be prioritized to best address commercial ISV requirements- Goals will be aggressive but realistic- Progress must be rapid!

© Copyright 3Dlabs, 2002 - Page 5

OpenGL 2.0 Cooperative FrameworkOpenGL 2.0 Cooperative Framework•Capitalize on the larger OpenGL 2.0 vision, which provides:

- A coherent goal for the OpenGL community to work towards - A powerful marketing platform

•Break implementation into incremental steps, which allows:- Concurrent specification and implementation work- Reduced time-to-market of high-priority revisions (e.g. programmability)- API, specification, and implementation continuity

•Let developer needs inform the design of the revisions- Clearly identify and prioritize developer issues- Engineer solutions that “fit” OpenGL while simultaneously fulfilling the

OpenGL 2.0 vision

© Copyright 3Dlabs, 2002 - Page 6

Technical ProgressTechnical Progress•Third release of white papers occurred on Feb. 25•Changes to papers were driven primarily by three things:

- Continued incorporation of industry feedback- Efforts to define the high priority list of work items for the ARB- Implementation effort within 3Dlabs

•We believe the design for the highest priority items is holding up well

© Copyright 3Dlabs, 2002 - Page 7

Implementation ProgressImplementation Progress•Parser/intermediate code generator is 98% complete

- All examples in shading language white paper have been compiled using this tool

- Only remaining items are loops, user functions, vector notation, matrix notation

- Intermediate code is suitable for translation into assembly- Parser handles pack/unpack programs too- 3Dlabs is willing to provide this code to others to kick start implementations

•OpenGL API commands in shading language paper are being implemented- We are well into implementing the necessary object management stuff- Insight gained from implementation led to many of the V3 white paper

changes- Program objects- Explicit linking- Binding for attributes and uniform variables

- Interested reviewers also helped to influence these changes

© Copyright 3Dlabs, 2002 - Page 8

Implementation ProgressImplementation Progress• We have successfully executed the “brick” example

© Copyright 3Dlabs, 2002 - Page 9

Proposed Path ForwardProposed Path Forward•The following is 3Dlabs’ proposal•ATI has been involved in refining this proposal•Hoping to build additional consensus at this meeting

© Copyright 3Dlabs, 2002 - Page 10

White Papers White Papers ““GL2GL2”” ExtensionsExtensions•Next steps

- Develop extension specifications for the ARB’s high-priority work items- Turn OpenGL 2.0 shading language description into a language specification

•Allows implementation and usage of OpenGL 2.0 features before OpenGL 2.0 spec is finalized

•First draft by June 2002 ARB meeting•Public review draft by SIGGRAPH•ARB approval at Sept. 2002 ARB meeting

© Copyright 3Dlabs, 2002 - Page 11

“GL2” Extensions“GL2” Extensions•Use “GL2” to differentiate these extensions from “EXT” or “ARB”•Functionality from white papers is grouped into manageable

pieces•Shading language support is the highest priority extension•Other extensions to support object management, basic memory

management, and basic synchronization•Various vendor-specific limitations will exist•Specs may change slightly as implementation efforts proceed•Vendors may choose to only implement some of these extensions•Allows interested developers to begin development before

OpenGL 2.0 spec is finalized

© Copyright 3Dlabs, 2002 - Page 12

GL2 Geometry Shader ExtensionGL2 Geometry Shader Extension•Contains most of the OpenGL 2.0 Shading Language white paper•Contains some of OpenGL 2.0 Objects white paper•Some TBD implementation limitations (e.g., no multipassing)•Includes object management for shader and program objects•Does not include aux data buffer support•Functionality:

- Shaders of subtype VERTEX_SHADER and FRAGMENT_SHADER, Get (implementation dependent values for programmability), CreateShaderObject, LoadShader, AppendShader, CompileShader, GetInfoLog, DeleteObject, DeleteObjects, CreateProgramObject, AttachShaderObject, DetachObject, LinkProgram, UseProgramObject,VertexAttribute*, BindAttributeLocation, GetAttributeLocation, GetUniformLocation, GetHandle, GetObjectParameterfv/iv, LoadUniform*

© Copyright 3Dlabs, 2002 - Page 13

GL2 Basic Memory Management GL2 Basic Memory Management ExtensionExtension

• Includes basic memory management from Memory Management white paper (e.g., chapter 2)

•Builds on basics provided in GL2 Geometry Shaders extension•Should provide enough control that apps can get textures and

vertex array objects stored in video memory•Does not include policies (but perhaps it should?)•Functionality includes:

- ObjectPolicy (usage hints only), ClearObjectPolicy (usage hints only),GetObjectPolicy (usage hints only), ObjectPriority, GetObjectPrioirity, DefaultObjectPolicy, DefaultObjectPriority

© Copyright 3Dlabs, 2002 - Page 14

GL2 Basic Synchronization GL2 Basic Synchronization ExtensionExtension

• Includes basic synchronization support from the Asynchronous OpenGL white paper (e.g., chapter 2)

•Functionality includes:- GLsync data type, SyncAlloc, SyncFree, SyncWait, SyncWaitMultiple,

FlushStream, Fence, QueryFence, ConvertSyncToEvent, ConvertEventToSync, StreamSwapBuffers

© Copyright 3Dlabs, 2002 - Page 15

GL2 Image Object ExtensionGL2 Image Object Extension•Support for GL2-style image, texture, and cube map objects •With memory management extension, allows applications to

provide much better information for texture management•Includes items from:

- OpenGL 2.0 Objects white paper- Memory Management white paper- OpenGL 2.0 Pixel Pipeline (i.e., pack/unpack) white paper

•Does not include support for pack/unpack functionality•Functionality includes:

- ImageType, ImageFormat, ImagePos, CreateImageObject1D/2D/3D, CreateTextureObject, CreateCubeMapObject, GetFormats(except for AUX_DATA), IsObject, ObjectParameterf/I, AttachImageObject, UseTextureObject, AttachTextureObject, ImageMask, LoadImage1D/2D/3D, LoadSubImage1D/2D/3D, CopyImage1D/2D/3D, DrawImageObject

© Copyright 3Dlabs, 2002 - Page 16

GL2 Vertex Array Object ExtensionGL2 Vertex Array Object Extension•Support for vertex array objects•With memory management extension, allows applications to store

vertex arrays in video memory•Includes items from:

- OpenGL 2.0 Objects white paper- Memory Management white paper

•Functionality includes:- CreateVertexArrayObject, UseVertexArrayObject, user defined vertex

attribute arrays, texture coordinate arrays, multiple index arrays, VertexArrayPointer, BindArray, DrawIndexedArrays, DrawRangeIndexedArrays, LoadVertexArrayData, LoadVertexArrayFormattedData, StartVertexArrayFormat, AddElement,EndVertexArrayFormat

© Copyright 3Dlabs, 2002 - Page 17

GL2 Buffer Object ExtensionGL2 Buffer Object Extension•Support for buffer and frame buffer objects•With image objects extension, provides render-to-texture and

pbuffer functionality• Includes items from OpenGL 2.0 Objects white paper•Does not include support for aux data buffer•Functionality includes:

- CreateFrameBufferObject, CreateBufferObject, AttachBufferObject,UseFrameBufferObject

© Copyright 3Dlabs, 2002 - Page 18

GL2 Display List Object ExtensionGL2 Display List Object Extension•Support for OpenGL 2.0-style display list objects•With memory management extension, allows applications to store

display lists in video memory• Includes items from:

- OpenGL 2.0 Objects white paper- Memory Management white paper

•Functionality includes:- CreateDisplayListObject, BeginList, DrawList, DrawLists

© Copyright 3Dlabs, 2002 - Page 19

Other GL2 ExtensionsOther GL2 Extensions•Other GL2 extensions could be defined through Khronos or left

for the next phase within the ARB•GL2 Pixel Pipeline Extension – adds support for pixel packers and

unpackers•GL2 Object Policy Extension – adds support for object policies•GL2 Vblank Extension – adds support for synchronizing with

vblank•GL2 Synchronization2 Extension – adds support for

asynchronous commands•GL2 Aux Data Extension – adds support for aux data buffer•GL2 Direct Access Extension – adds support for direct access for

image and vertex array objects•GL2 Advanced Synchronization Extension – adds support for

stream to stream synchronization and triggered work

© Copyright 3Dlabs, 2002 - Page 20

OpenGL 2.0 Proposed TimelineOpenGL 2.0 Proposed Timeline

Siggraph 2003Siggraph 2002 2H02 1H03

OGL 1.4 SpecOGL2 Shading Language Spec

OGL2 Foundation Extension SpecsInitial Extension Implementations

OGL2 Foundation Extension

Implementations

OGL2 SpecInitial OGL2 Implementations

OGL2 Specification

Work


Recommended