Das Rätsel des plattformübergreifenden Renderings: Warum die SDL-GPU-API diesen Shader-Ansatz verfolgt
Spielentwickler stehen vor der Herausforderung, effizient plattformübergreifend zu rendern. Unterschiedliche Plattformen (Windows, macOS, Linux, Konsolen) verwenden verschiedene Grafik-APIs (Vulkan, Metal, Direct3D), wobei die Shader-Bearbeitung besonders komplex ist. Der Autor, Mit-Maintainer des FNA-Projekts (ein modernes Porting des XNA-Frameworks), hat Refresh erstellt, eine plattformübergreifende Grafikabstraktionsbibliothek, und einen SDL-GPU-API-Ansatz vorgeschlagen, der verschiedene Shader-Formate wie SPIR-V, HLSL, DXBC und MSL unterstützt. Dieser Multiformat-Ansatz ergibt sich aus dem Mangel an einer standardisierten Shader-ISA aufgrund unterschiedlicher GPU-Architekturen und Interessenkonflikten der Hersteller. Shader als Inhalt und nicht als Code zu behandeln, ermöglicht Flexibilität in den Kompilierungsprozessen. Der Ansatz verarbeitet vorhandene Shader (wie den FX-Bytecode von XNA) und vermeidet den immensen Aufwand, eine eigene Shader-Sprache zu erstellen, wobei die praktische plattformübergreifende Darstellung im Vordergrund steht.