Wat er gemeten wordt
Frametijden uit de game die je daadwerkelijk speelt, uitgelezen uit de grafische stack zelf in plaats van via een overlay die in de game is gehaakt. Start de opname, speel gewoon door, stop de opname.
Dat het je eigen game is, doet ertoe. Een kunstmatige scène vertelt je hoe de machine met díé scène omgaat; ze kan je niet vertellen of jouw game stottert op precies die ene plek waar hij altijd stottert.
De getallen
| Getal | Wat het je vertelt |
|---|---|
| Gemiddelde FPS | het minst bruikbare getal hier. Twee machines met hetzelfde gemiddelde kunnen volstrekt anders aanvoelen. |
| 1% low | de slechtste 1% van de frames. Dit is wat je als gestotter voelt — een hoog gemiddelde bij een slechte 1% low is de klassieke "veel fps, voelt toch beroerd". |
| Frametijd | dezelfde gegevens in milliseconden. 16,7 ms is 60 FPS, 6,9 ms is 144. |
Lees de lows, niet het gemiddelde. Van 200 naar 210 gemiddeld verandert niets dat je kunt voelen. Van 90 naar 140 in de 1% low verandert alles.
Twee runs eerlijk vergelijken
- Dezelfde game, dezelfde map, dezelfde instellingen, dezelfde lengte.
- Verander één ding tussen twee runs. Verander je er drie, dan zegt de vergelijking je niets over welke ervan ertoe deed.
- Speel op dezelfde manier. Een run waarin je naar een muur staat te kijken en een run midden in een vuurgevecht zijn niet vergelijkbaar.
Wat niet meetelt
Frames die het spel tekent terwijl het niet op de voorgrond staat, tellen niet mee: de seconden tussen het starten van de opname en het overschakelen naar het spel, de seconden nadat je terugschakelt om te stoppen, elke alt-tab daartussen en de eerste seconde nadat het spel weer op de voorgrond komt. Een spel op de achtergrond tekent vaak maar een fractie van zijn normale tempo, en die frames alleen kunnen de 1% low bepalen. Het resultaat vermeldt hoeveel seconden zijn weggelaten, en een opname van een oudere w0a, die ze nog meetelde, wordt niet tegen een nieuwere beoordeeld.
Waarom de getallen per run verschillen
Dat doen ze altijd. Temperaturen, werk op de achtergrond, waar je gelopen hebt, wat de andere spelers deden. Een paar procent verschil tussen twee runs is normaal en bewijst niets. Is een verandering echt, dan laat ze zich herhaaldelijk zien — en ze laat zich zien in de lows.
Na een update van het stuurprogramma of de game
Een paar dat aan weerszijden van een game-update is opgenomen, wordt niet beoordeeld: de pagina noemt beide versies en laat het verschil ongekleurd, zoals al bij een wissel van stuurprogramma. Een patch verandert wat de game zelf doet, dus geen enkel verschil over een update heen kan aan een instelling worden toegeschreven. w0a leest de versie uit de eigen bestanden van Counter-Strike 2; bij andere games wordt alleen het stuurprogramma vergeleken.
De eerste match na een update van het stuurprogramma of de game kan shaders compileren die de cache niet meer heeft. Kwam de eerste run na de nieuwste update slechter uit dan de volgende met dezelfde versies, en wel met meer dan de eigen ruis van de twee runs, dan zegt een notitie onder de resultaten dat. Of het compileren van shaders de oorzaak was, wordt niet gemeten; de notitie zegt alleen dat het bij elkaar past. Verschillen de twee runs niet, dan is er geen notitie. Speel na een update dus eerst één match voordat je meet, en vergelijk instellingen vanaf de tweede run.
Uitsluitsel met een A/B-reeks
Eén run per kant kan een kleine wijziging niet van dat schommelen onderscheiden. Een A/B-reeks herhaalt de vergelijking tot dat wel kan. Jij bepaalt wat A en B zijn (bijvoorbeeld A: motoren uit, B: aan); w0a verandert zelf geen enkele instelling.
- Eerst de pilot. Druk op Pilot starten en meet dezelfde scène tien keer zonder iets te veranderen. De pilot meet hoeveel je 1% low uit zichzelf van run tot run beweegt, en daaruit het kleinste verschil dat een reeks kan zien. Hij geldt voor hetzelfde spel op dezelfde hardware.
- Dan de reeks. Druk op A/B-reeks starten. Voor elke opname noemt de pagina de kant die je meet, in de volgorde A B B A, steeds opnieuw. Schakel naar die instelling, speel dezelfde scène, stop de opname. Elke B wordt vergeleken met de A die ernaast is gemeten, zodat het langzaam opwarmen van een machine in de loop van de avond tegen elkaar wegvalt.
- Elke run is dezelfde scène en duurt minstens 100 seconden. Verwijder de eerste run na het starten van het spel: de caches warmen dan nog op.
- Het oordeel komt alleen uit de 1% low, zodra er minstens zes bruikbare paren zijn (acht is beter); de andere regels zijn ter informatie. Drie antwoorden moeten overeenkomen: een rangtekentoets, een 95%-interval van de mediaan van het verschil dat nul uitsluit, en een verschil dat minstens zo groot is als het kleinste dat de reeks kan zien. Zonder pilot, of zonder tien A-runs in de reeks die hem vervangen, wordt een verschil getoond maar niet beoordeeld.
- "Binnen de ruis" is ook een resultaat: de wijziging heeft de lows niet meer bewogen dan ze uit zichzelf bewegen.
Een paar dat de vergelijkingskaart zelf niet zou beoordelen (een korte run, verloren events, een motor die van toestand verandert, andere hardware) telt niet mee, en de reeks zegt hoeveel er zijn weggelaten. Druk op Reeks beëindigen als je klaar bent; het resultaat blijft op de pagina staan.
Hoe lang de game op een processor wachtte
Onder de lijst met lange frame-intervallen leest een kaart een kort venster lang de eigen scheduler-registraties van de kernel, zodra de game een tijdje frames toont: hoe lang de threads van de game wachtten tussen klaar zijn om te draaien en een processor krijgen, en welke andere programma's de processor intussen hadden. Daar zijn beheerdersrechten voor nodig, en een venster waarin de kernel gebeurtenissen verloor, toont geen waarde in plaats van een verkeerde. Met twee runs geselecteerd zegt de kaart of de wachttijd meer bewoog dan de eigen spreiding van de vensters.
Dezelfde kaart noemt de processor waarop de drukste thread van de game (gezien als de hoofdthread) het meest draaide, en de tijd voor deferred procedure calls (DPC's) gemeten waar hij draaide, naast de gemiddelde processor. Een reeks voegt één regel toe: of die DPC-tijd en de stotters over de runs van één instelling (de pilot of de A-kant) samen stegen en daalden. Dat beschrijft alleen samen voorkomen; wat wat veroorzaakt, is niet gemeten.
Opgeslagen runs voeden de stotterscan
Runs die je opslaat, gebruikt de stotterscan als bewijs: frames die meetbaar trager zijn dan de frames eromheen duiken daar op als een eigen bevinding, naast de mogelijke oorzaken. Een opgeslagen run uit de game die stottert is het meest directe bewijs dat je hem kunt aanreiken.
Gerelateerd
Heeft deze pagina geholpen?
Wat ontbrak, of wat werkte er niet? We lezen elk van deze berichten.
Heeft deze pagina het niet opgelost, schrijf ons dan — noem het artikel dat je hebt gelezen, dan verbeteren we het.