Menü
Developer

Google-Mitarbeiter stellen Shaderc zur Shader-Kompilierung vor

Einmal mehr präsentieren Entwickler aus Googles Reihen eines ihrer Projekte, dass durch Mitarbeit von Außen in der Zukunft den Status eines offiziellen Produkts erhalten könnte.

vorlesen Drucken Kommentare lesen
Google-Mitarbeiter stellen Shaderc zur Shader-Kompilierung vor

David Neto und Dejan Mircevski aus Googles Engineering-Abteilung haben auf dem Open-Source-Blog des Unternehmens über die Veröffentlichung eines neuen Projekts informiert. Shaderc versammelt Werkzeuge, Bibliotheken und Tests, mit denen es möglich sein soll, Grafik-Shader von GLSL nach SPIR-V zu übersetzen. Dafür kommt ein Wrapper um das Referenz-Compiler-Frontend für GLSL Glslang zum Einsatz.

Bei der Entwicklung haben die Programmierer wohl vor allem darauf geachtet, dass Shaderc möglichst einfach einzusetzen ist, um eine größere Verbreitung der GLSL-Compiler-Technik zu bewirken. In der Sammlung stehen unter anderem eine portable und thread-sichere C-API, sowie eine C++-API (headers-only Wrapper um die C-Programmierschnittstelle) und der Kommandozeilen-Shader-Compiler glslc zur Verfügung. Nähere Informationen zum Einsatz sind auf der GitHub-Seite des Projekts zu finden.

Das Projekt ist unter der Apache-Lizenz in Version 2.0 geschützt und steht für Linux und Windows zur Verfügung. Um es nutzen zu können, muss CMake und Python installiert sein, unter Linux ist zudem gcov, lcov und genhtml und unter Windows Visual Studio 2013 Update 4 oder eine neuere Version und Git mit seiner Bash und dem diff-Tool nötig. Die Entwickler weisen darauf hin, dass Shaderc sich noch in seiner Anfangsphase befindet und sich deshalb in der nächsten Zeit noch viel ändern wird.

In der Projektbeschreibung wird deutlich darauf hingewiesen, dass es sich bei Shaderc nicht um ein offizielles Google-Produkt handelt, sondern dass das Unternehmen lediglich den Code besitzt. Sollte das Projekt auf breites Interesse stoßen und Außenstehende zur Mitarbeit motivieren, könnte sich das allerdings ändern. (jul)