[DX9] Framezeiten Mysterien

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

[DX9] Framezeiten Mysterien

Beitrag von Zudomon »

Irgendwie bin ich absolut Planlos, was Renderzeiten betrifft.

In Stonequest kann ich mir anzeigen lassen, wie die Framedeltas aussehen. Von Links (neu) nach Recht (alt). Die Höhe der gelben Punkte gibt an, wie lange groß ein Framedelta ist. Die rote Linie stellt den Durchschnitt dar.

Nun gibt es folgendes Phänomene (erhebt kein Anspruch auf Vollständigkeit):
20111123_10.jpg
In diesem Fall sind die Framezeiten relativ sauber... es wird nichts im Hintergrund erstellt. (etwa 10 ms pro Frame)
20111123_5.jpg
Wesentlich seltsamer ist es hier... es werden im Hintergrund Cluster erstellt. Dabei läuft dieses erstellen im selben Thread. Es gibt hier mehrere ClusterFactories. Diese wechseln sich ab und es werden auch GPU downloadzeiten von 200 ms eingehalten. Außerdem baut bei jedem Frame nur eine Factory und diese hat für einen Schritt etwa 2 ms Zeit. Zum Teil werden die Cluster auf der Grafikkarte erzeugt. Dabei werden in 16 Schritten jeweils eine Iteration von des SimplexNoise auf eine Textur von 256x256 aufgetragen. Das müsste eigentlich in weit weniger als einer halben ms von statten gehen. Das Present wird wie gewöhnlich am Ende des Framerenderings aufgerufen. Es wird jeweils nur ein GPU-Renderschritt für das Cluster pro Frame vollzogen. Trotzdem hab ich extreme Ausreißer nach oben... aber was ich noch seltsamer finde, dass es dann genauso auch Ausreißer nach unten gibt. Also die kürzesten Zeiten liegen dann bei 3,5 ms und 45 ms... also eine extreme Differenz.
20111123_6.jpg
20111123_8.jpg
Ein weiteres seltsames Phänomen sind die zwiegespaltenen Renderzeiten. Dabei werden nun keine Cluster im Hintergrund generiert. Aber je nach Sichtrichtung kann es vorkommen, dass sich die Framezeiten spalten. Ein Frame braucht dann relativ wenig Zeit, der andere dafür wesentlich mehr. Es wird kein VSync benutzt.

Wenn man sich nicht bewegt, die Kamera still hält, dann kann sich dieses Phänomen trotzdem nach einigen Sekunden einstellen.
Vor allem auch wenn ein Ereignis eintritt, wie z.B. den Screenshot machen.
20111123_9.jpg
Verstehen tue ich das alles nicht... :(

Ein Effekt, den manche hier schon angesprochen haben, ist auch, das die Framerate manchmal extrem in den Keller geht. Dieser Effekt war stärker, als mehrere Schichten von einem GPU-Cluster im Hintergrund gerendert wurden. Aber auch wenn keine Cluster im Hintergrund generiert werden, kann dieser Effekt auftreten. Dann sind Renderzeiten von >100 ms keine Seltenheit.
Benutzeravatar
Grimasso
Beiträge: 59
Registriert: 22.07.2010, 09:05

Re: [DX9] Framezeiten Mysterien

Beitrag von Grimasso »

Hm ich weiss nicht, ob ich das Problem richtig verstehe... Bei meiner oldschool Engine hab ich solche Probleme natürlich nicht, daher kann ich nur mutmaßen: Vielleicht wird irgendwo unnötiges Zeug übertragen? VGA Speicher läuft voll und da muss irgendwas umgelagert werden? Hast mal den Profiler angeworfen?
REVERT3D - 2.5d oldschool graphic/game engine http://revert3d.blogspot.com
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [DX9] Framezeiten Mysterien

Beitrag von Zudomon »

Grimasso hat geschrieben:Hm ich weiss nicht, ob ich das Problem richtig verstehe... Bei meiner oldschool Engine hab ich solche Probleme natürlich nicht, daher kann ich nur mutmaßen: Vielleicht wird irgendwo unnötiges Zeug übertragen? VGA Speicher läuft voll und da muss irgendwas umgelagert werden? Hast mal den Profiler angeworfen?
Mit Pix kann ich da nicht viel sehen. Würde mir das gerne mit dem NvidiaPerfHUD anschauen, aber das läuft ja nicht. Vielleicht mache ich mir in den nächsten Tagen doch nochmal Win7 64 Bit drauf, damit lief das auf jeden Fall damals... ( 32 Bit hab ich wegen der 3D-Brille drauf gemacht )
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [DX9] Framezeiten Mysterien

Beitrag von kimmi »

Du kannst auch Intel GPA versuchen.

Gruß Kimmi
Benutzeravatar
Zudomon
Establishment
Beiträge: 2253
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [DX9] Framezeiten Mysterien

Beitrag von Zudomon »

Sieht sehr interessant aus, danke!

Bekommt man das auch frei, ohne sich da registrieren zu müssen?
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [DX9] Framezeiten Mysterien

Beitrag von kimmi »

Registrieren musst du dich, allerdings hatte das aufgrund des Info-Materials von Intel für mich eher Vor- als Nachteile.

Gruß Kimmi
Antworten