extremes flackern

Das Unterforum für Diskussionen rund um die Technik, Bedienung, Konfiguration usw. Das ist auch die erste Anlaufstelle für Bastler mit Fragen zu den Editoren.
Antworten
Nachricht
Autor
portscan86
Beiträge: 9
Registriert: 25.06.2019 06:26:33

extremes flackern

#1 Beitrag von portscan86 »

Hallo,

habe ZuSi schon etwas länger, aber wollte mich jetzt mal näher damit beschäftigen. Leider habe ich das Problem, dass das Bild extrem flackert wenn man in den Zug wechselt. Auch wenn ich die Taste rechts z.b. drücke und dann wieder zurückgehe, dann flackert der ganze Arbeitsbereich. Wenn ich in einen Zug wechsel der noch das alte Design hat (nicht HD) dann flackert das Bild die ganze Zeit. Auch die Anzeigen und Zeiger flackern auch.
Woran liegt das? Habe bereits alles neu installiert und vorher den Ordner gelöscht.

Habe eine GTX 1070 und Treiber 431.60 (aktuellster)

portscan86
Beiträge: 9
Registriert: 25.06.2019 06:26:33

Re: extremes flackern

#2 Beitrag von portscan86 »

hier noch ein Video dazu: https://www.youtube.com/watch?v=bm7Lk2O0Ink" target="_blank

Jim Knopf
Beiträge: 7
Registriert: 14.07.2019 19:46:56

Re: extremes flackern

#3 Beitrag von Jim Knopf »

Moin Portscan86,

passiert das auch mit Führerständen OHNE integrierte Displays?
Oder passiert das nur bei einer Baureihe?

Wie stehts mit den Zusi Grafik Einstellungen für "Framebremse / bzw. vertikale Synchronisation".....

Meines Wissens nach sollte nicht beide Häkchen gemeinsam aktiv sein.
Welches OS hast Du? Win 10 - 1809 oder anderes?
Hast Du ein HD oder 4K Display?

portscan86
Beiträge: 9
Registriert: 25.06.2019 06:26:33

Re: extremes flackern

#4 Beitrag von portscan86 »

Hallo Jim,

habe es gerade mal getestet. Hauptsächlich passiert es, wenn man einen Führerstand mit Display hat.
Nutze Windows 10 1809 und nutze einen normalen FULL HD Monitor. Hatte die FPS Bremse deaktiviert und da passiert auch der Fehler. Aktuell habe ich diese wieder auf 60FPS eingestellt. Selbst bei 40FPS ist der Fehler aufgetreten. VSync ist nicht an.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33436
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: extremes flackern

#5 Beitrag von Carsten Hölscher »

Sieht nach einem Grafikkarten-/Treiberproblem aus. Evtl. ist auch Windowsseitig irgendwas falsch konfiguriert. Nur in Zusi selbst kann man sowas nicht hervorrufen.

Carsten

portscan86
Beiträge: 9
Registriert: 25.06.2019 06:26:33

Re: extremes flackern

#6 Beitrag von portscan86 »

hier noch ein Beispiel: https://www.youtube.com/watch?v=8Fr6IudFQVU" target="_blank auch ohne Display der Fehler

der Fehler ist jetzt aber erst aufgetreten. Hatte immer mal ZuSI gestartet und da hatte ich nie diese Probleme. Andere Spiele laufen ohne Probleme.

edit: werde nachher mal mit dem DDU den Treiber komplett löschen und neu installieren.
Zuletzt geändert von portscan86 am 18.08.2019 13:12:32, insgesamt 1-mal geändert.

portscan86
Beiträge: 9
Registriert: 25.06.2019 06:26:33

Re: extremes flackern

#7 Beitrag von portscan86 »

habe nun über den DDU den Treiber gelöscht. Fehler tritt weiterhin auf. Weiß aber nicht was hier falsch konfiguriert sein soll. Andere Spiele gehen ja auch.

Benutzeravatar
Carsten Hölscher
Administrator
Beiträge: 33436
Registriert: 04.07.2002 00:14:42
Wohnort: Braunschweig
Kontaktdaten:

Re: extremes flackern

#8 Beitrag von Carsten Hölscher »

Gezielt helfen wird da niemand können. Probier vielleicht mal nen alten Treiber.

Carsten

Benutzeravatar
F. Schn.
Beiträge: 6686
Registriert: 24.10.2011 18:58:26

Re: extremes flackern

#9 Beitrag von F. Schn. »

Das riecht stark als wüsste die Grafikkarte irgendwas besser. Tritt es im Fenstermodus auch auf?
Diese Signatur möchte folgendes bekannter machen: ZusiWiki · ZusiSK: Streckenprojekte · YouTube: Objektbau für Zusi · euirc: Zusi-Chat

portscan86
Beiträge: 9
Registriert: 25.06.2019 06:26:33

Re: extremes flackern

#10 Beitrag von portscan86 »

komisch. Hab nichts verändert und nun geht es auf einmal :rofl
Danke euch für die Hilfe.

Flo Zille
Beiträge: 203
Registriert: 15.05.2018 09:06:32

Re: extremes flackern

#11 Beitrag von Flo Zille »

Seit DXVK (Directx9-Implementierung via Vulkan, die ich unter Linux nutze) angefangen hat, statt fälschlicherweise nur eines einzelnen Buffers die korrekte Anzahl von Buffern in der Swapchain vorzuhalten (im Falle von Zusi einen Back- und einen Frontbuffer, die bei jedem Present ihre Rollen tauschen), habe ich genau den gleichen Effekt.

Bei mir scheint es so zu sein, dass Zusi in den D3DPRESENT_PARAMETERS einen SwapEffect "DISCARD" festlegt, was so viel bedeutet wie "nachdem ich ein Bild vollständig gerendert und DirectX zur Anzeige übergeben habe, will ich es auch nicht mehr wiederhaben und du kannst damit machen was du willst, ich male im nächsten Frame sowieso alles wieder erneut". Allerdings scheitert dann offenbar beim nächsten Frame irgendwas, jedenfalls wird zwar vieles schön gerendert, aber eben nicht die "untere Hälfte" des Führerstandsbildes mit den Hebeln etc. Nur ein Rechteck rund um den transparenten Bereich, in dem die Landschaft durch das Fenster sichtbar ist, und die Führerstandsmelder und -anzeigen, die sich seit dem letzten Frame geändert haben, werden neu gezeichnet. In dem unveränderten Bereich befindet sich im neuen Backbuffer dann vor und nach dem Rendern "Schrott", in diesem Fall die Pixel eines älteren Frames. Je nach dem, welcher der beiden Buffer gerade der Backbuffer ist, während sich in diesem Bereich etwas ändert, flackert die Anzeige dann zwischen zwei Frames hin und her, die teils aktuellere und teils ältere Pixel enthalten. Das ist aber Implementierungsabhängig, es könnte auch Pixelchaos oder vielleicht sogar die Pixel des vorherigen, aktuellen Frames enthalten sein.

Als DXVK nur einen einzelnen Buffer hatte, der durchgängig als Backbuffer eingesetzt wurde (und für Present wird dieser Buffer dann zur Anzeige kopiert), gab es das Problem nicht. Kein Wunder, die in einem Frame nicht neu gezeichneten Elemente waren dann ja trotzdem noch vom vorherigen Frame in diesem einzelnen Buffer vorhanden, und da sie sich nicht verändert haben, passte das Ergebnis.

Offenbar ist im oben verlinkten Video ganz genau der gleiche Fall aufgetreten. Ich versuche jetzt noch herauszufinden, ob es Zusi selbst ist, das unter manchen Umständen "vergisst", den neuen Frame vollständig zu zeichnen, oder wo genau ein Fehler in DXVK zu finden ist. Auf den ersten Blick sah eigentlich alles ganz gut aus. Oder vielleicht läuft ja auch beim Festlegen des SwapEffect etwas falsch, und der SwapEffect sollte eigentlich auf COPY statt DISCARD gesetzt werden, nur dann ginge das MSAA nicht mehr…

Edit: Nachdem ich nun etwas genauer geschaut habe, konnte ich in den von Zusi abgesetzten DirectX-Calls eines Frames tatsächlich keine Stelle finden, an der der "untere Bereich" des Führerstands neu gezeichnet wird. Entweder ich habe etwas übersehen, oder das findet tatsächlich nur statt, wenn sich im dortigen Bereich etwas geändert hat (z.B. weil man von einer Fenster-Ansicht zurück in die Hauptansicht des Führerstands wechselt.) Das ist in Kombination mit dem SwapEffect DISCARD eigentlich nicht zulässig und wäre ein Bug in Zusi, allerdings sieht es wohl so aus, als ob fast alle Treiber in den Bereichen, die in einem Frame nicht neu gezeichnet wurden, trotz der DISCARD-Einstellung, erneut die Pixel des vorherigen Frames anzeigen und es daher nur extrem selten zu Problemen kommt – wenn ein Treiber die Swapchain aus irgendwelchen Gründen mit wechselnden Backbuffern erstellt, was wohl in "normalen" Treibern im Windowed-Modus nur sehr selten der Fall ist, während es im echten Fullscreen-Modus wohl öfters vorkommt, aber der ist in den Zusi-Einstellungen ja nur für Spezialanwendungen markiert. Ich habe es noch nicht ausprobiert, aber könnte mir vorstellen, dass je nach Treiber im "DirectX-Vollbild" ebenfalls öfters so ein Flackern auftreten kann.

Da werde ich mal den DXVK-Entwickler versuchen davon zu überzeugen, dass er das mit dem DISCARD im windowed-Modus auch etwas entspannter sieht und die Stelle "An application that uses this swap effect cannot make any assumptions about the contents of a discarded back buffer and should therefore update an entire back buffer before invoking a Present operation that would display it" in der DirectX-Doku ignoriert.
Zuletzt geändert von Flo Zille am 24.01.2020 09:53:14, insgesamt 1-mal geändert.

Antworten