Microstuttering och ojämna renderingstider

Det sista grafikfenomenet vi valt att titta lite närmare på i denna artikel är det så kallade microstuttering. Det är något som generellt sätt mest påträffats i grafiksystem med flera grafikkort eller grafikkretsar sammankopplade med Nvidia SLI eller AMD Crossfire. Men som på senare tid dykt upp på tapeten även för grafikkort med ensamma grafikkretsar.

Microstuttering går inte att upptäcka i vanliga fps-mätningar då fenomenet helt enkelt gömms i de förhållandevis generella värden vi får med en mätning av antalet renderade bildrutor per sekund – definitionen av en fps-mätning (frames per second). Vad som för en användare kan kännas som ryckningar eller microskopiska frysningar i grafiken går att härleda till hur snabbt grafikkortet renderar varje bildruta. Med ett fps-värde vet vi hur många bildrutor grafikkortet kan leverera för varje sekund, men våra ögon är betydligt snabbare än så och uppfattar även förändringar av bildrutorna inom varje sekund.

Vad är en frame/bildruta?

Rörliga bilder består av ett antal bildrutor som visas i snabb följd för att ge ilusionen av att bilden rör på sig. I datorer så använder man statiska bilder och därför krävs ungefär 30 bildrutor varje sekund för att bilden ska upplevas som rörlig. Många eftersträvar däremot ett betydligt högre antal bilrutor per sekund där 60 är ett värde som exempelvis ofta används som referens för snabba actionspel. Vanligtvis så mäter vi prestanda i antalet bildrutor som visas varje sekund. Men i dessa diagram så har vi valt att istället visa hur lång tid det tar för grafikkortet att rendera varje enstaka bildruta. Om renderingstiden för två intilliggande bildrutor skiljer sig mycket åt kan grafiken och spelet upplevas som ryckigt, utan att detta reflekteras i en vanlig mätning av bildrutor per sekund.

Ögat effektivare än vanliga fps-mätningar

Microstuttering uppkommer alltså när grafikkortet renderar bildrutor med procentuellt stora tidsdifferenser. Även om vi måste använda oss av millisekunder för att mäta hur snabbt grafikkortet ritar upp varje bildruta är det uppdateringsfrekvenser som våra ögon avslöjar. Fps-medelvärdet är en generellt vedertagen siffra för prestandan i ett grafikkort. Värdet visar vilken genomsnittsprestanda vi har genom ett givet test. Redan här kan vi bli lurade av den uppfattade upplevelsen i grafikkortet. Vi tar en fps-mätning på 100 sekunder med ett medelvärde på 60 fps som exempel; Om grafikkortet under En sekund tappar från ~60 fps ner till 10 fps ger det en högst marginell skillnad i medelvärdet över 100 sekunder.

Trots detta är det något som du som spelare utan tvekan kommer märka av när du spelar, den plötsliga prestandadippen blir som en frysning i spelet och riskerar att störa spelupplevelsen rejält. För att motverka detta försöker vi även att rapportera minimum värdet i våra testrundor för att se så vi inte har några märkbara prestandadippar som gömmer sig i medelvärdet.

BL2_frametimes_60frames

bildrutaEfterföljande bildrutor är oftast nästan identiska varav renderingstiden bör vara närmast identisk. (OBS! Bildrutorna ovan används bara för illustration men visar hur två olika bildrutor kan se närmast identiska ut)

Men tack vare våra ögon och snabba uppfattningsförmåga räcker inte ens detta för att avslöja eventuella brister i mätningar och grafikkortens prestanda. Går vi ett steg djupare än minimum-fps kommer vi till själva tiden det tar för grafikkortet att rita upp varje frame/bildruta. Har vi ett grafikkort som levererar i snitt 60 fps pumpar vi ut 1 bildruta var 16,7:e millisekund. Precis som det finns minimumvärde i en 100 sekunders lång fps-mätning finns det minimumvärden i varje sekunds rendering av bildrutor.

Det vi gjort här för att försöka hitta eventuella gömda prestandaproblem är att vi brutit ned våra mätningar på bildrute-nivå. Vi har med hjälp av mätverktyget fraps mätt hur lång tid det tar att producera varje enskild bildruta för att se hur grafikkort hanterar detta. Det optimala scenariot är en rak linje med bildrutor i ett jämt tidsflöde utspritt över varje sekund. Detta är något vi aldrig kommer att uppnå då varje bildruta är olika krävande att rendera, men för att grafikkorten ska kunna ge en jämn och sömlöss upplevelse, utan ryck och så kallad microstuttering, vill det till att de kan minimera skillnaderna i renderingstid från bildruta till bildruta.

Kan du se microstuttering i videosekvensen ovan och i så fall på vilket kort? Längre ned på sidan avslöjar vi vilket som är vilket.

De stora skillnaderna sitter i grafikkretsen och drivrutiner

Vi har här idag testat en uppsjö olika grafikkort men alla är baserade på två olika grafikkretsar. Vi har i våra undersökningar av microstuttering och mätningar av frame times kunnat bekräfta att de mönster vi ser upprepas mellan olika tillverkare, så länge korten använder sig av samma GPU och drivrutin. För att göra jämförelsen lättare och inte lägga onödig tid på sammanställning av diagram har vi därför fokuserat på en jämförelse av AMD och Nvidia samt grafikkretsarna Radeon HD 7970 samt Geforce GTX 680.

Renderingstid för bildrutor – Battlefield 3

Vi börjar med det populära Battlefield 3 där AMD och Nvidia ger snarlik prestanda med sina senaste flaggskepp.

frametimes_bf3

Här levererar både AMD och Nvidia mycket goda resultat. Vi ser skiftningar i prestanda, vilket är precis som väntat, men inga större utsvävningar. Märk väl att desto lägre värde desto bättre. Radeon HD 7970 presterar något bättre i detta test och ligger alltså generellt på lite lägre värden. Geforce GTX 680 ligger på runt 20 millisekunder i snitt, vilket stämmer utmärkt med fps-medelvärdet på 50,7 fps. Men vi ser även vissa toppar på upp mot 30 millisekunder, vilket motsvarar runt 33 fps. Det är dessa toppar vi ska se upp för i diagrammen, men i vår testsekvens presterar som sagt både AMD och Nvidia väl och vi har inget att klaga på.

Renderingstid för bildrutor – Borderlands 2

Vi går vidare med nästa speltitel som vi sedan tidigare berättat är med i Nvidias egna utvecklingsprogram och lirar väl med företagets grafikkretsar när vi kikar på våra fps-mätningar.

Vi kan ju säga så mycket som att mönstret håller i sig. Nvidias GTX 680-kort ger oss en förhållandevis lugn och jämn linje – bildrutor i samma bildsekvens tar ungefär lika lång tid att rendera, som sig bör. AMD:s Radeon HD 7970-kort är däremot helt utom kontroll. Grafikkortet gav oss en medelfps på 82 i våra fps-mätningar vilket skulle betyda att renderingstiderna för varje bildruta skulle ligga på runt 12,2 millisekunder (1 000 / 12,19 = 82). Men istället ser vi hur renderingstiderna flyger mellan så lågt som 2-3 millisekunder upp till hela 40 millisekunder. Att två bildrutor intill varandra (snarlik grafik) skulle kräva så olika mycket renderingskraft så ofta låter inte troligt. Det positiva är att även de värsta topparna på 40 millisekunder ger en bildfrekvens på motsvarande 25 fps, det är inga imponerande siffror men inte heller totalt tvärstopp.

frametimes_bl2

Den stora frågan är givetvis om denna oregelbundna bildrenderingshastighet märks när du spelar. Svaret är att det troligtvis kommer skifta från användare till användare. Men i en direkt jämförelse med GTX 680 kan vi tycka att vi märker en viss skillnad i upplevt flyt och följsamhet i grafiken, inte minst i panoreringar och rörelser i sidled. Detta är något vi även försökt fånga på video genom att springa runt i några korridorer i Borderlands 2.

Helt klart föredrar Borderlands 2 Nvidias grafikkort och förutom generellt högre prestanda får vi även en mer följsam spelupplevelse. Vi skulle inte satsa några pengar på att en vanlig användare lägger märke till skillnaden, men i en direkt jämförelse med AMD:s grafikkrets är det en märkbar skillnad.

Renderingstid för bildrutor – The Elder Scrolls: Skyrim

Skyrim är till skillnad från Borderlands 2 en speltitel som trivs bra på AMD:s grafikkort. Sett till medelfps är Radeon HD 7970 GE kung i Skyrim, inte minst i den höga upplösning vi tittar närmare på här. Men låt oss se vad våra bildrenderingstider avslöjar.

frametimes_skyrim

AMD levererar nästan 15 procent högre fps i snitt i detta test. Men kikar vi på renderingstiderna för varje bildruta är det inte lika imponerande. Vi har inte samma fasansfulla spridning som i Borderlands 2, men vi har däremot fler toppar på närmare 50 millisekunder, faktiskt är man uppe på 65 millisekunder vid ett tillfälle. Vilket skulle motsvara 15,3 fps och ett klart märkbart prestandatapp. Generellt ger AMD-kortet en mer ojämn renderingstid och även om vi ser hyfsat koncentrerade värden mellan 10 och 20 millisekunder är det inte i närheten av lika jämt som för GTX 680. Även Nvidias kort har faktiskt ett par tydliga toppar, vilket alltså är negativt när vi pratar om renderingstider, men de är generellt betydligt färre och inte lika stora.

Det går att märka av effekterna vid vanligt spelande, men troligtvis finns det många som inte skulle se några problem om de inte pekades ut.

Ett svårfångat fenomen med rötter i drivrutiner?

Det är väldigt individuellt hur mycket man märker av och påverkas av ojämna renderingstider. För undertecknads del är det inte något som känts som ett akut problem och när jag exempelvis spelade upp vårt blindtest några dagar efter videorenderingen blev jag först osäker på vilket kort som var vilket.

Vissa användare kommer troligtvis märka problemen med micro stuttering och ojämna renderingstider betydligt tydligare och då finns det stor risk att det påverkar spelupplevelsen negativt.

Generellt sätt över våra tre prestandatester (ett mycket begränsat urval) har AMD större problem med renderingstiderna än Nvidia. Det gröna lägret har sällan några onaturliga mönster i sina diagram, även om inte heller Nvidia är perfekta. Dessa resultat verkar även stämma överrens ganska bra med rapporter från andra sajter som exempelvis TechReport där man undersökt fenomenet.

De goda nyheterna för konsumenter och inte minst AMD är att vi inte ser microstuttering i alla spel och att problemen snarare kommer från drivrutinsoptimeringar än problem i de fysiska grafikkorten. I samband med publiceringen av denna artikel har vi kontaktat både AMD och Nvidia och bett dem om en kommentar kring våra resultat. Vi hoppas kunna återkomma med svar från företagen framöver. Tills dess fortsätter vi att utvärdera grafikkort med renderingstider i åtanke.

OBS! Märk väl att våra inspelade sessioner från Battlefield 3 och Skyrim inte är exakt samma som de vi fått våra frapsvärden ifrån. Dessa scener var allt för mörka och svåra att fånga bra på video.

20
Leave a Reply

Please Login to comment
20 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
11 Comment authors
Anton KarmehedBirksanjoraMarquzzdj christian Recent comment authors
  Subscribe  
senaste äldsta flest röster
Notifiera vid
Medlem
Calle2003

Mycket bra test!
Extra plus för coil whine noteringarna som upplevs som mycket störande men sällan tas upp i tester.
Kommer ni att uppdatera testet när AMD Catalyst 12.11 blivit WHQL och (förhoppnings) mindre micro stuttering i berörda spel? Känns lite som det är mycket micro stuttering i Borderlands 2 p.g.a. det är ett Nvidia ”The Way It’s Meant To Be Played” spel.

CHARLEY MACHICOTE
Gäst
CHARLEY MACHICOTE

dam that card is thin

McKinley
Medlem
McKinley

Riktigt grymn jämförelse Anton och hatten av till AMD som har lyckats riktigt bra med den senaste drivrutinen.

wasp
Gäst
wasp

Bästa test över grafikkort jag läst på länge, mycket välskrivet och utförligt, hatten av!

-Boris-
Medlem
-Boris-

Väldigt irriterande att det verkar vara mycket ryckigare musstyrning i AMDs exempel. Det kommer ju göra att idioter tror att det är microstuttering och att det är något de faktiskt upplever.

EDIT: Menar då Borderlands-testet.

daniel
Medlem
daniel

Bra test men lite för få spel.Jag skulle inte vilja spela Borderlands 2 på ett Amd kort…såg hemskt ut.

Kul att frametime renderingen togs med i testet,sådant vill jag se mer av.

daniel
Medlem
daniel

[quote name=”Anton Karmehed”][quote name=”-Boris-”]Väldigt irriterande att det verkar vara mycket ryckigare musstyrning i AMDs exempel. Det kommer ju göra att idioter tror att det är microstuttering och att det är något de faktiskt upplever. EDIT: Menar då Borderlands-testet.[/quote]Du kan även kika på demosekvensen som är helt utan musrörelser. För övrigt var det trots allt flera som gissade att det var microstuttering på nvidia-kortet så det verkar inte vara helt uppenbart. 🙂 [quote name=”teant”]Bra test men lite för få spel.Jag skulle inte vilja spela Borderlands 2 på ett Amd kort…såg hemskt ut. Kul att frametime renderingen togs med i testet,sådant vill… Läs hela »

daniel
Medlem
daniel

[quote name=”Anton Karmehed”]Absolut och jag håller med, det är svårt att ge konkreta rekommendationer baserat på prestanda eftersom det skiljer så mycket från spel till spel. Men som sagt, vi har lite idéer på hur vi kan lösa det framöver även i större roundups som denna. :)[/quote]Låter utmärkt,tackar 🙂 Just frame renderingen hoppas jag att ni fortsätter lägga stort fokus på.Vad jag vet så är det bara techreport som grundligt tagit upp det i sina tester och därför är det extra kul med en svensk site som gör detsamma då det är(för mej och många andra) en viktigare faktor än… Läs hela »

dj christian
Gäst
dj christian

Mycket bra test uppskattas. Dock så undrar jag varför priserna skiljer så mycket, ”
Cirkapris vid publiceringsdatum” från dagens lägsta pris på Prisjakt?

Marquzz
Medlem
Marquzz

Väldigt bra och omfattande test, UndaC-klass på det! Bra jobbat!

anjora
Medlem
anjora

intressant redogörelse om de olika gtx680/hd7970 korten och intressant microstuttering test, tydligen skall ”radeonpro” vara ett bra verktyg till amd kort för att slippa det eländet.

kanske lite tunt med prestandatest och bf3, borerlands2 får väl räknas som nvidiavänliga, amd verkar vinna ändå…

Birks
Medlem
Birks

Köpte nyligen mig ett Asus HD7970 Matrix Platinum och även om prestandan är ok så måste jag säga att ljudnivån är i värsta laget.
Prova köra lite Farcry 3 på det så får ni se.
Kortet jag uppgraderade från var ett Asus HD5870 Matrix Platinum och även om det inte var tyst så är nya kortet värre.

Birks
Medlem
Birks

Stock, det låg på runt 85c med fläkten i automatiskt läge (ca3000 rpm)
Efter att jag tagit av sidan på lådan så sjönk det till 75c och ca2000 rpm så det blev bättre men även vid 2000 rpm så är kortet det som låter mest av allt i lådan. kör med H80 och 2 Noctua på radiatorn. I övrigt har jag bara original fläktar i ett Fractal define mini chassi.