Die Performance sollte auch
eigentlich nicht dadurch besser werden, dass man zwischen D3D9 und den Grafiktreiber noch eine Übersetzungsschicht schiebt, eher im Gegenteil. Das Spiel nutzt ja nach wie vor D3D9 mit all seinen Problemen.
(In der Praxis ist höhere Performance zumindest auf AMD-Karten im CPU-Limit durchaus machbar, aber das liegt eher am teilweise doch etwas fragwürdigen Treiber, gerade bei D3D9. Bei Nvidia sollte man aber immer niedrigere Performance erwarten)
hroessler schrieb:
Ich rede davon, dass DX11 mehrer RenderTargets asynchron über mehrere Threads füllen kann. As far as I know geht das erst mit DX 11 aufwärts
Deferred Contexts in D3D11 sind ein schlechter Witz.
Eigentlich ist die Idee dahinter zwar dieselbe wie beim Command Buffern in Vulkan und D3D12, allerdings gibt es noch viel zu viele Abhängigkeiten zu globalen Zuständen, die erst beim Aufruf von
ExecuteCommandList bekannt sind, zum Beispiel, in welcher Speicherregion die in der Command List verwendeten Buffer überhaupt liegen. Das kann sich in D3D11 nämlich jederzeit ändern.
Ergebnis: Nvidia unterstützt den Mist zwar nativ im Treiber, skaliert aber nicht besonders gut, weil noch recht viel auf dem Hauptthread erledigt werden muss. AMD lässt es gleich ganz bleiben und verlässt sich auf die D3D11-Runtime-Emulation. DXVK macht quasi das gleiche.