membran  (E-Mail nur eingeloggt Sichtbar) am 18.04.2017 14:00 Uhr
Thema: Re:Scorpio mit FreeSync und HDMI 2.1 (VRR) Support Antwort auf: Re:Scorpio mit FreeSync und HDMI 2.1 (VRR) Support von Seriös
>Toller Post, danke.

Ich hab mich das letzte Mal vor nem Jahr oder so mit der Materie beschäftigt, kann gut sein, dass ich ein paar Dinge durcheinandergeworfen habe. Es hilft auch nicht, dass ein paar Konzepte und Namen doppelt belegt sind (Triple Buffering/Render Ahead und "True Triple Buffering", z.B.) und es gibt noch zig andere Stolperfallen, je nach API (DirectX, OpenGL, Vulkan) und OS Version (iirc war es so, dass unter Win7 der "Desktop Window Manager" für Anwendungen im Fenster oder Borderless Fullscreen besonders gutes Framepacing / Vsync hinbekam, und die Funktion in Win10 so nicht mehr gegeben ist). Und dann die ganze Nummer mit Front/Backbuffer, Swapchain, Input Lag etc pp...

Hier ist ein kurzer Thread mit Antworten von 2013 bis 2016:
[https://gamedev.stackexchange.com/questions/58481/does-directx-implement-triple-buffering]

Bin gerade auf FastSync gestoßen, muss ich mal ausprobieren (soll für Nvidia Maxwell und Pascal Karten verfügbar sein, für Maxwell zur Not über Inspector), vielleicht in Verbindung mit einem Framerate Cap, damit die Karte nicht komplett aufdreht. Ein Grund, warum ich gerne auf 60fps abziele (abgesehen vom offensichtlichem Grund, dass der TV nicht mehr als 60hz darstellen kann), ist, dass die Karte kaum in Schwitzen kommt. Wenn ich mal vergesse, Vsync einzustellen oder ein Spiel im Fenstermodus starte und mein PC 150 oder gar 300fps wuppt (oder wie in diesem BroForce Game, was auf der PS4 so beschissen laufen soll, 1500 fps...), höre ich die Lüfter nämlich auf einmal hochfahren, und das muss ja nun wirklich nicht sein. ;)

Wenn einem der Mehrverbrauch an Strom, höheren Temps und damit Lautstärke nicht stört, könnte man auch Vsync ausmachen und versuchen, auf deutlich mehr als 60fps zu kommen. Das Tearing dürfte einem immer weniger auffallen, je mehr fps man durchgejagt bekommt und gleichzeitig wäre man den Input Lag los.

Ich sollte mir wirklich mal die Fast Sync + FPS Cap (auf 100?) Option angucken.


>>Zudem ist meine alte Aussage zum 45/90 Space- und Timewarp Unterschied stark abhängig von der Implementierung und der jeweiligen Spiel-Engine. Da schlagen sich einige Spiele deutlich besser als andere, bei dem dauerhafter oder selbst kurzer Timewarp sofort unangenehm auffällt.
>
>Hm, ok, gibt es dazu brauchbare Vermutungen wieso das so ist?


Hm, leider keine Ahnung. Bei manchen Titeln griff das SpaceWarp (also Zwischenbildwarping in Bewegungsrichtungen) nicht so gut wie in Dirt Rally, in manchen Titeln ruckelte die Bewegung nach vorne dann merklich, wenn man die 90fps nicht hielt. TimeWarp (das ruckelfreie Umsehen durch Verzerrung des Bildes) dagegen funzte in allen Titeln astrein. SteamVRs Reprojection war anfangs komplett rucklig, vor allem in den Übergangsphasen 45fps-90fps; Ende 2016 hat dann auch Valve asynchrone Reprojection reingepatched (ähnlich wie das Rift es macht) und wurde viel, viel besser. So jedenfalls meine Beobachtung von vor knapp einem halben Jahr. Beide VR Treiber (Rift und OpenVR/Vive) entwickeln sich ja auch ständig weiter, die Spiele werden auch frischgepatched, kann sein, dass das alles nun ein wenig anders aussieht. Ich habe in den letzten paar Monaten auch nur Zeug in VR gespielt, bei dem das Halten der 90fps kein Problem war (eigentlich habe ich 98% der VR Zeit in einem bestimmten Rennspiel verbracht und es war nicht Dirt Rally). Wie dem auch sei, die Art und Weise, wie z.b. Oculus das Zeug auf das VR Display zaubert, lässt sich wohl nicht auf Monitor und TV übertragen. Die Spiele laufen nunmal in 45fps und allein wegen der drohenden Motionsickness müssen sie dafür Sorge tragen, dass das Headset die Illusion der völligen Direktheit aufrecht erhält. Dafür bezahlt man mit leichten Artifakten / Verzerrungen, die einem aber im (leicht matschigen) VR Display nicht allzu sehr auffallen. Viel wichtiger ist es, dass es nicht hinterherzieht oder ruckelt, wenn man sich in VR umguckt(sonst geht man kotzen.), und das haben sie hinbekommen. Der Bonus war eben, dass sie mit SpaceWarp auch noch eine ähnliche Verzerrtechnick für Bewegungen in den Raum hinein hinbekommen haben.

Da diese Techniken aber keine Zwischenbilder berechnen, sondern quasi - wenn die 11.1ms Grenze (=90fps) gerissen wird - einen alten Frame nehmen, diesen anhand aktueller Daten des Headsets (Blickrichtung, Position) und des Spiels (Bewegung der Spielfigur) das alte Bild mithilfe sehr, sehr schneller Bildbearbeitungsalgorithmen hardware-nah verzerren / warpen / zoomen und ans Headset schicken, wenn zur 11ms-"Deadline" kein neuer Frame bereitsteht (und wohl währenddessen im Hintergund weiter am neuen Frame gerechnet wird - das war iirc der Kniff, den Nvidia/MS/AMD/Oculus in der Renderpipeline hinbekommen mussten - noch Zugriff auf den alten Frame zu haben, während der neue berechnet wird, anstatt diesen wegzuschmeißen wie sonst üblich), und das zur Not zur übernächsten Deadline wieder tun und den bereits einmal verzerrten Frame nochmals Verzerren (und u.U. noch ein weiteres Mal, so entstehen dann Artefakte...) ist das eine Technik, die am Monitor mit seiner klareren Bilddarstellung ziemlich hässlich sein dürfte, würde ich vermuten. Es dürfte auch helfen, dass die Linsen der VR Headsets nur einen Ausschnitt aus der Bildmitte wirklich "sehen" (und diesen um das Sichtfeld der Augen "drumherumlegen"), während die Ränder des fertigen Frames gar nicht wirklich im Headset durch die Linsen zu sehen sind - an den Rändern aber die Artefakte besonders fies sein dürften. An einem Monitor würde man natürlich die ganze verzerrte Pracht zu sehen bekommen.
< Auf diese Nachricht antworten >