GDC 2017 | Zahlt sich DirectX 12 aus? Ein Game Developer packt aus.
Im Gespräch identifiziert er zahlreiche Fallstricke bei der Softwareentwicklung und macht direkt klar, dass es nicht leicht ist, die Spiele-Performance mit DirectX 11 zu schlagen. 2016 musste sich Nixxes vor allem mit Early-Adopter-Problemen von DirectX 12 herumschlagen. Fehlende Debugging Tools, spärliche Dokumentationen und langwierige Treiberprobleme machten die DirectX-12-Versionen zu einer mühsamen Erfahrung. Dies führte auch zu den späten Nachreichungen der DirectX-12-Versionen der genannten Spiele. Auch wenn diese Probleme über die Zeit weniger werden, warten weiterhin zahlreiche Schwierigkeiten. Vor allem die Speicherverwaltung von DirectX 12 ist sehr unterschiedlich zu DirectX 11 und anfällig, wenn man den physischen Grafikspeicher überfüllt. Durch den low-level-Ansatz gibt es auch zahlreiche Leistungsunterschiede je nach verwendeter Hardware. Dadurch muss man sehr viele Hardwarekombinationen durchtesten um Performance-Bottlenecks auf den meisten Plattformen zu finden. Zu guter Letzt ist die gewonnene Performance durch den verminderten Overhead leicht verdeckt, in dem man z.b. GPU-limitiert arbeitet. Ein schneller Prozessor und hohe Grafikeinstellungen sowie Auflösungen können die Gewinne maskieren, wodurch der Nutzer keinen Unterschied zu DirectX 11 feststellt. Async-Compute ist derzeit der richtige Weg für die Zukunft, bringt jedoch hauptsächlich auf Konsolen spürbare Vorteile.
Auch ein Entwickler von Ubisoft (für die Assassins Creed Spiele) machte eine ähnliche Erfahrung und meinte in einem späteren Talk das ein direkter Port auf DirectX 12 ohne Optimierungen zu einer deutlich verringerten Performance führte (200% laut Folie).
Mehrere GPUs mit SLI oder Crossfire profitieren von DX12
Multi-GPU mit DirectX 12 ist einer der erwähnten positiven Punkte von DirectX 12. Hier sind die Developer froh über die gewonnene Kontrolle, da AFR im Treiber nicht ideal ist (unberechenbare Ergebnisse, keine Kontrolle, hoher CPU-Overhead). Die meisten Performancevorteile sah Nixxes auch für SLI- und CF-Nutzer bei DX12 verglichen mit DX11. Das mystische Memory Stacking (das volle nutzen des Grafikspeichers beider Karten) wird laut Katsman jedoch nicht kommen. Zwei Grafikkarten mit 4 GB im SLI-Modus werden also weiterhin nur 4 GB Grafikspeicher für die Spiele zur Verfügung stellen. Es wäre technisch zwar wahrscheinlich möglich, aber die Zielgruppe ist zu klein, wodurch man wohl beim einfachen AFR Modus bleibt.
Maximal 10 % Performancegewinne
Zusammenfassend ist eine Umstellung von DirectX 11 auf DirectX 12 laut Katsman ein hoher Aufwand. Memory Management ist der schwierigste Teil von DX12 und man hat auch mit den hohen Erwartungen der Nutzer zu kämpfen. Realistisch ist ein Performancegewinn von maximal 10 %, wodurch sich die Frage für die Developer nach dem Nutzen einer DirectX 12 Version stellt. Katsman ist hier verhalten positiv, es zeigt sich jedoch, dass der DirectX-12-Hype nicht ganz gerechtfertigt war und wir auch in naher Zukunft keine Wunder von API erwarten sollten.
Quelle(n)
GDC 2017 Talks:
"Advanaced Graphics Tech: How to Thrive on the Bleeding Edge Whilst Avoiding Death by 1000 Paper Cuts" von Jurjen Katsman, CEO Nixxes
"Advanced Graphics Tech: Moving to DirectX 12: Lessons Learned"