150 likes | 336 Views
ARB Roadmap Discussion. Sacramento, June 2004. Two Topics To Discuss. How are we doing? and Where are we going? ISV feedback from recent GLSL seminar series 3Dlabs is happy to share this information with the ARB A proposal for a high-level OpenGL roadmap “vision”
E N D
ARB Roadmap Discussion Sacramento, June 2004
Two Topics To Discuss • How are we doing? and Where are we going? • ISV feedback from recent GLSL seminar series • 3Dlabs is happy to share this information with the ARB • A proposal for a high-level OpenGL roadmap “vision” • A (hopefully) helpful framework for the ARB’s upcoming work • The basis for the marketing groups messaging at SIGGRAPH and beyond • The purpose of this presentation is to catalyze discussion • Provide some backdrop for the ongoing ARB technical discussions • To help the marketing group develop a strong and SIMPLE message
3Dlabs Developer Survey • Conducted as part of the recent 3Dlabs GLSL Seminar Series • 3 seminars in U.S., 1 in Canada, 1 in U.K., 1 in Germany • Survey respondents were software developers • Mostly professional applications • Some universities and research labs • Very little representation of the games industry • 153 developers filled in technical surveys • From 100 different companies • Information provided on understanding it could be shared with the ARB
Frequency of OpenGL Spec Updates OpenGL should change more rapidly or more radically This is too fast This is the perfect pace
Importance of Floating-Point Textures • 92 developers (79% of those responding) said they would see benefit from floating-point textures, either 16- or 32-bit Need 16-bit and/or 32-bit fp No benefit Need 32-bit fp Need 16-bit fp
Importance of Superbuffers Work • More than ¾ of returned surveys indicated some aspect of the Superbuffers effort was important to them • Total responses: 119 Incorporating pbuffer functionality (70) Incorporating render-to-texture functionality (91) Render-to-vertex-array (52) Framebuffer flexibility (64) Other (7)
Multiple Render Targets • 79 developers (76% of those responding) said they would like to see the fragment shader be able to write out more than just color/depth values • Total responses: 104 Other More than 10 additional vec4s Only need color/depth 5-10 additional vec4s 1 additional vec4 2-4 additional vec4s
Asynchronous Operations • 80% of respondents said asynchronous operations like image download were important or might be important to them Maybe Yes No
Synchronization Primitives • 33% of respondents (46) said they would use synch controls that provided finer-grained control than glFlush/Finish if they were part of core OpenGL, 45% more said that maybe they would • Total responses: 140 Don’t understand what these are Yes No Maybe
Programmable Tessellation • 83% of respondents had some interest in this feature • Total responses: 139 I use it already Not interested Would use it Might use it
Precompiled/Prelinked Shaders Other No Yes
Shader IP Protection Other Yes No
Some Conclusions from ISV Input • Developers really, really like seeing the standard improve regularly • Well done everyone for the last several year’s worth of effort! • We should keep up this pace • Need continued investment in Working Groups • Strong demand for significant short-term functionality – ideally in 2.0! • Floating point textures and buffers • Multiple render targets • LOTS of developers are waiting for Superbuffers • Must get finished ASAP! • Need synch control / asynchronous vendor or EXT extensions • 3Dlabs is willing to take the lead on these • Build on Nvidia fence extension? • Is Tesselation adequately addressed by the render-to-vertex-array? • If not – we need a new vendor or EXT extension ASAP • Khronos beginning work on binary format for pre-compiled shaders • We should make sure we synchronize with this work?
Detailed Roadmap Target Functionality OpenGL 2.0 OpenGL 2.1 OpenGL 2.2 Standardized High-Level Shading Language Standardized Multimedia Synchronization and Shader Interchange Standardized General-Purpose Computing on Graphics Hardware Core GLSL and supporting API Non-power of two Multiple render targets Point sprite ARB Extensions Superbuffers Pixel buffer objects Floating point textures/buffers Texture Rectangle Core GLSL updates Superbuffers Pixel buffer objects Floating point textures/buffers Texture Rectangle ARB Extensions Render-to-vertex-array (or other tessellation support) Synchronization Asynchronous upload/download Precompiled shaders Shader metafiles New version of WGL/GLX • Core • Render-to-vertex-array (or other tessellation support) • Synchronization • Asynchronous upload/download • Precompiled shaders • Shader metafiles • ARB Extensions • Programmable pixel • packing/unpacking/transferWhat next? 2004 2005 2006
Simple High-level Roadmap Messaging Standardized Multimedia Synchronization and Shader Interchange OpenGL 2.2 Standardized General-Purpose Computing on Graphics Hardware OpenGL 2.1 Standardized High-Level Shading Language Nice Message!Can / should we execute? OpenGL 2.0 2004 2005 2006