Fallout 4 Version 1.03: Neue Benchmarks - Drawcall-Limit als Fps-Killer

Omg was ist mit der 960gtx passiert?
Als die Karte neu herauskam siedelte die von der Performance sich unterhalb einer 780gtx an, mit Windows 10 zog die Karte nur noch mit der 770gtx gleich und jetzt ist die sogar noch langsamer geworden.

Witcher 3 konnte man mit Windows 8.1 und den Treibern vom letzten Sommer mit der 960gtx auf ultra Details spielen, heute geht das nicht mehr unter Windows 10.

Ähnliches sah man ja mit den Kepler Karten letztes Jahr, da wurde auch viel getrickst um die 970gtx attraktiver zu machen.

Nvidia braucht mal wieder Konkurrenz...
 
Hi PCGH_Phil,
hast du mal versucht mit dem Tweaker: Fallout 4 Configuration Tool - By Bilago at Fallout 4 Nexus - Mods and community einstellungen für jedermann heraus zu finden. Am besten eine gute Mischung aus Leitung und Grafik ;). Frohes schaffen noch :).

Wäre interessant ob eine Kombination diverser Ini-Tweaks und vielleicht auch mancher Mods wie z.B diesen Insignificant Object Remover at Fallout 4 Nexus - Mods and community zu einer merklichen Verminderung der Draw Calls führen würde.
 
Man kann mit dem Konsolenbefehl twf den wire frame mode einschalten. Dann sieht man genau, welche Objekte die Engine rendert.

Stimmt, guter Tipp :) Hatte ich gar nicht mehr im Hinterkopf. Damit könnte man zumindest Objekte und Landschaftsdarstellung checken. Ich schau mir bei Gelegenheit sicher noch mal ein paar Szenen genauer an, mich nervt die Performance ja auch persönlich beim Spielen.

Sicherlich kann man da auch mit Mods was machen, den Shadow-Fix und Insignificant Object Remover würde ich schon mal für eine gute Anlaufstelle bezüglich Drawcall-Reduzierung halten. Spätestens, wenn das Toolkit rauskommt, geht da wahrscheinlich auch noch mehr.

Gruß,
Phil
 
Ich wiederhole mich, aber diese Engine gehört schon vor Jahren entsorgt.

Nur weil sie dir nicht passt, muss sie noch lange nicht entsorgt werden. Die Creation-Engine ist dank des Moddings immer noch mit weitem Abstand meine Lieblings-Engine, was nicht heißen soll das sie keine Macken hat, vor allem was Performance und Stabilität angeht. Positiv ist aber, dass sie alt ist, und dementsprechend gibt es für fast jedes Problem eine Lösung in den Tiefen des Netzes. Was man natürlich nicht machen darf, ist einfach 500 Mods installieren und auf Play drücken. Ich glaube meine letzte Skyrim-Installation hat 6 Monate gedauert, aber dementsprechend hat sich das Spielen dann auch gelohnt.
 
Habe die Schatten auf mittel und die Godrays auf niedrig, macht optisch kaum einen Unterschied und meine 390 packt WQHD problemlos mit 60fps.
Gerade die Schatten kosten teilweise übertrieben viel Leistung und sind oft für softwareseitige Limitierung verantwortlich.
 
Hi,

Kannst du mir mal spezifisch sagen, was genau du meinst? Mir ist natürlich klar, dass beispielsweise ein hoher Polygoncount nicht gleichzeitig auch eine hohe Anzahl Drawcalls bedeutet, sonst wären wir ja wahrscheinlich schon längst alle in Drawcalls ersoffen ;)
Wenn du das auf den abgebildeten Schutthaufen beziehst, ich wollte nicht, dass man da einen Bezug von Polycount auf Drawcalls herstellt, so wollte ich das nicht verstanden haben - aber das habe ich vielleicht nicht gut genug formuliert. Mir ist eben an ein paar anderen Stellen aufgefallen, dass bei solchen Gebilden häufig auch ein hoher Drawcall-Count vorliegt, das war einfach nur eine Feststellung.

Beim Culling hingegen sehen ich kaum eine andere Erklärung, als dass dieses offenbar massiv mit der Anzahl Drawcalls zusammenhängt. Ich lass mir da aber gern auf die Sprünge helfen :)

Mir ist auch bewusst, dass es bezogen auf den API-Overhead eher unerheblich ist, was die Drawcalls eigentlich bewirken. Aber offenbar ist das ganze bei Fallout 4 nicht sonderlich geschickt gemacht - Wenn ich mir die Szenen so ansehe, muss ich davon ausgehen, dass die dafü+r nötigen Renderanweisungen alles andere als geschickt gebündelt werden. Ich wage mal zu behaupten, in einer anderen Engine würde man für eine ähnliche Szene weitaus weniger Drawcalls benötigen. Vielleicht wäre das auch mit der Creation Engine möglich, falls dem so wäre, hat das Bethesda aber offenbar nicht hinbekommen oder für nicht erheblich eingestuft. Das kann ich aber nicht beurteilen, dafür fehlt mir die nötige Einsicht und/oder Ahnung.

Wie gesagt, ich lass mich gern belehren, falls sich dazu jemand im Stande hielte. =)

EDIT: Btw, die Szene ist, wie ihr schon richtig erahnt habt, kein Worst Case. Meine Steam-Cloud wollte mir gestern aus irgendeinem Grund nicht meine daheim erstellten Saves herunterladen, da hatte ich ein paar noch deutlich heftigere Szenarien. Aber die hier ist schon mal ganz gut, vor allem lässt sie sich reproduzierbar ablaufen und so für Benchmarks nutzen, das klappt leider nicht so einfach mit jeder stark limitierenden Szene.

Gruß,
Phil

Gerne würde ich dir in 3 Zeilen die Holy Grail Antwort geben, aber wie du sicher weißt ist die Materie ein verdammt harter Knochen...
Sollte im Übrigen keine Kritik darstellen und Hut ab vor der journalistischen Leistung, die Charts zu erstellen ;)

Die Poly- Drawcall Geschichte hast du ja schon selbst erwähnt. Zum Thema Culling, die Arbeitsweie stimmt so weit auch, wie dus erklärt hast.
Man muss/kann aber schaun wo diese Optimierung beginnt.
Die gesamten Informationen, die in den Framebuffer geschrieben werden, konkret( vereinfacht :D ) die Objekte( Position der Vertices, Textur- , Farbkoordinaten, ...) werden in einem Szenengraphen abgelegt. Hier kann man vorberechnen ob bei Objekten in der Tiefe( abhängig vom ViewFrustum) eine Verdeckung besteht. In diesem Fall wird der Zeichenbefehl vom verdeckten Knotenpunkt nicht an die GPU (Graphic Pipeline ;) ) übergeben.
Was an Objekten übergeben wurde, wird für den weiteren Gebrauch vorerst im VRam gecached. Stichwort Speicherverwaltung....

Kurzes Rechenbeispiel zu den Größen: Um einen Punkt in homogenen Koordinaten repräsentieren zu können braucht man einen vertex; vector<float> der länge 4.
Für ein "polygon" sind wir also schon bei einem Speicherbedarf von 4Byte. Dazu kommen noch Texturkoordinaten, Normalenposition, etc, ....
Das ganze muss nun erstmal zB. von der Festplatte zur GPU. Genau das ist der Punkt, wo normalerweise der Drawcall overhead entsteht - "wenns Datenstau auf dem Bus gibt".
Das ist zum einen ein Drawcall, oder wenn von der CPU der Befehl kommt: "Actor1 bewege dich so und so"(leider nicht so trivial...) -> mehr Animationen mehr Drawcalls....(anm.: Ragdoll Physik zB, wird (normalerweise...)auf der GPU berechnet, da schneller)

Backface Culling ist auch so ne Geschichte für sich... sobald ein fortgeschrittenres Belechtungsmodell, bzw Shadertechniken benutzt werden, kann man auch nicht einfach pauschal ne Flag auf true setzen...

... ist nicht so ganz einfach das ganze Thema... Optimierung würde Bethesda und auch vielen anderen Studios nicht schaden, dennoch sollte man sie deshalb nicht unbedingt schlecht reden, ehr andere die dies besser machen Loben. (zumindest rein aus technischer Sicht, alles andere sei dahin gestellt, u.a Entwicklungsbudget...)

Mal am Rande.. die Auflösung beeinflusst das Ganze kein Bisschen, da diese nur die Abtastrate bestimmt, bzw alles ab dem Fragment, bzw PixelShader.
Bei diesem Artikel fehlen mir persöhnlich vorallem leider die Busgeschwindigkeiten und deren Anbindung. Interessant fänd ich vorallem, wie sich die IGpus schlagen.

hoffentlich hat die Erklärung dem ein oder anderen gefallen, Korrerkturen gerne, aber alles was Tiefer geht, wird mir grad zu ausschweifend ;)

EDIT: soll natürlich nicht verteidigen, dass die Optimierung teilweise unter aller Sau ist. Aber Bethesdas miese QA ist ja leider nichts neues
 
Zuletzt bearbeitet:
Wow genialer Test:daumen::pcghrockt:


Bethesda muss unbedingt an einer neuen Engine arbeiten oder lizensieren und seine Programmierer schulen! Was in FO4 abgeliefert wurde ist einfach unfassbar.
Die Rolltreppe ist ja der Oberhammer, Maus 2mm nach rechts 20% FPS verloren und über 40% mehr Drawcalls, ohne das sich am Bild was ändert :wall:
 
Wow genialer Test:daumen::pcghrockt:


Bethesda muss unbedingt an einer neuen Engine arbeiten oder lizensieren und seine Programmierer schulen! Was in FO4 abgeliefert wurde ist einfach unfassbar.
Die Rolltreppe ist ja der Oberhammer, Maus 2mm nach rechts 20% FPS verloren und über 40% mehr Drawcalls, ohne das sich am Bild was ändert :wall:

Ich hoffe auch das Gamebryo endlich ausgedient hat. Ich hoffe sie übernehmen entweder Unreal 4 oder die Engine von ID die Doom 3 verwendet.

Gamebryo hat uns seit Morrowind schöne Stunden beschert, besonders bei Skyrim geriet ich ins Staunen was diese Engine eigentlich noch kann (besonders auf der Xbox 360). Fallout 4 sieht auch zweckmässig aus. Es ist atmosphärisch und zeichnet ein (für mich) annehmbares Bild. Da ich im Konterprogramm Witcher 3 spiele kriege ich aber direkt mit wie eine 2015er Open World Engine aussehen und laufen muss. Ja auch bei TW3 hat man mal Framedrops, aber ohne Mikroruckeln und nie unter 40 FPS. Selbst dann kann ich nachvollziehen warum die Frames fallen (Sumpf,Nebel etc.). In vollen Städten läuft es dagegen butterweich (ladezeitenfrei auch wenn ich Häuser betrete) und das Level of Detail ist schön unauffällig. Bei Fallout verliert gefühlt alles was 3 m weg ist mindestens 10 Detailstufen.

Gamebryo ist einfach überfordert und veraltet. Die Taktung ist an die FPS gekoppelt, schlechte Performance, Ladezeiten sind viel zu lang und so richtig Open World ist es auch nicht, da alle Locations instanziert sind. Und dabei sieht sie nichtmal richtig gut aus, recycelte Texturen aus Vorgängern, weiterhin hölzerne Figuren ohne Mimik die einen anstarren.Schickt sie bitte in Rente und dazu gleich die "Bethesda Formel". Erkundung ist schön und gut, aber ich will gute Quests (hier wieder der Vergleich mit TW3) und nicht nur prozedural generierten Blödsinn. Ich brauch keine Ruinen durchsuchen wenn ich eh in jeder Waffenkiste die in der Loottable für mein Level vorgegebene Grütze finde. Das war schonmal besser. Repetetive "Ghule vor Sanctuary" Quests braucht auch keiner, eher New Game Plus mit neuen Inhalten.
 
Nur weil sie dir nicht passt, muss sie noch lange nicht entsorgt werden. Die Creation-Engine ist dank des Moddings immer noch mit weitem Abstand meine Lieblings-Engine, was nicht heißen soll das sie keine Macken hat, vor allem was Performance und Stabilität angeht. Positiv ist aber, dass sie alt ist, und dementsprechend gibt es für fast jedes Problem eine Lösung in den Tiefen des Netzes. Was man natürlich nicht machen darf, ist einfach 500 Mods installieren und auf Play drücken. Ich glaube meine letzte Skyrim-Installation hat 6 Monate gedauert, aber dementsprechend hat sich das Spielen dann auch gelohnt.

Blödsinn, jede Engine ist modbar, müssen die Entwickler bloß halt erlauben. Ich mein Best Case gibts Open Source dann sind sogar Frostbyte Spiele plötzlich die am besten modbaren Engines :ugly:
 
Werfen Sie außerdem einmal ein Auge auf die GPU-Auslastung, hier kann man sehr schön erahnen, wie unterschiedlich die Architekturen arbeiten. Der AMD-GPU schmeckt die serielle Fütterung mit Daten offenbar überhaupt nicht, sie schaltet sich quasi ständig zwischen Volllast und Idle-Betrieb hin und her - das ist sicherlich ineffizient. Die Nvidia-GPU schaltet sich bei mäßiger Fütterung offenbar nur teilweise ab und verhält sich eher wie die CPU. Extrem viel Leistung liegt hier wie dort brach.
Wegen genau dieser Eigenart der AMD Last im CPU/VSync-Limit wurden hier im Forum schon einige Threds eröffnet. Die Leute sind regelmäßig sichtlich irritiert über die dauernden 100%-0%-100%-0% Sprünge. Schön dass ihr das jetzt auch mal reproduziert - wenn auch in einem komplett anderen Zusammenhang.

Und offensichtlich ist dies normal und führt zu keinem abnormalem Perormanceverhalten - die Frametimes sind schließlich unauffällig. Trotzdem dürften schon einige Leute (grundlos) ihre Radeon deswegen umgetauscht haben. :schief:
 
Klasse Artikel - danke :daumen:

Im Endeffekt ist es ja die Engine, die hier derartige Drawcall-Schwankungen verursacht - ob DX 12 da viel gebracht hätte ?

Mich würde übrigens auch mal brennend interessieren, wieviel Draw-Calls bei Arma 3 und auch DayZ so gestemmt werden müssen (bei maximalen Settings) ;)
 
Zuletzt bearbeitet von einem Moderator:
Gut das mir teil 3 nicht wirklich passte. Denn irgendwie passt mir teil schon finanziell und technisch nicht. Geld gespart und für das ärgern mit dark souls 3 ist gerettet.
 
Wegen genau dieser Eigenart der AMD Last im CPU/VSync-Limit wurden hier im Forum schon einige Threds eröffnet. Die Leute sind regelmäßig sichtlich irritiert über die dauernden 100%-0%-100%-0% Sprünge. Schön dass ihr das jetzt auch mal reproduziert - wenn auch in einem komplett anderen Zusammenhang.

Und offensichtlich ist dies normal und führt zu keinem abnormalem Perormanceverhalten - die Frametimes sind schließlich unauffällig. Trotzdem dürften schon einige Leute (grundlos) ihre Radeon deswegen umgetauscht haben. :schief:
Genau das hab ich mich gerade auch gefragt, als ich nvidia und amd gpu auslastung verglichen hab, dann dran gedacht, moment mal? das hab ich doch auch ....

So wie ich das jetzt auch verstehe Limitiert der Drawcall also, dass gpu und CPU nicht an ihre Grenze arbeiten können? (Bestes beispiel, Nvidia cpu und gpu auslastung?)

So ein verhalten sehe ich die ganze Zeit bei Arma ... 20-30 % CPU und manchmal sogar nur eine gpu die sich auf 600 MHZ Runtertaktet, weil sie sich langweilt :what: (Liegt oft bei 800-900, jedoch eben nie auf 1010 mhz)
Obwohl es eventuell auch an die Server liegen könnte :ka:
 
Klasse Artikel - danke :daumen:

Im Endeffekt ist es ja die Engine, die hier derartige Drawcall-Schwankungen verursacht - ob DX 12 da viel gebracht hätte ?

Mich würde übrigens auch mal brennend interessieren, wieviel Draw-Calls bei Arma 3 und auch DayZ so gestemmt werden müssen (bei maximalen Settings) ;)

Natürlich. Der Punkt ist doch, dass man mit DX12 deutlich mehr DrawCalls verarbeiten kann.
Folglich hätten die vielen Draw Calls mit DX12 höchstwahrscheinlich nicht zu diesen performance Problemen geführt, selbst wenn die Engine große Schwankungen hat. 100.000 Draw Calls sollen mit DX12 ja kein großes Problem sein, wenn ich mich recht erinnere...

Natürlich hätte man genauso gut die Engine entsprechend optimieren können, aber ich vermute mal, dass man mit DX11 trotzdem schlechtere Performance erreicht hätte, auch wenn die Engine entsprechend gut arbeiten würde, die Limitierung ist schlichtweg da, diese zu umgehen erfordert wahrscheinlich extrem viel Know How und tiefgreifende Änderungen an der Engine. Witcher 3 wäre der einzige Titel, der mir einfallen würde, der das in nennenswertem Maße geschafft hat.

Aber egal. Letzten endes führt kein Weg an DX12 vorbei.
 
Zurück