Sondern ich möchte abseits des reduzierten Overheads von Directx12 gerne wissen, warum Directx12 als heiliger Gral für Mehrkernoptimierung gefeiert wird.
Weil die
Schnittstelle an sich das ganze tatsächlich trivialerweise erlaubt. Die Schwierigkeit besteht eher darin, eine Engine drum herum zu bauen, die a) daraus die entsprechenden Vorteile zieht, b) gleichzeitig noch mit Dx11 halbwegs vernünftig funktioniert, und c) alle unterstützten Schnittstellen zumindest so weit abstrahiert, dass man nicht den kompletten Renderer zwei Mal schreiben muss. Und ich denke, dass es in erster Linie daran hapert, denn das kann einfach nicht gut gehen - dafür sind die APIs und v.a. auch die "Best Practices" für die beiden APIs einfach zu unterschiedlich.
Effizientes Multithreading in einem Spiel umzusetzen ist natürlich nicht einfach, aber Vulkan und Dx12 stehen einem dabei im Gegensatz zu den alten APIs nicht mehr im Weg. Mit nem Vulkan-only-Ansatz müsste man sich auch um Dx11-Support nicht mehr kümmern, das traut sich außer id Software allerdings noch niemand.
A propos id: Da gab es doch zum Wolfenstein 2-Launch irgendwo ein Interview, wo sich ein Entwickler über diverse Tricks auslässt, durch das Entfernen des alten OpenGL-Renderers aus der Engine möglich geworden sind, dass sie sich praktisch nicht mehr um Draw-Batching kümmern müssen etc. - findet das noch jemand?
Warum Dice den Dx12-Renderer von BF1 dermaßen vergeigt haben, wüsste ich auch gerne, das ging in BF4 und Dragon Age Inquisition mit Mantle schon mal deutlich besser. Es ist ja in dem konkreten Fall nicht nur so, dass das Spiel mit Dx11 eine Ecke schneller läuft als mit Dx12, mit Dx12 war es auf meinem alten System praktisch unspielbar.
Schaffe89 schrieb:
Wieso soll mit Directx12 abgesehen von der Draw-Call Geschichte und der Overheadreduzierung und bzw wegnehmen des einen stark belasteten Threads, der Profit an FPS aus mehr Kernen steigen und in welchem Titel kann man das begutachten
Ich weiß zwar jetzt nicht, worauf die doch etwas lang geratene Frage jetzt
genau abzielt, aber Rise of the Tomb Raider würde mir generell als Positiv-Beispiel einfallen, das mit Dx11 auf meinem alten Phenom II X6 im Geothermal Valley seine Mühe hatte, 30 FPS zu halten bei vielleicht 50% CPU-Last, mit Dx12 dann aber problemlos mit 50+ FPS im GPU-Limit lief und das bei deutlich
höherer CPU-Auslastung als unter Dx11. Auch der Vulkan-Renderer der kürzlich erschienenen Linux-Version ist im CPU-Limit deutlich flotter als Dx11 unter Windows.
Generell ist Dx12 in vielen der wenigen Spiele, die es überhaupt unterstützen, in einem recht traurigen Zustand, das kann man leider nicht leugnen, aber hin und wieder bringt es eben doch die erwünschten Ergebnisse.
Schaffe89 schrieb:
Also seit ihr Spieleentwickler, um mal direkt zu fragen und hantiert mit der API?
Ich bin der Entwickler von
DXVK, einem Dx11->Vulkan-Wrapper für Linux.
Sicherlich nicht der heilige Gral der Mehrkern-Optimierung, auch wenn intern durchaus etwas Multithreading existiert, aber da steht mir eben in erster Linie das Dx11-Design im Weg und nicht das von Vulkan.