Bibliography | Cont, Armin: Analyse der Echtzeitfähigkeit und des Ressourcenverbrauchs von OpenGL ES 2.0. University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Diploma Thesis No. 3194 (2011). 123 pages, german.
|
Abstract | Kurzfassung (english version follows)
OpenGL ES 2.0 (Open Graphics Library for Embedded Systems 2.0) ist eine Schnittstelle zur Entwicklung von 2D- und 3D-Computergrafik-Anwendungen. Die Spezifikation von OpenGL ES 2.0 definiert eine Reihe von Befehlen, mit denen Daten zum und vom OpenGL ES-System übermittelt werden können, mit denen das Zeichnen von Grafiken angestoßen werden kann (Rendering) und Einstellungen für das Rendering durchgeführt werden können. Üblicherweise verwenden OpenGL ES-Systeme für das Rendering physische Grafikkarten (GPUs). Keines der heute verfügbaren OpenGL ES-Systeme mit physischer GPU unterstützt aber die Priorisierung von Anwendungen hinsichtlich der Ausführung von OpenGL ES-Befehlen oder Einschränkungen von Anwendungen hinsichtlich der Nutzung von GPU-Ressourcen. Insbesondere bietet OpenGL ES weder einen konfigurierbaren Scheduler noch die Möglichkeit, Echtzeitgarantien für die Ausführung von OpenGL ES-Befehlen zu erfüllen. Ziel dieser Arbeit ist es, zu untersuchen, inwieweit dennoch sichergestellt werden kann, dass Befehle sicherheitskritischer Anwendungen rechtzeitig ausgeführt werden können. Dazu werden relevante Befehle bestimmt, deren Laufzeitverhalten und Ressourcenverbrauch analysiert wird. Außerdem werden spezielle Szenarien untersucht, um festzustellen, inwiefern das Verhalten von OpenGL ES-Systemen die rechtzeitige Ausführung kritischer Befehle verhindern kann. Schließlich werden Untersuchungsmethoden und Metriken für die Prognose des Ressourcenverbrauchs von OpenGL ES-Befehlen und die Ermittlung der dafür notwendigen systemspezifischen Kennzahlen entwickelt. Die Untersuchung werden auf einigen realen OpenGL ES-Systeme durchgeführt. Dabei wird gezeigt, dass insbesondere das Speicherbelegungsverhalten und die Nutzung der Renderpipeline mit Problemen verbunden sind, die der Erfüllung von Echtzeitgarantien im Wege stehen und nicht auf der Ebene von OpenGL ES gelöst werden können.
Abstract
OpenGL ES 2.0 (Open Graphics Library for Embedded Systems 2.0) is an interface for 2D and 3D computer graphics application development. The specification of OpenGL ES 2.0 defines a set of commands which allow to transfer data to and from an OpenGL ES system, to render graphics and to change settings regarding the rendering process. Some OpenGL ES systems make use of a physical GPU in order to perform rendering. None of the OpenGL ES systems available today neither support the prioritization of applications regarding the execution of OpenGL ES commands nor the limitation of applications regarding their utilization of GPU resources. Particularly, OpenGL ES offers neither a configurable scheduler nor the possibility to fulfill any sort of real-time guarantee regarding the execution of OpenGL ES commands. The intention of this work is to explore to what extend it is still possible to guarantee that commands of safety-critical applications can be executed in time. Therefore, relevant commands are identified whose run time behavior and resource consumption will be analyzed. Furthermore, special scenarios are analyzed in order to determine the impact of OpenGL ES system behavior finishing critical commands in time. Finally, examination methods and metrics are developed to predict the resource consumption of OpenGL ES commands and to determine the required system specific characteristics. Then, some real-world OpenGL ES systems are examined. In doing so it can be shown that their system behavior – especially regarding the utilization of GPU memory and the rendering pipeline – is fraught with problems which make it impossible to fulfill real-time guarantees and which cannot be solved on the level of OpenGL ES.
|