Ich wollte ursprünglich zusätzlich zu den jeweiligen Befehlen den Performancegewinn/-verlust auf meinem System dabei schreiben.
Dazu wollte ich das interne Benchmark Tool benutzen und habe gestern einige ziemlich langweilige Testreihen gemacht.
Folgende Erkenntnisse:
1. Die Performance im Benchmark hat praktisch nichts mit der Performance im Spiel zu tun. Egal, ob ich normales Gameplay oder Zwischensequenzen betrachte.
2. In jedem Testdurchlauf waren meine durchschnittlichen FPS laut Auswertung deutlich geringer(!) als meine minimalen FPS.
Ergo: das Tool ist Humbug oder zumindest auf meinem System nicht zum Testen geeignet.
Die meisten Einstellungen hier setzt man am besten direkt in die oben beschriebene user.cfg, es ist aber u.U. sinnvoll vorher mit der Konsole zu testen.
Ich habe noch nicht alles hier getestet und alles hier spiegelt nur meinen aktuellen Wissensstand da. Wenn ihr Fehler findet oder etwas besser wisst, korrigiert mich bitte.
Vielleicht mache ich irgendwann noch ein paar Vergleiche mit Fraps oder so, aber bis dahin erstmal nur ein paar Befehle ohne objektiven Performancebericht, nur mit meiner persönlichen Wahrnehmung oder wenigstens Einschätzung:
Performance Monitoring und Systeminfos
Folgende Befehle blenden aktuelle Performancedaten ein oder zeigen Informationen zu Einstellungen und System an. Die am besten direkt im Spiel in der Konsole eingeben, nicht in die user.cfg
FPS einblenden:
Code:
PerfOverlay.DrawFps 1
Performance Graph zeichnen:
Code:
PerfOverlay.DrawGraph 1
CPU/GPU Auslastung anzeigen (nützlich um zu sehen welche von beiden die Performance begrenzt):
Code:
PerfOverlay.DrawCPUGraph 1
PerfOverlay.DrawGPUGraph 1
Systeminfos einblenden:
Code:
Render.DrawScreenInfo 1
Triple Buffering
Zu so ziemlich keinem Trick um ein paar mehr FPS zu bekommen hab ich der Art widersprüchliches gelesen, das war auch der Hauptgrund warum ich das ursprünglich selber durchtesten wollte.
Aus technischer Sicht sollte Triple Buffering die Performance bei aktiviertem VSync erhöhen/stabilisieren im Tausch gegen etwas höhere Speicherauslastung..
Ich habe aber auch Guides gesehen die empfehlen das Feature zu deaktivieren um die Performance zu verbessern oder das ganze sogar als Alternative zu VSync empfohlen haben, was keinerlei Sinn macht. Laut wieder anderen ist Triple Buffering in der Engine so oder so automatisch an...
Würde mich über Erfahrungen anderer damit freuen, da ich ehrlich gesagt mittlerweile selbst recht verwirrt bin was das ganze jetzt in DA:I bewirkt.
Dies ist eine der Einstellungen die man am besten in der user.cfg unterbringt.
Zum aktivieren:
Code:
RenderDevice.TripleBufferingEnable 1
Zum deaktivieren:
Code:
RenderDevice.TripleBufferingEnable 0
Triple Buffering bedeutet kurz gesagt, dass drei Bilder im Voraus berechnet werden um die Performance mit VSync zu stabilisieren.
Es wird meist zusätzlich empfohlen, eine Einstellung namens "renderdevice.renderaheadlimit" auf 2 zu reduzieren, was aber Triple Buffering so weit ich verstehe ad absurdum führt, da dann wieder nur zwei Bilder im Voraus berechnet würden...
Andere, meist die die auch empfehlen Triple Buffering komplett zu deaktivieren empfehlen sogar das "renderdevice.renderaheadlimit" auf 0 zu setzen, was angeblich auch einen Performance Boost bringen kann.
Zusammengefasst sind die Erfahrungen hier sehr widersprüchlich und wahrscheinlich sehr vom System abhängig.
Werde das weiter testen, würde mich aber wie gesagt über Berichte anderer freuen.
Rein logisch würde ich Einstellungen wie die hier empfehlen:
Code:
RenderDevice.TripleBufferingEnable 1
renderdevice.renderaheadlimit 3
Motion Blur
Das ist der Verwischeffekt der über das Bild gelegt wird wenn z.B. die Kamera geschwenkt wird. Ist Geschmackssache, ob man's mag; das Deaktivieren lässt das Spiel zumindest subjektiv etwas flüssiger laufen.
Auch ein Befehl den man am besten in die user.cfg packt.
Code:
WorldRender.MotionBlurEnable 0
Es gibt Guides die an der Stelle mehr Befehle beinhalten; die sind hier einfach überflüssig, aus ist aus.
Ambient Occlusion (Umgebungsverdeckung)
Um AO komplett auszuschalten, nutzt ihr folgenden Befehl (wieder in die user.cfg):
Code:
WorldRender.DynamicAOEnable 0
Ja, den gibts auch direkt in den Spieleinstellungen. Der direkte Befehl geht aber anscheinend über die normale Einstellung hinaus. Es gibt einige die dadurch noch ein paar mehr FPS als nur durch das deaktivieren in den Optionen bekommen haben.
DirectX 11
Wenn es ganz extreme Performanceprobleme gibt, gibt es den Tip DX11 komplett zu deaktivieren und auf die Version 10 zurück zufallen:
Code:
RenderDevice.Dx11Enable 0
RenderDevice.Dx11Dot1Enable 0
RenderDevice.Dx11Dot1RuntimeEnable 0
Auch in die user.cfg
Dabei sollte angemerkt werden, dass DX 11 auch einige Features enthält die die Performance erhöhen, so dass dieser Tipp wohl wieder sehr systemabhängig ist!
LightTileCsPathEnable
Code:
WorldRender.LightTileCsPathEnable 0
user.cfg...
Ich habe ehrlich keine Ahnung was das tut. Hat anscheinend was mit Berechungen bei Lichtquellen zu tun. Auf bestimmten GPUs kann es anscheinend die Performance etwas verbessern die Einstellung abzuschalten, und das ohne merklichen Unterschied in der Optik. Also warum nicht?
Supersampling
Eine der interessantesten Möglichkeiten die ich gefunden habe ist das aktivieren von Supersampling.
Die anderen Tricks hier sollen die Performance über die normalen Spieleinstellungen hinaus erhöhen. Der hier verbessert die Optik noch weiter, aber mit immensen Einbussen bei der Performance!
Praktisch bewirkt die Einstellung, dass das Bild mit einer höheren Auflösung als eingestellt gerendert und dann runter gerechnet wird. Der Effekt ist im Prinzip eine sehr hochwertige Form der Kantenglättung. Kann, wenn man die Reserven hat, also eine der Anti-Alias Optionen ersetzen oder sogar ergänzen.
Das ist übrigens die selbe Einstellung wie einer der Regler in den Grafikoptionen. Der lässt sich aber nur auf 1.0 oder kleiner einstellen. Mit dem manuellen Befehl kann man einen beliebigen Wert setzen.
Auch hier wieder in die user.cfg
Code:
Render.ResolutionScale 1.0
Achtung:
"1.0" heisst das Bild wird in der eingestellten Auflösung berechnet und angezeigt, default also. Mit "2.0" würde das Bild mit doppelter Höhe und doppelter Breite berechnet, wäre also viermal so gross! Das Wachstum des Bildes und damit auch die Anforderung an die GPU sind hier quadratisch, d.h. 1.0 -> 1x, 2.0->4x, 4.0->16x! Wenn ihr ~2-fache Größe wollt, nehmt ihr den Wert "1.4".
Es ist hier sinnvoll erstmal im Bereich 1.0 bis 2.0 zu testen, alles andere gibt selbst aktuelle Hardware wohl nicht wirklich her.