Limit schrieb:Was DX12 angeht stimme ich dir zu, aber DX11 ist bereits schon lange nicht mehr adequat. Das sieht man daran wieviel Aufwand getrieben werden muss um die Unzulänglichkeiten von DX11 zu umgehen.
Die Entwickler äußern sich da eher ganz anders und sehen viele Probleme auf der DX12 Seite.
“If you take the narrow view that you only care about raw performance you probably won’t be that satisfied with amount of resources and effort it takes to even get to performance parity with DX11,” explained Rodrigues. “I think you should look at it from a broader perspective and see it as a gateway to unlock access to new exposed features like async compute, multi GPU, shader model 6, etc.”
https://www.pcgamesn.com/microsoft/ubisoft-dx12-performance
Consequently, memory management under DirectX 12 is still a challenge, albeit one that’s evolving. Under DirectX 11 memory management was typically a driver problem, and the drivers usually got it right – though as Baker noted in our conversation, even now they do sometimes fail when dealing with issues such as memory fragmentation. DX12 on the other hand gives all of this control over to developers, which brings both great power and great responsibility. PC developers need to be concerned with issues such as memory overcommitment, and how to gracefully handle it. Mantle users will be familiar with this matter: most Mantle games would slow to a crawl if memory was overcommitted, which although better than crashing, is not necessarily the most graceful way to handle the situation.
https://www.anandtech.com/show/10136/discussing-the-state-of-directx-12-with-microsoft-oxide-games
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.
https://www.notebookcheck.com/Zahlt-sich-DirectX-12-aus-Ein-Game-Developer-packt-aus.199704.0.html
The DX12 API places more responsibilities on the programmer than any former DirectX™ API. This starts with resource state barriers and continues with the use of fences to synchronize command queues. Likewise illegal API usage won’t be caught or corrected by the DX-runtime or the driver. In order to stay on top of things the developer needs to strongly leverage the debug runtime and pay close attention to any errors that get reported. Also make sure to be thoroughly familiar with the DX12 feature specifications.
https://developer.nvidia.com/dx12-dos-and-donts
Vom Prinzip ist der Tenor aber überall gleich. Einen Leistungsvorsprung durch DX12 gibt es nur, wenn man viele Ressourcen in die Optimierung steckt und diese Optimierung auch noch für jede der Architekturen durchführt. Das Ergebnis sehen wir ja bei den bisherigen Titeln und der erhöhte Aufwand dürfte einige Entwickler abschrecken.
Zuletzt bearbeitet: