16. Performance OpenGL: Platform-Independent Techniques
Monday, Half Day, 8:30 am - 12:15 pm
The purpose of Performance OpenGL is to help all OpenGL programmers become aware of how the OpenGL pipeline's design can lead to optimizations that can help the performance of any OpenGL application. For novice OpenGL programmers, the course hopes to impart some "good habits" that every OpenGL programmer should be aware of and use consistently in their applications. For more advanced OpenGL developers, the course presents platform-independent considerations for deploying applications.
The purpose of this course is not to compare vendors' hardware implementations of the OpenGL pipeline, but to work at a higher level where a change in data format or method of sending data to OpenGL could affect performance. It draws generalizations about performance by conducting experiments on specific OpenGL implementations (which remain anonymous). For example, in almost all cases, passing signed image data into OpenGL yields an order-of-magnitude performance decrease.
Because many programmers use higher-level abstractions like scene graphs, as compared to writing programs that only use OpenGL, the course focuses on how library design can affect OpenGL performance. It reviews how performance is affected by design decisions, including the use of encapsulation for object-oriented languages, and summarizes idioms that may reduce negative effects.
The course also addresses the new directions that OpenGL and graphics hardware are taking, by analyzing the issues, options, and performance characteristics of vertex and fragment shaders in OpenGL.
Attendees should be comfortable programming with OpenGL and know how to read programs authored in the C programming language. One topic addresses object-oriented programming's encapsulation paradigm, but this section can be appreciated with only a cursory knowledge of the subject.
Attendees who understand how data flows through the OpenGL pipeline and want to know how best to optimize their portable OpenGL applications.
shreiner (at) siggraph.org
Blue Newt Software
|| OpenGL Performance Estimation and Pipeline Overview
|| Performance Bottlenecks: Causes and Cures
Shreiner and Kuehne
|| GPU Program Evaluation and Performance
Kuehne and True
|| Application Performance and Case Studies
Grantham and True
||Conclusion, Questions and Answers