Jetzt macht das mit den hundert Tabs auch mehr Sinn, wenn ich drüber nachdenke.![]()

Ja. Auf der GPU müssen sie das. Aber nicht auf der CPU.Insbesondere das Rendering eines Spiels gilt als Flaschenhals: Dabei müssen Berechnungen gemäß dem aktuellen Spielgeschehen in einer bestimmten Reihenfolge erfolgen
Ich gehe jetzt mal einfach über die Tatsache hinweg, dass du hier den 2600X und 8700K vergleichst.
Warum sind die Intel schneller in Spielen?
Gibts da noch andere Gründe? Speicher? Andere Faktoren? Software? Engine??
Um mal auf den Gamestar-Artikel zurückzukommen:
Ja. Auf der GPU müssen sie das. Aber nicht auf der CPU.
Ein einfacher Forward-Renderer macht ungefähr sowas hier:Wieso das aber zu einer besseren Multicore-Skalierung führen soll, würde ich mich schon fragen
Fakenews.
Taktbereinigt sind die ziemlich gleich flott.
Ich gehe jetzt mal einfach über die Tatsache hinweg, dass du hier den 2600X und 8700K vergleichst.
Dennoch frage ich mich gerade eines:
In meinem vorhergehenden Post kann man ganz gut sehen, dass die Prozessoren (2700X/2600X/8600K/8700K) bei gleichem Takt praktisch die gleiche SC-Leistung aufweisen.
Also Takt gleich, IPC gleich, etc.
Warum sind die Intel schneller in Spielen?
Gibts da noch andere Gründe? Speicher? Andere Faktoren? Software? Engine??
Und nein, das bedeutet nicht, dass ich dir bedingungslos zustimme, Schaffe.
Kombiniere ich Zen2 mit einer in "multidimensionalen" Verbesserung in Form von bis zu 5Ghz Taktraten (bei IBM laufen im Übrigen 10 Kerner mit 5,2Ghz dank 7nm), einer IPC Steigerung von X Prozent durch Architekturverbesserungen, weiteren Verbesserungen der Caches und Latenzen und eine 50-100 prozentige Steigerung der Kerne und ich erhalte ein Gesamtpacket, bei dem Intel die nächsten Jahre nicht mehr konkurrieren können wird. Und das sind Fakten.

Jedes, wirklich jedes Spiel, das mindestens im Jahr 2015 herauskam (einige Ausnahmen schon vorher) nutzt MINDESTENS bis zu 8 Threads/Kerne! Meistens werden aber mitlerweile sogar bis zu 16 Threads ausgelastet in aktuellen Spielen. Selbst das 2015 Rainbow Six Siege lastet die 16 Threads bereits ohne Probleme aus, einen SMT6 oder 4 Kerner kann man mit entsprechend hohen FPS Raten locker auf 100 Prozent bringen.
Ich kann diese ewigen Lügen der blauen postfaktischen Anhängerschaft nicht mehr lesen.
Jedes, wirklich jedes Spiel, das mindestens im Jahr 2015 herauskam (einige Ausnahmen schon vorher) nutzt MINDESTENS bis zu 8 Threads/Kerne! Meistens werden aber mitlerweile sogar bis zu 16 Threads ausgelastet in aktuellen Spielen. .
OK, ja ne is klarComputerbase auch? Alle keine Ahnung außer du?![]()
Wie willst du sonst die Spiele- IPC vergleichen? Prozessoren mit unterschiedlicher Kernzahl?
Latenzen zum Beispiel, sind bei Intel deutlich geringer, Ringbus ruled halt noch.
Da gehts um das Rendering bevor die GPU etwas macht, das Rendering der Welt, die Zeichenbefehle die an die GPU geschickt werden.
Die sind unter Directx11 durchaus etwas limitiert, da die Renderinglast ungleichmäßig verteilt war und ein Thread stärker belastet wurde.
Das hat man jetzt mit Directx12 abgemildert und besser verteilt.
Wieso das aber zu einer besseren Multicore-Skalierung führen soll, würde ich mich schon fragen, eher das Gegenteil ist der Fall, wenn man mal auf BF1 unter Directx12 schielt.
Ashes of the Singularity ist ein Strategiespiel mit sehr vielen Einheiten und fällt unter die paar Spiele in denen noch eine Gewinn durch mehr Cores generiert werden kann.
Directx12 führt nicht per se zu einer Nutzung von mehr CPU Cores, eher entlastet es die CPU Cores und dadurch hängt man auch mit weniger Kernen schon im GPU Limit und braucht eher weniger Kerne/Threads damit es flüssig läuft.
Directx12 bringt einfach viel weniger als man sich das eingestehen will, deshalb wird es in der aktuellen Form auch die nächsten Jahre verschwinden und durch etwas anderes ersetzt werden.
Hat das neue Battlefield überhaupt noch einen Directx12 Modus? Ich glaube nicht.
Tatsächlich verbessert DirectX/Vulkan die Mehrkernauslastung nachdem man die DirectX CommandList im Gegensatz zum alten DirectXContext halt ohne Lock ansprechen kann.
Natürlich wird es immer sequentielle Teile innerhalb einer Anwendung geben, so auch beim Rendern. Aber es geht nicht um diese Teile, es geht darum, was man beim Rendern parallelisieren kann.
Die Artikel bei CB oder GameStar sind weder irreführend noch Desinformation, daran ändert auch ein Directx12 nichts, weil die Punkte die dort geändert werden keine gute Kernskalierung auslösen, sondern den Overhead der vorher bei DirectX x11 ab und zu auf einem Thread lag nun auf etwas mehr besser verteilen, das ist die Quintessenz für FiSi s wie mich. Deswegen bringen aber nicht plötzlich mehr Kerne was, sondern grade auf CPUs mit wenigen hat das den größeren Vorteil. So extrem wie das hier aber dargestellt wird ist es auch nicht, DirectX x11 besitzt durchaus schon ein gutes Multithreading um die GPU vernünftig zu füttern, man hat sich halt damit arrangiert und das was man bisher sehen kann ist, dass die Skalierung mit mehreren Kernen bei jeder DirectX x12 Portierung geringer wird.
Wie VikingGe das schon technisch ausgeführt hat, und man das auch nachlesen kann Stimme ich dem doch völlig zu, das löst aber wie bereits schon mehrfach gesagt keine Abhängigkeiten vom Mainthread oder ist dafür zwingend verantwortlich dass ein Spiel über einen 4 Threads oder 8 Threads Prozessor noch hinaus skaliert. Assassins Creed ist ja kein DirectX x12 Spiel, genauso wenig wie BF1 das unter DirectX x11 besser nach oben skaliert.
Wie kann das sein? Lieblose Portierung?
Oder vielleicht ein gezielter Over Hype von DirectX x12?

Der D3D11DeviceContext selbst ist ja nicht einmal thread-safe und hat dementsprechend kein internes Lock. Würde auch wenig Sinn machen, weil ein internes Lock allein nicht sicherstellen kann, dass die ganzen Befehle auch alle in der richtigen Reihenfolge ankommen.Mango2Go schrieb:Sprich der Großteil eines Draw-Calls läuft seriell ab mit zusätzlich noch den Kosten für einen Lock.

Der D3D11DeviceContext selbst ist ja nicht einmal thread-safe und hat dementsprechend kein internes Lock. Würde auch wenig Sinn machen, weil ein internes Lock allein nicht sicherstellen kann, dass die ganzen Befehle auch alle in der richtigen Reihenfolge ankommen.
Gibt zwar (seit kurzem) ID3D11Multithread und irgendwas ähnliches in D3D10, aber das sind externe Locks, das kann man auch von Hand implementieren. Sollte man aber nicht, da kann man besser mit Deferred Contexts arbeiten, auch wenn deren Konzept etwas fehlgeleitet ist und die selbst einiges an Overhead mitbringen.
Am besten dürfte es für die Performance nach wie vor sein, den ganzen D3D11-Rendering-Kram in einem Thread zu erledigen und alles andere, was irgendwie indirekt mit Rendering zu tun hat (Sichtbarkeitstests etc.) so weit wie möglich asynchron dazu laufen zu lassen. Witcher 3 wäre so ein Spiel, das tatsächlich nur den Immediate Context verwendet und trotzdem hervorragend läuft.
Den GDC-Talk werde ich mir aber auch mal ansehen, insofern danke für den Link![]()
Wäre ja dumm für Single-Thread-Anwendungen den Lock-Overhead mitzuschleppen... Es kommt schon vor das ein Immediate Context mit einem gut gewählten Lock-Typ davor mehr bringt als ein Deferred Context. Aber unterm strich sehe ich das ähnlich. Bei DirectX 11 lässt man das lieber in einem Thread.Genau das macht die neue Unity Engine auch. Es wird ein hoch optimiertes Job System und eigener JIT Compile verwendet, der sogar C++ schlagen soll. Es geht nicht nur darum, zu parallisieren, sondern auch den Parallelisierungsoverhead zu minimieren. Die Engine skaliert übrigens auch mit 12 Kernen....![]()
Aber ja, mit dem Unity Job-System setz ich mich im Moment auch auseinander
Ich find Unity eh ziemlich gut gemacht, ich finde nur das Actor System in Unreal besser gelöst als dieses komplett strikte Entity Component-System in Unity. Aber sonst ist Unity einfach besser mittlerweile. Ich freu mich sehr auf den neuen Shader-Node-Editor! Ich hasse GLSL und HLSL...^^ Allerdings ist *schlägt C++* immer relativ^^ Glaub mir, du kannst in C++ immer anfangen dreckig zu spielen und bekommst es dann nochmal schneller. Geht aber auf kosten der Lesbarkeit oder Einfachheit. Ich wäre immer vorsichtig mit Aussagen wie XY ist schneller C++. C++ kann immer auf C und inline ASM runter. Und auch in der Spieleentwicklung ist Performance nicht alles^^ Lesbarkeit ist bei solchen Projekten umso wichtiger 
Jo, genau das macht das Unity System auch, Minus das Coroutinen welche das Scheduling sehr effizient gestalten. Ist echt super niceAber ja, mit dem Unity Job-System setz ich mich im Moment auch auseinander
Ich find Unity eh ziemlich gut gemacht, ich finde nur das Actor System in Unreal besser gelöst als dieses komplett strikte Entity Component-System in Unity. Aber sonst ist Unity einfach besser mittlerweile. Ich freu mich sehr auf den neuen Shader-Node-Editor! Ich hasse GLSL und HLSL...^^ Allerdings ist *schlägt C++* immer relativ^^ Glaub mir, du kannst in C++ immer anfangen dreckig zu spielen und bekommst es dann nochmal schneller. Geht aber auf kosten der Lesbarkeit oder Einfachheit. Ich wäre immer vorsichtig mit Aussagen wie XY ist schneller C++. C++ kann immer auf C und inline ASM runter. Und auch in der Spieleentwicklung ist Performance nicht alles^^ Lesbarkeit ist bei solchen Projekten umso wichtiger
![]()