Optimizing OpenGL Based Software Systems through Reverse Engineering




Sullivan, Joseph E.

Journal Title

Journal ISSN

Volume Title



Dynamic execution traces of the OpenGL application programming interface (API) were gathered to identify the functionalities provided by OpenGL. The traces were gathered from the open source implementation of the OpenGL API, Mesa3D. The execution traces were gathered from OpenGL by using a software profiler and three open source driver programs to exercise the API. Several tools were developed to preprocess the execution traces. The tools extracted the call graph information from the execution traces and removed any call chains not related to the driver programs or OpenGL. The tools also formatted the call graph so that it would be acceptable input for the tools used to identify the functionalities. The preprocessed execution traces were then used to identify the functionalities of the API. There were 362 unique functionalities discovered with 1212 edges among them. The functionalities were identified. The hierarchical relationships among the functionalities were examined. Several optimizations, tools, and architectural analysis techniques are discussed using the information gathered.



computer graphics, reverse engineering, application software, mathematical optimization, computer software


Sullivan, J. E. (2007). Optimizing OpenGL based software systems through reverse engineering (Unpublished thesis). Texas State University-San Marcos, San Marcos, Texas.


Rights Holder

Rights License

Rights URI