banner-pcinside-v6

FPS en vertraging

Om te snappen hoe een game overkomt is het eerst nodig te begrijpen wat een frame per seconde nu eigenlijk inhoudt. Als een mens een aantal opeenvolgende plaatjes snel genoeg achter elkaar ziet dan lijkt dit een filmpje. Hoe snel deze plaatjes elkaar opvolgen wordt uitgedrukt in FPS. Doordat FPS een maatstaf per seconde is, valt uit te rekenen hoe groot de vertraging tussen elk plaatje is:

fps vertraging (ms)
15 66,67
30 33,33
45 22,22
60 16,67
90 11,11
120 8,33

Bij een framerate van 15 zal er tussen elk plaatje een vertraging van 66ms zitten. Bij 60 FPS is dit gereduceerd tot 16ms.

De eerste implicatie is dat het een aantal ms duurt voordat de handeling van de gebruiker wordt weergegeven, ongeacht de vertraging die wordt geïntroduceerd door de muis, het toetsenbord, de processor, enz . Hoe hoger de framerate, des te sneller de handeling wordt weergegeven. Een game met een lage framerate reageert dus traag op handelingen van de gebruiker.

Er wordt  vaak onterecht geconcludeerd dat een framerate van meer dan 60 fps geen nut heeft omdat het menselijk oog dit niet zou kunnen waarnemen.

Waarom 60 FPS niet voldoende is

1) De FPS is een gemiddelde FPS. Bij een framerate van 60 fps zullen er per definitie lagere framerates dan 60 worden behaald.

frametimes-benchmark-variabele-framerate

2) Bij een hogere framerate is de vertraging lager.

De reactietijd van een menselijk oog voor kleurveranderingen is ingeschat op 10ms. Dit zit dichter bij de 90fps.

De problemen van FPS

Hoe soepel een game wordt ervaren, is uiteindelijk een kwestie van de framerate constant houden. Dit is iets waar films handig gebruik van maken. Ondanks de lage framerate van 24 fps oogt een film toch vloeiend.

Een discussie over de optimale framerate is eigenlijk niet te winnen. Het blijft immers praten over een gemiddelde. Afhankelijk van de game kan dit gemiddelde heel extreem tot stand komen. Overigens helpt het natuurlijk ook dat er geen interactiviteit met de gebruiker is.

De frametimes benchmark

De nieuwste manier van benchmarken is dan ook het kijken naar de frametimes. Op basis van de framerate wordt berekend hoe lang het heeft geduurd om de frame weer te geven. Vervolgens worden deze resultaten in een grafiek gezet:

Hitman Absolution
grafiek van de frametimes van het spel hitman absolution met de gtx 650 ti

grafiek van de frametimes van het spel hitman absolution met de hd radeon 7790

De grote pieken en dalen zijn indicaties voor haperingen in de game. Er valt dus meteen op dat de spelervaring in de bovenste grafiek (Nvidia GTX 650 Ti Boost)  vele malen beter is dan in de onderste grafiek (AMD Radeon 7790).

Praktijk voorbeeld

tabel van hitman absolution benchmark frames per second

In deze test haalt de Radeon 7870 Crossfire setup de hoogste framerate (53.8 FPS). De GTX 660 SLI moet het doen met 50.5 FPS. Traditioneel gezien zouden we dan concluderen dat de Radeon 7870 de het beste product is.

Nu gaan we echter naar de frametime variantie kijken. De volgende figuur laat de 75th en 95th percentiel zien. (Het 95e percentiel is het gemiddelde van de 5% slechtste framerates. Het 75e percentiel is het gemiddelde van de 25% slechtste framerates. Hoe groter het verschil tussen het echte gemiddelde en het percentiel, des te groter de schommelingen zijn.)

tabel van de hitman absolution benchmark met frametimes

In de voorgaande test blijkt dat de 5% slechtste frametimes gemiddeld 15.5ms duren bij de Radeon HD 7870 CrossFire. De concurrent Geforce GTX 660 Ti haalde  2.3ms. Het mag duidelijk zijn dat de CrossFire oplossing een veel slechtere spelervaring oplevert. Vertragingen van 15.5ms zijn immers duidelijk merkbaar. En ze komen regelmatig voor (5% dus 3 seconde per minuut).

In dit voorbeeld was CrossFire de winnaar van op basis van FPS maar levert SLI duidelijk een betere spelervaring op!

Het verschil zelf ervaren

De volgende video demonstreert haperingen (stuttering). Kijk goed naar het linkse beeld.

AMD en Nvidia verschillen in frametimes

Toen de eerste websites begonnen met het gebruik maken van frametimes in reviews bleek dat Nvidia GeForce kaarten het veel beter deden dan de AMD Radeon kaarten. Uiteindelijk heeft AMD toegegeven dat ze simpelweg geen rekening hielden met de variabiliteit in de frametimes. AMD dacht ten onrechte dat de variaties in de frametime het resultaat waren van andere delen van de computer. Dit in tegenstelling tot Nvidia die al jaren lang hun drivers hebben getest op frametimes.

AMD heeft dan ook verbeteringen beloofd en die zijn er ook gekomen. Helaas voor AMD is er nog altijd een achterstand.

SLI en Crossfire

Dankzij frametimes is er eindelijk een manier gevonden om feitelijk te onderbouwen wat er nu mis is met SLI en Crossfire. Er zwierven al jaren geruchten rond dat ondanks de hoge framerate games op SLI en CrossFire helemaal niet prettig werden weergegeven. Er werd gewezen op een mysterieus effect genaamd micro-stuttering.

Dankzij frametimes weten we nu wat er bedoeld werd; het zijn de grote pieken en dalen. Juist de Alternate Frame Rendering (AFR, zie artikel: SLI en Crossfire is het combineren van meerdere grafische kaarten – zo werkt het) blijken grote schommelingen in frametimes te veroorzaken.

Zoals uit het vorige voorbeeld bleek, zijn in de meeste gevallen de frametimes van SLI wel een stuk beter dan die van CrossFire.

Comments: