Seite 1 von 1

Im Fenster schneller als Full-Screen

Verfasst: 06.04.2009, 21:11
von kkrahl
Hallo

Habe momentan das seltsamen Phänomen das mein Programm im release kompilierten Zustand unter 1024x768 im Fester-Modus mit ca. 2600 fps dahin fährt aber im Full-Screen-Modus aber nur mit ca 1900 fps. :?:

Hat da jemand eine Erklärung dafür?

Dank euch

PS: Nativ Auflösung der Monitors ist 1680x1050.

Re: Im Fenster schneller als Full-Screen

Verfasst: 06.04.2009, 21:40
von Aramis
Hängt davon ab, in welcher Auflösung du den Fenstermodus betreibst. Bist du Pixelshader-limitiert, so sind ein paar Pixelchen weniger deutlich schneller. So viel schneller, dass der Performancegewinn durch den exklusiven Modus aufgehoben werden kann. Vielleicht bzw. sogar wahrscheinlich ist aber auch bloß deine Zeitmessung ungenau oder der Grafiktreiber verhält sich im Vollbildmodus etwas anders. Viel interesanter wäre, ob dasselbe Phänomen immer noch besteht wenn du im Bereich von 30-40 Frames bist.

PS: Da fehlte ein 'n' im Titel :-)

Re: Im Fenster schneller als Full-Screen

Verfasst: 06.04.2009, 21:44
von Dirk Schulz
Hi,

[Ironie]
meinst du nicht, dass beides recht langsam ist? 3000 fps sind doch Standard heutzutage ...
[/Ironie]

Jetzt mal im Ernst ... solch hohe Fps-Raten sind erstmal nicht wirklich vergleichbar, das kann schon innerhalb der Messungenauigkeit liegen. Sonst können vielleicht noch ein paar Routine-Aufgaben des Betriebssystems stören.

Auf jeden Fall kein Grund zur Besorgnis.

Dirk Schulz *wundert sich, worüber sich manche Leute Gedanken machen*

Re: Im Fenster schneller als Full-Screen

Verfasst: 06.04.2009, 22:07
von kkrahl
Die Auflösung ist ja in beiden Fällen die selbe (1024x768), von da her sollte sich kein Unterschied ergeben. Vor meiner letzten Optimierung, dem Rendern von Text mittels einer Textur (zuvor hatte ich ID3DXFont), war es umgekehrt, da hatte ich im Fester-Modus 1400 fps und im Full-Screen-Modus 1900 fps.

Btw: Die hohen fps zahlen daher das es nur 16 Texturen sind die ausgegeben werde, schreibe gerade ein generisches und per File konfigurierbares User Interface, und das ist nur eine sehr keine Test-UI.

Re: Im Fenster schneller als Full-Screen

Verfasst: 07.04.2009, 10:22
von kimmi
Womit berechnest du denn deine FPS?

Kimmi

Re: Im Fenster schneller als Full-Screen

Verfasst: 07.04.2009, 15:25
von kkrahl
Ich lese bei jedem Renderdurchlauf die SystemZeit mit GetSystemTime und so lange ich mich in der selben Sekunde befinde inkrementiere ich einen Counter, wechselt die Sekunde so gebe ich den Wert als FPS-Zahl aus und resetiere den Counter.

Karl

Re: Im Fenster schneller als Full-Screen

Verfasst: 07.04.2009, 20:31
von yonibear
Auch wenn du absolut exakt misst, die Framerate ist in diesen Bereichen überhaupt kein guter Performance-Indikator.
Bei so hohen Frameraten spielt vor allem der Treiber-Overhead eine Rolle, der bei normalen Geschwindigkeiten überhaupt keine Rolle spielt. Von daher macht es auch keinen Sinn, sich Gedanken darüber zu machen, was jetzt genau zum geringfügig anderen Verhalten im Treiber führt, das die Performanceabweichungen verursacht.

Re: Im Fenster schneller als Full-Screen

Verfasst: 07.04.2009, 22:34
von eXile
yonibear hat geschrieben:Bei so hohen Frameraten spielt vor allem der Treiber-Overhead eine Rolle, der bei normalen Geschwindigkeiten überhaupt keine Rolle spielt. Von daher macht es auch keinen Sinn, sich Gedanken darüber zu machen, was jetzt genau zum geringfügig anderen Verhalten im Treiber führt, das die Performanceabweichungen verursacht.
Dito. Ob dein Programm nun 0,000384 Sekunden oder 0,000526 Sekunden pro Durchlauf braucht ist eigentlich ziemlich schnuppe - da reicht es schon, dass sich das Betriebssystem sich ab und zu mal "am Rücken kratzt". Sicherlich werden im Treiber leicht andere Code-Pfade abgearbeitet, wodurch das zu erklären ist.

Bei einem 2-GHz-Prozessor sind das (rein rechnerisch!) grad mal 284 Instruktionen mehr (auch wenn die Rechnung so nicht ganz korrekt ist - sie gibt einen groben Richtwert an).