• Mitspieler gesucht? Du willst dich locker mit der Community austauschen? Schau gerne auf unserem ComputerBase Discord vorbei!

Test World of Warcraft: DirectX 12 macht AMD schneller, Nvidia bricht ein

@donend

Ja, denn das State/Binding-Model von DX12 bleibt auch mit FL11_0 erhalten, nur gibt es deutlich restriktivere Limits:
https://docs.microsoft.com/en-us/windows/desktop/direct3d12/hardware-support

DX12 FL11_0/1 setzt auf Resource-Binding-Tier1 (Hardware-Tier 1) auf, erst ab FL12_0 wird Resource-Binding-Tier2 die minimale Grenze.
Spiele können aber auch FL11_0 + Resource-Binding Tier 2 mit mehr Ressourcen verwenden, die Forza Spielen machen das z.B.
Ashes of the Singularity verwendet bis zu Resource Binding Tier 3, falls die Hardware es unterstützt.

Das hat an der Stelle nichts mit mogeln zu tun, die API ist vom Feature-Set eben skalierbar.
Und wenn WoW die DX11-API mit FL10 verwendet, dann meinen sie damit auch nicht DX10.

UWP-Apps sollten wie win32-Apps Borderless-Windowed und Windowed unterstützen.
Exclusive Fullscreen ist nicht vorgesehen.
 
Wo ist die 1080Ti und was ist DX12 :D
Sry Leut, sieht für mich als reine Zeitverschwendung aus der Test.
 
Locuza schrieb:
Das hat an der Stelle nichts mit mogeln zu tun, die API ist vom Feature-Set eben skalierbar.
Und wenn WoW die DX11-API mit FL10 verwendet, dann meinen sie damit auch nicht DX10.
Mogeln war vieleicht zu hart geschrieben. Fassen wir es doch mal zusammen:
Performanceverbesserungen unter d3d erreicht man prinzipiell mit dem geänderten d3d11 to d3d12

Pipeline state objekts
d3d11 erlaubt dabei Assambler, Pixelshader und Rasterizier unabhängig voneinander zu modifizieren, was sich Nvidia teilweise zu nutze macht. Dadurch entstehende Interdependenzen schmecken aber DX12 Hardware nicht. Die separate Festlegung hat unter einer DX11-API eben den Nachteil, dass der Treiber die Daten nicht ausgeben kann, ohne zu wissen ob der Status abgeschlossen ist und warten muss. Das ist eigentlich der Overhead der immer wieder entsteht und auch einen Drawcall Overhead erzeugen kann.

Unter d3d12 werden große Teile der Pipeline (Statusobjects) vereinheitlicht. Hardware und Treibern schmecken dabei nativ änderbare dynamische Anweisungen besser, insbesondere der GPU die nur geringe Mengen der Zustandsdaten direkt in die Hardwareregister kopieren muss, das wiederrum reduziert den Drawcall-Overhead pro Frame.

Command list and bundles
Unter d3d11 erfolgt die gesamte Übergabe der Befehle in einem Contex, um dabei Multithread sinnvoll zu unterstützen, wird der Contex per Engine auch zurückgestellt, der dann wiederrum nicht perfekt auf der Hardware abgebildet werden kann.

d3d12 erlaubt "Commandlist-Bundle" die die Informationen für die zu berechnende Szene ingesamt an die Hardware übermitteln (completely), um damit festzulegen welcher GPU Workload reserviert werden muss, inklusive der Textur- und Bufferressourcen. Jeder Container ist dabei "self contained" und ermöglicht es dem Treiber einen "free threaded" auszuführen. Einziger serieller Prozess bleibt dabei die Datenübermittlung an den Treiber. Hier wissen wir ja das Nvidia womöglich diesen unter d3d12 abfängt und ersetzt (rein spekualtiv - womit auch immer).

d3d12 erlaubt auch eine Addition von Commandlist-Bundle, die eine Weitergabe der Zustandsdaten (state inheritance) ermöglicht, z.B. immer dann wenn die Engine zwei Aufrufe anfordert. Aber selbst dann muss der Treiber nur einmal angesprochen werden, wobei dies eben einem "low coast call" entspricht, was den Overhead zu reduzieren hilft.

Diskriptor head and table
(das ich in Grundzügen beschrieben habe)

Ich glaube daher nicht so wirklich daran, dass es Blizzard gelungen ist dieses Modell auf grundlegende Feature die eine Beschleunigung eben dessen ermöglichen, umzustellen und genau deshalb bricht d3d12 auch ein. Ich verstand es so, dass FL 12.1 und 12.0 nur unter runtime d3d12 (und 11.3 - das ja gar nicht groß genutzt wird und nur übergangsweise bereitgestellt wurde) ausführbar sind. Das müsste das Spiel eigentlich deutlich beschleunigen, wenn man visuell, wie in dem Fall kaum etwas ändert.

Das kann dann auch kaum Skalierbarkeit sein, sondern man spricht womöglich nur optinale Feature an, die einem passen, was mit nativem DX12 aber nichts zu tun haben dürfte. Wer entwickelt denn eine neue Engine die up to date 2016 ist? Ich glaube man bei WoW nur umgesetzt hat was finanziell in den Rahmen passte, man bekommt halt nicht viel dafür.

Was Borderless und UWP angeht, wollte Microsoft auf Sweeny's Einsatz hin UWP auch auf eine Art "open source" für Entwickler öffnen, ob sie das bereits in irgend einer Art und Weise getan haben, weiß ich nicht. Ich glaube eher nicht, wenn man den Aussagen von Blizzard Forenmanagern und Borderlessmode traut.
 
Zuletzt bearbeitet von einem Moderator:
DX11 erlaubt das nur aus der Softwareperspektive die States einzeln zu verändert, die Hardware funktioniert aber bei keinem Hersteller genauso wie die Arbeitslogik bei DX11 das einem weiß machen möchte.
Da muss der Treiber häufiger dann schauen, welche API-Logik sich verändert hat und passend für die Hardware gesetzt werden muss und da bezahlt Nvidia genauso den Overhead und hat Hardware Missmatched was das mapping von der DX11 API auf die Hardware angeht.
Die Notation DX11/DX12 Hardware ist sehr krude, da auf keiner Hardware das API-mapping perfekt ausfällt und es unzählige Punkte gibt, die besser oder schlechter der jeweiligen Hardware schmecken, weswegen eine pauschale Bezeichnung vermieden werden sollte.

DX12 abstrahiert die Arbeitslogik mit ganzen PSOs anders und diese Abstraktion gilt allgemein für DX12, egal welches Feature-Level der Programmierer verwendet.
Genauso das ganze Resource-Binding-Model.

Das Problem bei vielen DX12-Implementierungen scheint bei vielen Entwicklern in der richtigen Handhabung von Resource-Barriers zu sein, unter DX12 muss man explizit selber sich darum kümmern, auf welche Ressourcen man wann zugreifen kann und diese auch ändern.
Setzt man Resource-Barriers falsch gibt es Grafikfehler bis Abstürze, setzt man zuviele unnötig ein führt das zu verlorener GPU-Performance.
Daneben müssen die Entwickler natürlich etliche Dinge selber beachten, die Command-Lists müssen selber erstellt werden, wie viele Befehle jeweils abgeschickt werden, wie breit die Erstellung ausfällt, verwendet man Bundles und wie das ganze Resource-Management aussieht.

Die Dinge muss man allgemein gut hinbekommen, wenn man von DX12 profitieren möchte.
WoW könnte auch FL12_0 verwenden, dass würde von der App-Seite nur heißen das man den Treiber abfragt, ob die Hardware FL12_0 unterstützt, wenn nicht, dann läuft das Spiel nicht.
Dabei kann die Engine so miserable wie möglich ausfallen und die FL12_0 Features gar nicht benötigen oder sinnvoll ausnutzen.

Eine Engine-Architektur zu haben, die optimal für DX12/Vulkan zugeschnitten ist, benötigt Jahre.
Es ist vor allem nicht einfach wenn eine große und technisch alte Codebase existiert und WoW hat noch etliche Millionen Abonnenten die das Spiel online spielen.
Blizzard ist jetzt auch einfach den ersten Schritt gegangen, sie schalten ihre erste DX12-Implementierung live für die Endkunden, über die Jahre wird es wie zuvor immer Verbesserungen geben.
 
also prinzipiell verstehe ich diesen wechsel gar nicht, wenn die Performance nicht wirklich besser wird, schlicht sinnlos

das spiel war bei release schon nicht auf der höhe der zeit und der abstand wird von jahr zu jahr größer und die Optik dermaßen weit weg von "hübsch" oder auch nur "passabel", selbst im komiklook hässlich...

2017 habe ich wieder eine zeit reingeguckt und da fällt mir nur ein wort dazu ein "augenkrebs", wäre mal zeit für was neues, aber Titans haben sie ja leider eingestampft

naja werde vlt trotzdem wieder reinschaun, falls das addon nicht Unsummen kostet und die grafik "ausblenden", wie bei dota2 :D (ja dies ist eine Kritik an der grafischen Darstellung, ohne Übertreibungen, dann würde das Fazit heftiger ausfallen)
 
Zulgohlan schrieb:
also prinzipiell verstehe ich diesen wechsel gar nicht, wenn die Performance nicht wirklich besser wird, schlicht sinnlos

Vielleicht wollen sie einfach Erfahrungen mit DX12 auf PC sammeln, und zwar nicht nur unter Laborbedingungen sondern in freier Wildbahn. Das was sie jetzt bei einem Spiel, das sie in und auswendig kennen, ausarbeiten und testen könnte vielleicht einem späteren neuen Spiel zugute kommen.
 
War es nicht mit DX11 damals auch so dass es anfangs nicht so toll war und noch reifen musste?
 
DocWindows schrieb:
Vielleicht wollen sie einfach Erfahrungen mit DX12 auf PC sammeln, und zwar nicht nur unter Laborbedingungen sondern in freier Wildbahn. Das was sie jetzt bei einem Spiel, das sie in und auswendig kennen, ausarbeiten und testen könnte vielleicht einem späteren neuen Spiel zugute kommen.

da wirst du vlt gar nicht mal so unrecht haben
 
alfi40 schrieb:
.... Aber noch immer kein multi-core supprt...
Natürlich,schon seit BC bis Cata 2Kerne, ab MoP bis zu 4, siehe mein vorheriger Beitrag hier, und diverse Benchmarks im Netz von PCGH.
 
Warum stellt ihr nicht einfach auf DX11 wenn es euch so stört?...
 
Weil das zu einfach wäre. ;)
 
Zulgohlan schrieb:
also prinzipiell verstehe ich diesen wechsel gar nicht, wenn die Performance nicht wirklich besser wird, schlicht sinnlos

Quatsch... Das ist eine Anpassung für die Zukunft oder denkst du DX11 wird ewig unterstützt? Gerade in WoW geht es darum die Engine nach vorne zu bringen.
 
Wartet mal ab. Ich gehe davon aus dass sich die Entwickler noch mit dem Feintuning beschäftigen werden. DX12 ist vermutlich auch da neu und man muss erst Erfahrung sammeln.
Bis dahin kann man immer noch umstellen ;)
 
Eben, wichtig war es erst mal auf DX12 zu gehen damit es da ist. Das Feintuning kann man danach immer noch machen. Ich denke mit dem nächsten oder übernächsten Major-Patch wird es da noch Verbesserungen geben.
 
Man sieht hier wieder mal mehr als deutlich, dass NVIDIA noch kein Hardware Support für DirectX 12 hat, sondern nur die API softwareseitig unterstützt.

Schade, dass AMD mit diesem Lapsus mehr Werbung macht bzw mehr Kapital daraus schlägt.
 
Schade ist höchstens, dass so eine Rückständigkeit von nVidia auch noch als technologischer Vorsprung gefeiert wird. ;)
 
Genscher schrieb:
Man sieht hier wieder mal mehr als deutlich, dass NVIDIA noch kein Hardware Support für DirectX 12 hat, sondern nur die API softwareseitig unterstützt.
[...]
Unsinnige Behauptung.

Dark_Knight schrieb:
Schade ist höchstens, dass so eine Rückständigkeit von nVidia auch noch als technologischer Vorsprung gefeiert wird. ;)
Eine Rückständigkeit die in Fall von WoW hauptsächlich vom Entwickler kommt und nicht von der Hardware.
 
riloka schrieb:
War es nicht mit DX11 damals auch so dass es anfangs nicht so toll war und noch reifen musste?
Wann wurde der DX11 Support bei WoW nochmal eingeführt?
Ich kann michg aktuell nur daran erinnern das nach dem Vorbereitungspatch für Cataclysm die Performance bei manchen Abschnitten katastrophal war. Beispielsweise brach die Framerate beim Verlassen von Sturmwind massiv ein, was mit den Bäumen zusammengehangen haben muss. Je mehr Bäume man vom Wald sehen konnte desto schlimmer wurde es. Ein paar Patches später war das Thema Geschichte.
Ergänzung ()

Locuza schrieb:
Unsinnige Behauptung.
Weil?
Soweit mir bekannt ist können die aufgebohrten DX11 Versionen (11.2/3) genau das was die Geforce Karten können. Funktionen wie Async Compute, welche nur bei DX12 nutzbar sind, kann man hingegen in der Hardware lange suchen. Das bezog sich zwar primär auf Kepler und Maxwell aber ich wüsste nicht das sich daran allso viel geändert hat.
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: Genscher
Weil die pauschale Aussage "kein DX12 Hardware Support" völlig grotesk ist.
Die API und die Umsetzung davon besteht aus millionen von Einzelteilen, wie kann man sich da eine Sache herauspicken und meinen deswegen gibt es keinen DX12 Hardware Support?

GCN Gen 1-4 (7000/8000/200/300/400/500 Series) unterstützt auch kein DX12 FL12_1, soll man jetzt behaupten die können sowieso kein "echtes DX12"?
Maxwell v2 dagegen unterstützt DX12 FL12_1.
 
  • Gefällt mir
Reaktionen: mithraldur
Dann widerlege es doch einfach.
Welche DX12 Funktionen die nicht bereits Bestandteil der DX11 Varianten waren werden in Hardware unterstützt?
Genau darum geht es ja bei dem Posting das du als Unsinnige Behauptung abtuen willst, der Funktionsumfang der Hardware.
Ergänzung ()

Noch so nebenbei, die von dir angesprochenen Radeon Serien unterstützen ab GCN 2 FL12_0, das natürlich ebenfalls DX12 entspricht, und die GCN 1 Generation ist meines Wissens nach trotz DX11.1 Support bereits mit Async Compute Support per Hardware dabei und das gute 3 Jahre vor der Maxwell Serie und gute 4 Jahre vor Windows 10.
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: Genscher
Zurück
Oben