Tearing trotz Vsync bei bestimmten Spielen

Suspektan

Commodore
Registriert
März 2021
Beiträge
4.667
BEsitze ein Asus oled pro mit AMD 5600H Cpu und RTX3050 Laptop dGPU, bei den bisher von mir genutzten Spielen hat Vsync üblicherweise das Tearing eliminiert.
Das waren z.B.
Ori
Cuphead
gimmick2
Shadow ninja reborn und pocky & rocky reshrined (keine ingame vsync option vorhanden, wird vermutlich zwangsaktiviert sein)
return to castle wolfenstein
mega man 9 aus der Mega man legacy collection 2
mega man 11
MArio64 render96 port
Monsterboy and the Cursed Kingdom

gamecube/ wii emulation mittels dolphin
duckstation PSX emulator

Bei mega man 11 tritt allerdings in unregelmäßigen Abständen ein Fehler auf, der die Framerate vermutlich viertelt (extremes gleichmäßiges Geruckel) und tearing induziert, ich muss dann kurz das Ingame Menü aufrufen und vsync deaktivieren + wieder aktivieren, um diesen Fehler zu beheben.
Geschieht glücklicherweise nicht allzu häufig

Nun habe ich gestern "Gravity Circuit " (steam) spielen wollen und trotz aktiviertem Vsync erhalte ich durchgängig Tearing, das gleiche gilt übrigens auch für das Fangame "Mega Man Rock'n Roll".

Habe bereits verschiedene Settings durchgetestet wie:

Ingame Vsync ein+ amd RAdeon Vsync ein/ aus
Ingtame Vsync aus + amd Radeon Vsync ein
RAdeon openGL Tripple Buffering ein
RAdeon Anti lag: ein/ aus
Radeon 60 fps limit ein/ aus
verschiedene Energiespareinstellungen
Standard Lüftermodus

Notebook befand sich stets im Netzbetrieb

Es handelt sich um ein 60Hz oled Display ohne adaptivesync Unterstützung oder MUX-switch und die problematischen Spiele arbeiten an sich mit fixer 60fps Framerate.

Da das Display stets an die interne AMD Grafikeinheit angebunden ist, müssten doch die Einstellungen in der Radeon Treibersoftware relevant und wirksam sein?
Ich verstehe auch nicht, warum das ingame Vsync setting der beiden genannten Spiele hier keinerlei Veränderung bewirkt

Habe mal recherchiert ob möglicher Gemeinsamkeiten, aber "Gravity Circuit" nutzt die Löve/ Love2D engine, "Mega man Rock'n Roll" die Godot engine, evtl. harmoniert die genutzte API nicht?

RTSS scanline sync tool funktioniert übrigens bei mir grdstzl. nicht wie gewünscht, ich kann zwar den Tearingbereich bedingt verschieben, aber nicht gezielt in den nicht sichtbaren Bereich bzw. wandert der Bereich beim Spielen eben wieder mit.

Jemand eine Idee?
 
Ori ist was Tearing angeht ganz schlimm. Ich habe bei mir den Bildschirm direkt von 144Hz auf 60Hz geschaltet, also nicht begrenzt sondern die Auflösung selber eingestellt und das Spiele - interne Vsync genutzt. Grafikeinstellungen so, dass die 60Hz niemals unterschritten werden.

Das Tearing scheint von der Engine bereits produziert zu werden, noch bevor die GPU da was machen kann. Ungefähr so als wenn ich mir Videos über Tearing anschaue, die bügelt der Treiber auch nicht gerade.
 
Also du stellst an der Radeon rum ... aber du hast ne dedizierte nvidia...

Die wird ja wohl für SPiele den Ton angeben.
Ergänzung ()

Suspektan schrieb:
Da das Display stets an die interne AMD Grafikeinheit angebunden ist, müssten doch die Einstellungen in der Radeon Treibersoftware relevant und wirksam sein?
Es gibt auch Geräte mit Multiplexer, da ist das nicht unbedingt gegeben. zudem kann ohnehin eine GPU rendern während ggf die andere je nach Umsetzung zur Ausgabe dennoch herhalten muss.
 
  • Gefällt mir
Reaktionen: Ja_Ge
frames p. joule schrieb:
Full Screen und Borderless ausprobiert?
Ja, auch exclusive
frames p. joule schrieb:
Was passiert mit Lossless Scaling?
Nie genutzt, ist das nicht recht neu und wie steht das im Zusammenhang mit Tearing?
Es sind doch eh schon 60 fps auf einem 60Hz display, was soll da noch weiter skaliert werden?
Alexander2 schrieb:
Die wird ja wohl für SPiele den Ton angeben.
Weil?
Für so simple Spiele wie die genannten besteht da sehr wenig Grund, zumal eben letztlich das Display an die iGPU angebunden sein müsste.
Wenn ich z.B. im Dolphin emulator direkt zwischen iGPU und dGPU "umschalte " (die iGPU wird wohl immer aktiv sein), tritt auch kein Tearing auf, so lange Vsync in den Emulatoreinstellungen aktiviert ist.


Alexander2 schrieb:
Es gibt auch Geräte mit Multiplexer, da ist das nicht unbedingt gegeben
Ich habe doch geschrieben:
Suspektan schrieb:
Es handelt sich um ein 60Hz oled Display ohne adaptivesync Unterstützung oder MUX-switch

So, habe jetzt vsync in den Nvidia Einstellungen aktiviert und das tearing ist dann komplett eliminiert, selbst wenn ich in den Nvidia Einstellungen die integrierte Grafikeinheit dem Spiel zugewiesen habe.
Aus welchen Gründen auch immer scheint die dGPU sich immer irgendwie zwischenschalten zu wollen.

Ist mir schon damals bei Ori aufgefallen wie trotz Zuweisung zu iGPU die Framerate sich auf dem Niveau wie mit dGPU bewegte.

Muss aber sagen, dass der Lag schon deutlich bei mega man rock'n roll mit aktivem nvidia vsync zunimmt, während mir Gravity Rush ähnlich responsiv wie ohne Vsync erscheint.

Das spielinterne vsync dieser beiden Spiele ist aber echt funktionslos
Alexander2 schrieb:
zudem kann ohnehin eine GPU rendern während ggf die andere je nach Umsetzung zur Ausgabe dennoch herhalten muss.

Mein Argument war ja, dass iGPU seitiges Vsync bei einem Notebook ohne MUX switch doch immer wirksam sein müsste, da das Display an diese direkt angebunden ist und nicht an die dGPU.
Ist quasi das letzte Glied in der Übertragungskette vor dem Display

Offenbar lässt sich die dGPU aber nicht (gezielt) komplett deaktivieren, außer vielleicht über das BIOS.
Dieses Verhalten ist für mich nicht nachvollziehbar, wenn man schon entsprechende Optionen zur individuellen Programmzuweisung anbietet
 
  • Gefällt mir
Reaktionen: Alexander2
Nuja, wenn tatsächlich die Nvidia Rendert und nen Bild zusammengesetzt aus eigentlich 2 oder mehr (Tearing) ausgegeben als Einzelbild in den Buffer der iGPU schreibt. .. ohne Technische Details zu kennen ich würde erwarten, das die iGPU keine Info darüber hat, das das Bild eines ist das aus 2 oder mehr Zusammengeschudtert wurde.
Die Nvidia Karte müsste dann so eine Info schon mitgeben, aber ich glaube halt das findet der Einfachheit auch garnicht statt.

Jeder überprüfung, jeder weitere Check sorgt für mehr Latenz.

Teste doch einfach die Einstellungen der Karte die rendert. Lange drüber zu Philosphieren führt zu nichts wenn wir nicht die genauen Specs kennen und getestet ist es schneller...
Ergänzung ()

Suspektan schrieb:
So, habe jetzt vsync in den Nvidia Einstellungen aktiviert und das tearing ist dann komplett eliminiert, selbst wenn ich in den Nvidia Einstellungen die integrierte Grafikeinheit dem Spiel zugewiesen habe.
Ok, hat sich ja erledigt, ich hatte mich gerade erst darauf konzentriert wo du mich zu erwähnt hast.
 
Alexander2 schrieb:
Nuja, wenn tatsächlich die Nvidia Rendert und nen Bild zusammengesetzt aus eigentlich 2 oder mehr (Tearing) ausgegeben als Einzelbild in den Buffer der iGPU schreibt. .. ohne Technische Details zu kennen ich würde erwarten, das die iGPU keine Info darüber hat, das das Bild eines ist das aus 2 oder mehr Zusammengeschudtert wurde.
ja, hmm, wäre natürlich (leider) denkbar
 
  • Gefällt mir
Reaktionen: Alexander2
Suspektan schrieb:
Nie genutzt, ist das nicht recht neu und wie steht das im Zusammenhang mit Tearing?
Es sind doch eh schon 60 fps auf einem 60Hz display, was soll da noch weiter skaliert werden?
Ist für mich bei Retro-Emulation absolut essenziell, gerade bei z.B. 360 Spielen, die mit 30fps in 720p laufen, die kommen super raus mit Skalierung auf 60fps 1440p -- Fable 2, Forza Horizon 1, Kingdom for Keflings

Ich hätte vermutet, dass die Spiele tatsächlich nicht mit 60fps laufen, daher die Frage. Schön, dass es jetzt wieder klappt.
 
  • Gefällt mir
Reaktionen: Ja_Ge
Zurück
Oben