Optimizing OpenGL Based Software Systems through Reverse Engineering
Date
2007-12
Authors
Sullivan, Joseph E.
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
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.
Description
Keywords
computer graphics, reverse engineering, application software, mathematical optimization, computer software
Citation
Sullivan, J. E. (2007). Optimizing OpenGL based software systems through reverse engineering (Unpublished thesis). Texas State University-San Marcos, San Marcos, Texas.