VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

Benutzeravatar
Horza Gobuchul sr.
Beiträge: 39
Registriert: Sa 3. Sep 2022, 11:57
Hat sich bedankt: 40 Mal
Danksagung erhalten: 85 Mal

VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

#1

Dies ist eine Kurzanleitung, wie man für Horizons in der VR eine Leistungsteigerung ohne nennenswerte Qualitätseinbußen erreicht. Es geht um Foveated Rendering, dass also nur der Bereich um den Sweet Spot der VR-Brille mit voller Auflösung scharf berechnet wird und weiter außen nur mit geringerern Auflösung, was viel Rechenzeit spart und so zu mehr FPS führt, weniger Reprojektion und weniger Ruckeln.

Dazu hat fholger (Holger Frydrych) ein Tool geschrieben (https://github.com/fholger/vrperfkit). Es läuft mit

• nvidia-Karten (RTX und GTX 16xx aufwärts)
• openVR und oculus
• DirectX 11

Nun die Anleitung.

1) Das VR Performance Toolkit herunterladen. https://github.com/fholger/vrperfkit/re ... t_v0.3.zip.
2) Irgendwo entpacken.
3) Die Datei dxgi.dll kommt in den Ordner ...\EDLaunch\Products\elite-dangerous-64\
4) Den Inhalt der Datei vrperfkit.yml editieren (löschen und durch die folgenden 12 Zeilen ersetzen) zu

upscaling:
enabled: false
fixedFoveated:
enabled: true
innerRadius: 0.3
midRadius: 0.6
outerRadius: 0.8
favorHorizontal: true
debugMode: false
hotkeys:
enabled: true
toggleFixedFoveated: ["alt", "f1"]

5) Die geänderte Konfigurationsdatei vrperfkit.yml nach ...\EDLaunch\Products\elite-dangerous-64\
6) Fertig. Nach dem Start von E:D Horizons kann man sich den Unterschied durch Drücken von ALT+F1 ansehen. Dabei auf die äußersten Ränder achten.

Fazit: Wenig Aufwand, große Wirkung.

PS:
Das Upscaling habe ich absichtlich ausgestellt (false). Das hatte ich früher mal probiert (da hieß das Tool noch openvr_vsr https://github.com/fholger/openvr_fsr) und das Ergebnis für nicht schön aussehend empfunden. Geschmackssache. Wer es ausprobieren will, schreibt oben in die vrperfkit.yml folgendes rein:

upscaling:
enabled: true
method: fsr
renderScale: 2.0
sharpness: 0.0
radius: 0.3
applyMipBias: true

Das Bild wird dann nach dem Rendern künstlich auf die doppelte x- und y-Auflösung hochgerechnet. Wenn man Rechenleistung sparen will, kann man bei renderScale natürlich auch einen Wert unter 1.0 reinschreiben, also etwa 0.8 für 80 % der Auflösung. Ich hatte damals viele verschiedene Einstellungen ausprobiert und wurde optisch nicht damit glücklich.
Folgende Benutzer bedankten sich beim Autor Horza Gobuchul sr. für den Beitrag (Insgesamt 3):
MajorKMarkus (Razor2)DrGremlin
Benutzeravatar
MajorK
Administrator
Beiträge: 127
Registriert: So 7. Feb 2021, 09:59
Hat sich bedankt: 490 Mal
Danksagung erhalten: 267 Mal

Re: VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

#2

Horza Gobuchul sr. hat geschrieben: Mo 5. Sep 2022, 18:15 6) Fertig. Nach dem Start von E:D Horizons kann man sich den Unterschied durch Drücken von ALT+F1 ansehen. Dabei auf die äußersten Ränder achten.
Hallo und danke für die tolle Anleitung.
Hat du schon Erfahrungen mit dem Tool in Odyssey?
Folgende Benutzer bedankten sich beim Autor MajorK für den Beitrag:
DrGremlin
Bild
Benutzeravatar
Markus (Razor2)
Administrator
Beiträge: 750
Registriert: Sa 6. Feb 2021, 15:49
Hat sich bedankt: 1091 Mal
Danksagung erhalten: 854 Mal
Kontaktdaten:

Re: VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

#3

Top, danke für den Hinweis und die Anleitung, werde ich demnächst gleich mal ausprobieren :up:
Folgende Benutzer bedankten sich beim Autor Markus (Razor2) für den Beitrag:
DrGremlin
Viele Grüße, Markus

Bild
Benutzeravatar
TomScott
Beiträge: 426
Registriert: Sa 3. Sep 2022, 16:44
Hat sich bedankt: 130 Mal
Danksagung erhalten: 247 Mal

Re: VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

#4

Vielen Dank für den Beitrag. Eine Frage bitte ich zu gestatten: Das funktioniert nicht mit SteamVR und einer HP-Reverb G2, richtig? (weil ja im Beitrag steht: "openvr und oculus)

Ciao
Tom
Folgende Benutzer bedankten sich beim Autor TomScott für den Beitrag:
DrGremlin
Bild
Benutzeravatar
Horza Gobuchul sr.
Beiträge: 39
Registriert: Sa 3. Sep 2022, 11:57
Hat sich bedankt: 40 Mal
Danksagung erhalten: 85 Mal

Re: VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

#5

@TomScott: doch. SteamVR nutzt OpenVR. Glücklicherweise ist es SteamVR ziemlich egal, welche VR-Brille an ihm dranhängt. Bei mir die Vive Pro, bei Dir die Reverb G2. Da Du auch eine 2080 Ti hast, sollte es bei Dir also problemlos funktionieren.

@MajorK: Habe ich tatsächlich bisher nur in Horizons getestet, da ich kaum Odyssey spiele (die Grafik gefällt mit da in der VR nicht so gut wie die von Horizons). Beide verwenden aber DirectX 11, sollte also auf beiden funktionieren. Im Netz habe ich noch nichts Gegenteiliges gefunden. Ich werde es ausprobieren. Geht ja schnell (siehe oben: einfach zwei Dateien kopieren).
Folgende Benutzer bedankten sich beim Autor Horza Gobuchul sr. für den Beitrag (Insgesamt 3):
TomScottMajorKDrGremlin
Benutzeravatar
Horza Gobuchul sr.
Beiträge: 39
Registriert: Sa 3. Sep 2022, 11:57
Hat sich bedankt: 40 Mal
Danksagung erhalten: 85 Mal

Re: VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

#6

soeben auch in Odyssey ausprobiert: Geht. Genauso wie in Horizons.

Eigenartigerweise gibt es übrigens mit dem Tool sowohl bei Horizons als auch bei Odyssey beim Beenden der Programme über das Menü eine Fehlermeldung: "Elite Dangerous: Odyssey Executable funktioniert nicht mehr". Aber wen kümmert das?

Was ich oben noch vergaß zu erwähnen: Je kleiner die Radien gewählt werden, desto mehr erhöht sich die Leistung. Umso mehr fällt es am Rand dann aber auch auf. Das muss man wohl für jede VR-Brille individuell testen, denn jede Brille hat natürlich andere Fresnell-Linsen verbaut.

Bei meiner Vive-Pro ist zumindest der Bildrand sowieso derartig verzerrt und unscharf, dass ich die Qualitätseinbußen durch das Tool kaum sehe. Es macht sich bei mir durch etwas mehr Flimmern am Rand bemerkbar, wenn ich den Kopf leicht bewege. Damit kann ich leben.
Folgende Benutzer bedankten sich beim Autor Horza Gobuchul sr. für den Beitrag (Insgesamt 2):
MajorKDrGremlin
Benutzeravatar
TomScott
Beiträge: 426
Registriert: Sa 3. Sep 2022, 16:44
Hat sich bedankt: 130 Mal
Danksagung erhalten: 247 Mal

Re: VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

#7

Hallo zusammen,

ich habe heute mal versucht das Tool bei mir auszuprobieren. Dummerweise habe ich drei verschiedene Verzeichnisse in denen sich die Datei 'EliteDangerous64.exe' befindet:

c:\Users\<User>\AppData\Local\Frontier_Developments\Products\elite-dangerous-odyssey-64\EliteDangerous64.exe
c:\Program Files (x86)\Steam\steamapps\common\Elite Dangerous\Products\elite-dangerous-odyssey-64\EliteDangerous64.exe
c:\Program Files (x86)\Steam\steamapps\common\Elite Dangerous\Products\elite-dangerous-64\EliteDangerous64.exe

Es hat bei allen drei nicht funktioniert. Ich habe in allen drei Verzeichnissen die 'dxgi.dll' und die bearbeitete 'vrperfkit.yml' Datei eingespielt. Ich hatte jedenfalls den Eindruck dass sich nichts geändert hat.

Etwas "passiert" ist allerdings im ersten Verzeichnis der obigen Liste: es ist ein vrperfkit.log file entstanden.
Da steht auch etwas drin:

Code: Alles auswählen

13:02:36 [3212] ======================
13:02:36 [3212] VR Performance Toolkit
13:02:36 [3212] ======================

13:02:36 [3212] Current configuration:
13:02:36 [3212]   Upscaling (FSR) is disabled
13:02:36 [3212]   Fixed foveated rendering (VRS) is disabled
13:02:36 [3212]   Debug mode is disabled
13:02:36 [3212] Installing hook for LoadLibraryA from 00007FF88F5C04F0 to 00007FF81D4ED390
13:02:36 [3212] Installing hook for LoadLibraryExA from 00007FF88F5BFBC0 to 00007FF81D4ED500
13:02:36 [3212] Installing hook for LoadLibraryW from 00007FF88F5BFEE0 to 00007FF81D4ED790
13:02:36 [3212] Installing hook for LoadLibraryExW from 00007FF88F5BADC0 to 00007FF81D4ED640
13:02:36 [3212] d3d11.dll is loaded in the process, installing hooks...
13:02:36 [3212] Installing hook for D3D11CreateDevice from 00007FF8888F0560 to 00007FF81D4CCBD0
13:02:36 [3212] Installing hook for D3D11CreateDeviceAndSwapChain from 00007FF8888F06D0 to 00007FF81D4CD050
13:02:39 [17444] Loading DLL at "C:\\WINDOWS\\system32\\dxgi.dll"
13:02:42 [20540] vrclient_x64.dll is loaded in the process, installing hooks...
13:02:42 [20540] Installing hook for VRClientCoreFactory from 00007FF803CE1820 to 00007FF81D4D4CD0
13:02:42 [20540] OpenVR: requested interface IVRClientCore_002
13:02:42 [20540] Installing virtual function hook for IVRClientCore::GetGenericInterface
13:02:42 [20540] Installing virtual function hook for IVRClientCore::Cleanup
13:02:43 [20540] OpenVR: requested interface IVRSystem_012
13:02:43 [20540] Installing virtual function hook for IVRSystem::GetRecommendedRenderTargetSize
13:02:43 [15872] OpenVR: requested interface IVRExtendedDisplay_001
13:03:01 [17444] OpenVR: requested interface IVRCompositor_014
13:03:01 [17444] Installing virtual function hook for IVRCompositor::Submit
13:03:01 [17444] OpenVR: requested interface IVRChaperone_003
13:03:01 [17444] Game is submitting D3D11 textures, creating necessary output resources...
13:03:01 [17444] Trying to load NVAPI...
13:03:01 [17444] Successfully initialized NVAPI; Variable Rate Shading is available.
13:03:01 [17444] Installing virtual function hook for ID3D11DeviceContext::PSSetSamplers
13:03:01 [17444] Installing virtual function hook for ID3D11DeviceContext::OMSetRenderTargets
13:03:01 [17444] Installing virtual function hook for ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews
13:03:01 [17444] OpenVR: requested interface IVRSystem_022
13:03:01 [17444] Raw projection for eye 0: l -1.14798, r 0.985745, t -1.04415, b 1.05111
13:03:01 [17444] Display is canted by 0.00408162 RAD
13:03:01 [17444] Projection center for eye 0: 0.539929, 0.49834
13:03:01 [17444] Raw projection for eye 1: l -0.989199, r 1.15651, t -1.04411, b 1.05613
13:03:01 [17444] Display is canted by -0.00408162 RAD
13:03:01 [17444] Projection center for eye 1: 0.45911, 0.497139
13:03:01 [17444] OpenVR: requested interface IVRSystem_022
13:03:01 [17444] Creating shader resource view for input texture 000002B70C512838
13:03:01 [17444] Creating shader resource view for input texture 000002B70C509A78
13:03:01 [17444] Creating replacement sampler for 000002B6FD6D9020 with MIP LOD bias 0
13:03:01 [17444] Creating replacement sampler for 000002B6FD948AE0 with MIP LOD bias 0
13:03:01 [17444] Creating replacement sampler for 000002B6FD948420 with MIP LOD bias 0
13:03:01 [17444] Creating replacement sampler for 000002B70C2D8160 with MIP LOD bias 0
13:03:01 [17444] Creating replacement sampler for 000002B6FD9481E0 with MIP LOD bias 0
13:03:01 [17444] Creating replacement sampler for 000002B6FD9489E0 with MIP LOD bias 0
13:03:01 [17444] Creating replacement sampler for 000002B6FD9466E0 with MIP LOD bias 0
13:03:28 [17444] Creating replacement sampler for 000002B6FD946DA0 with MIP LOD bias 0
13:03:29 [17444] Creating shader resource view for input texture 000002B70C517478
13:03:29 [17444] Creating shader resource view for input texture 000002B70C512078
13:03:30 [17444] Creating shader resource view for input texture 000002B70C5161F8
13:03:30 [17444] Creating shader resource view for input texture 000002B70C511DB8
13:04:52 [17444] Creating replacement sampler for 000002B6FD948320 with MIP LOD bias 0
13:04:52 [17444] Creating replacement sampler for 000002B6FDB75A20 with MIP LOD bias 0
13:06:20 [15872] IVRClientCore::Cleanup was called, deleting hooks...
13:06:20 [15872] Removing hook to 00007FF803C7E3E0
13:06:20 [15872] Removing hook to 00007FF803C7E300
13:06:20 [15872] Removing hook to 00007FF803C96240
13:06:20 [15872] Removing hook to 00007FF803C99360
13:06:22 [3212] Shutting down
Ciao
Tom
Bild
Benutzeravatar
TomScott
Beiträge: 426
Registriert: Sa 3. Sep 2022, 16:44
Hat sich bedankt: 130 Mal
Danksagung erhalten: 247 Mal

Re: VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

#8

^^^^UPDATE des obigen Beitrages^^^^

Nach einigen Versuchen und Rumspielen funktioniert das jetzt bei mir auch. Es ging bei mir allerdings erst bei Nutzng der originalen 'vrperfkit.yml' Datei mit den entsprechenden Anpassungen wie im ersten Post beschrieben (upscaling: false, Ranges).

Das Ergebnis allerdings stellt mich nicht so zufrieden. Bei eingeschaltetem 'FixedFoveated' erhöht sich die Bildwiederholrate nicht. Es bleibt bei 45fps bei sehr rechenintensiven Szenen (z.B. angedockt in Coriolis Station) bei ODYSSEY. Nur die GPU Last sinkt von 74% auf 59%. Die CPU Last bleibt gleich bei 17%. Ich habe das Tool wieder abgeschaltet.


Ciao
Tom
Bild
Benutzeravatar
Horza Gobuchul sr.
Beiträge: 39
Registriert: Sa 3. Sep 2022, 11:57
Hat sich bedankt: 40 Mal
Danksagung erhalten: 85 Mal

Re: VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

#9

Lieber @TomScott,

bevor Du nun die Flinte ganz ins Korn wirfst, spiele doch einfach mal mit den Radien herum, indem Du sie etwas kleiner wählst. Dadurch sinkt die Rechenlast noch weiter.

Bei mir (auch eine 2080 Ti) konnte ich in Odyssey die Reprojektion drastisch reduzieren. Das kriegst du auch hin.

Wie sieht denn mittlerweile Dein log-File aus? Steht da alles nun so, wie es soll? Die ersten Zeilen sollten z.B. so lauten:

12:22:09 [1140] Current configuration:
12:22:09 [1140] Upscaling (FSR) is disabled
12:22:09 [1140] Fixed foveated rendering (VRS) is enabled
12:22:09 [1140] * Inner radius: 0.2
12:22:09 [1140] * Mid radius: 0.4
12:22:09 [1140] * Outer radius: 0.6
12:22:09 [1140] Debug mode is disabled
12:22:09 [1140] Currently active hotkeys:
12:22:09 [1140] * toggleFixedFoveated 18 112
Benutzeravatar
TomScott
Beiträge: 426
Registriert: Sa 3. Sep 2022, 16:44
Hat sich bedankt: 130 Mal
Danksagung erhalten: 247 Mal

Re: VR-Tool für Elite Dangerous: Endlich "Fixed Foveated Rendering" mit neueren nvida-Karten

#10

Horza Gobuchul sr. hat geschrieben: So 18. Sep 2022, 16:50 Lieber @TomScott,

bevor Du nun die Flinte ganz ins Korn wirfst, spiele doch einfach mal mit den Radien herum, indem Du sie etwas kleiner wählst.
Dankesehr. Ich habe es ja hingekriegt jetzt. Mir gefällt das Resultat aber optisch nicht so. Am Rand ist es extrem pixelig. Fast so wie bei einem Retro-Game. Das ist nicht so schön. Ich habe das jetzt wieder deaktiviert.

Ciao
Tom
Bild
Antworten

Zurück zu „Tools rund um E:D“