Betroz Skrevet 28. august 2004 Del Skrevet 28. august 2004 Jeg ble inspirert av en annen forum bruker på Futuremark forumet av å lese denne tråden : http://discuss.futuremark.com/forum/showfl...&Number=4277176 Tenkte da jeg skulle teste litt med Timedemo i Doom3 selv! Mitt oppsett i denne testingen er som følger : P4 Northwood 2.8 @ 3.5 Ghz, 2GB RAM, POV 6800 Ultra @ 425/1200 og en 21" Eizo T966 monitor. Eizo'en klarer max 100 Hz i 1600x1200 oppløsning og 160 Hz i 640x480. Testet mange kombinasjoner, men ikke alle! Skal prøve å få ned tallene så oversiktelig som mulig uten å bruke HTML koding ellerno sånt her. Alle resultater er med DOBBEL BUFFERING. Med TRIPPLE BUFFERING ville det være det samma om du kjører 100 eller 150 Hz, med og uten VSYNC. Men jeg har ikke finni ut hvordan jeg setter på tripple buffering. 640x480 High Quality : VSYNC Av 60 Hz 83,5 FPS VSYNC På 60 Hz 57,0 FPS VSYNC Av 85 Hz 83,6 FPS VSYNC På 85 Hz 69,6 FPS VSYNC Av 120 Hz 83,5 FPS VSYNC På 120 Hz 77,0 FPS VSYNC Av 150 Hz 83,3 FPS VSYNC PÅ 150 Hz 78,4 FPS 1024x768 High Quality : VSYNC Av 60 Hz 83,0 FPS VSYNC På 60 Hz 56,0 FPS Testet ikke mer på denne. 1280x1024 High Quality : VSYNC Av 60 Hz 76,6 FPS VSYNC På 60 Hz 53,5 FPS Tester ikke mer her heller. 1600x1200 High Quality : VSYNC Av 60 Hz 66,8 FPS VSYNC På 60 Hz 45,0 FPS VSYNC Av 85 Hz 66,5 FPS VSYNC På 85 Hz 49,0 FPS VSYNC Av 100 Hz 66,3 FPS VSYNC På 100 Hz 52,0 FPS Som dere ser er min CPU en flaskehals. En Athlon64 FX53 ville fått en del mer FPS. Interessante resultater spør du meg! Konklusjonen min : Med dobbel buffering så burde man ikke ha VSYNC på. Enig eller uenig? Post her! Lenke til kommentar
ViperOz Skrevet 28. august 2004 Del Skrevet 28. august 2004 (endret) glemte å lese på toppen Endret 28. august 2004 av ViperOz Lenke til kommentar
Stigma Skrevet 28. august 2004 Del Skrevet 28. august 2004 Hmm.. nå har jeg ike lest den tråden du linket til enda, men så vidt jeg kan se fra resultatene dine, så er det jo ingen store overraskelser her. Vsync har alltid senket anttal FPS littegrann, fordi den tross alt ikke gidder å rendre ukomplette frames da. Men så slipper du også "tearing" som oppstår når du har Vsync av. Bare å bli kvitt denne veldig irriterende bi-effekten er verdt litt ytelsestap for meg ihvertfall. -Stigma Lenke til kommentar
fAight Skrevet 28. august 2004 Del Skrevet 28. august 2004 For min del bør VSYNC være på uansett. Visste forøvrig ikke at fps'en falt såpass... Lenke til kommentar
Same- Skrevet 28. august 2004 Del Skrevet 28. august 2004 Vsync har alltid senket anttal FPS littegrann, fordi den tross alt ikke gidder å rendre ukomplette frames da. Men så slipper du også "tearing" som oppstår når du har Vsync av. Bare å bli kvitt denne veldig irriterende bi-effekten er verdt litt ytelsestap for meg ihvertfall. Hmm hadde du giddi og forklare litt mer? Tearing? Lenke til kommentar
Stigma Skrevet 28. august 2004 Del Skrevet 28. august 2004 (endret) Gjerne det... "Tearing" eller "riving" rett oversatt til norsk, oppstår når skjermen oppdateres med informasjon fra to forskjellige frames. Dette skjer fordi maskinen ikke venter på at den skal regne ut et helt nytt bilde før den viser bildet når Vsync er av. Først litt bakgrunnsinformasjon. Du vet sikkert at TVer og monitorer oppdateres i linjer, såkallt "scan-linjer". For eksempel, tenk deg at monitor-skjermens overfalte består av linjer slik som dette: -------------------------------- -------------------------------- -------------------------------- -------------------------------- -------------------------------- -------------------------------- -------------------------------- I realiteten er det selvfølgelig like mange slike linjer som du har i veritkal oppløsning. for seksempel 768 for 1024x768. Og, når maskinen din i et spesifikt øyeblikk ikke lager akkurat nok frames til at de er lik oppdateringsfrekvensen din (eller akkurat en brøk av den), så vil bildet ikke bli helt oppdatert. Noen "gamle" pixler vil forbli nederst på skjermen fra forrige frame. For eksempel fikk skjermen kanskje bare nok pixler til å skrive 500 linjer for spesifik frame, og da må den bare stoppe på linje 500, og beholde det gamle data under 500, til neste frame skal vises. Som regel ser du ikke dette, siden pixlene fra forrige frame er som regel så like at du ikke merker forandingen (spesielt om du har høye framerates), men om du for eksempel snur deg fort rundt i en FPS, eller spiller et rakt bilspil ect. så kan du tydelig se "tearing" som ser ut som at det er en slags rivelinje mellom topp og bunn delen av skjermen. Dette vil skje i alle tilfeller der det er rask bevegelse over hele skjermen. (Det er alltid til stede, men ved midnre det litt stor og rask bevegelse, så kan det være vanskelig å se) Dette motvirker Vsync. Den rett og slett ignorerer den ekstra informasjonen som blir laget som den ikke klarer å få til å gå opp i en brøk med refreshraten på skjermen. Eksempel: Med Vsync på, og refreshrate på 60Hz, så vil en FPS på 30 ikke føre til noe ytelsestap (fordi skjermen da kan vise det samme bildet to ganger hver over det neste sekundet, og 2x30 = 60 går da akkurat opp-i-opp. Men, om ikke har et så perfekt tilfelle (som du som regel aldri har) for eksempel du har 32,3 FPS, så blir situasjonen en annen. Du kan ikke vise hvert bilde 1,85 ganger (60/32,3=85), så da må skjermen vise 1 noen ganger og 2 noen ganger. Resten som ikke kan passes inn for en hel frame må droppes (med Vsync på), og det er dette som gir det "såkallte" ytelsestapet. I praksis vil du faktisk ofte kunne fåle at spillet går glattere med Vsync på, for da får du alltid hele frames presentert, men benchmarks vil se dårigere ut. De ekstra FPS som Vsync-off har mer enn Vsync-on er tross alt bare ufullstendige frames som egentlig er lite interessante. Tripple-buffering hjelper på å redusere tapet fra å ha vsync på, ved å ha en hel frame klar i buffer i tillegg til dem som holder på å bli skrevet. Dette lar maskinen lage ferdig en hel frame i stedet for å ende opp med flere midnre fragmenter som den må ende opp med å kaste. Det er derfor alltid øsnkelig å bruke tripple-buffering om du skal bruke Vsync, siden "tapet" fra Vsync på denne måten blir enten helt eliminert, eller mye nærmere den "ukontrollerte" maksimums-FPS som du kan få uten Vsync. For mer teknisk info kan du lese linken på toppen av denne tråden. Den var ganske grundig. EDIT: her er et bilde at tearing-fenomenet fra liken over: http://www.dcs.shef.ac.uk/~u1am3/vsync/frameTear.jpg Det er selvfølgleig ingen råd linje der i virkkeligheten, men som du ser er ikke toppen korrekt i forhold til bunnen. Fenomenet er litt vel overdrevet der kanskje i forhold til normalt, men viser i hvertfall hva det er. -Stigma Endret 28. august 2004 av Stigma Lenke til kommentar
MistaPi Skrevet 28. august 2004 Del Skrevet 28. august 2004 "Tearing" eller "riving" rett oversatt til norsk, oppstår når skjermen oppdateres med informasjon fra to forskjellige frames. Eller flere. Dette skjer fordi maskinen ikke venter på at den skal regne ut et helt nytt bilde før den viser bildet når Vsync er av. Det skjer fordi maskinen ikke venter på at skjermen blir ferdig med å tegne opp et bilde (en refresh). Tearing kan oppstå når framebuffer bytte skjer under en refresh. Mao når skjermkortet viser et nytt frame (bilde) før skjermen er ferdig med å vise det forrige. Og, når maskinen din i et spesifikt øyeblikk ikke lager akkurat nok frames til at de er lik oppdateringsfrekvensen din (eller akkurat en brøk av den), så vil bildet ikke bli helt oppdatert. Noen "gamle" pixler vil forbli nederst på skjermen fra forrige frame.For eksempel fikk skjermen kanskje bare nok pixler til å skrive 500 linjer for spesifik frame, og da må den bare stoppe på linje 500, og beholde det gamle data under 500, til neste frame skal vises. Skjermen viser kun det som er i display/front bufferet til skjermkortet. Hvis back og front bufferet bytter plass under en refresh vil skjermen begynne å vise det nye bildet på det resterene refreshen. Det er da det som er øverst på skjermen som er fra forrige frame. Som regel ser du ikke dette, siden pixlene fra forrige frame er som regel så like at du ikke merker forandingen (spesielt om du har høye framerates), Med høy framerate er det spesielt lett å merke tearing da det kan være flere buffer bytte under en refresh. Men, om ikke har et så perfekt tilfelle (som du som regel aldri har) for eksempel du har 32,3 FPS, så blir situasjonen en annen. Du kan ikke vise hvert bilde 1,85 ganger (60/32,3=85), så da må skjermen vise 1 noen ganger og 2 noen ganger. Resten som ikke kan passes inn for en hel frame må droppes (med Vsync på), og det er dette som gir det "såkallte" ytelsestapet. I dette tilfelle vil det være en frame hver 2. vsync. Mao du vil halve frameraten av refreshraten (30FPS). Hvis skjermkortet hadde misset enda en vsync ville frameraten blitt redusert til 15FPS osv. Vsync kan derfor føre til ganske stort ytelsetap. Dette er noe som bør brukes med måte. Tripple-buffering hjelper på å redusere tapet fra å ha vsync på, ved å ha en hel frame klar i buffer i tillegg til dem som holder på å bli skrevet. Dette lar maskinen lage ferdig en hel frame i stedet for å ende opp med flere midnre fragmenter som den må ende opp med å kaste. Det er derfor alltid øsnkelig å bruke tripple-buffering om du skal bruke Vsync, siden "tapet" fra Vsync på denne måten blir enten helt eliminert, eller mye nærmere den "ukontrollerte" maksimums-FPS som du kan få uten Vsync. Hvis skjermkortet misser en vsync fordi backbufferet er f.eks bare 75% ferdig så vil ikke det bli kastet, de resterene 35% vil bli gjordt ferdig under neste vsync interval. Skjermkortet skriver kun til et buffer omgangen. Tripple buffering gjør at skjermkoret alltid har en buffer å rendre til istedet for å måtte vente på at back og front buffer bytter rolle. SKjermkoret slipper da å sitte idle (hvis da ikke frameraten er adskillelig raskere enn refresh raten). Men tripple buffering vil (logisk nok) ta opp mer minne. Lenke til kommentar
anon12234 Skrevet 28. august 2004 Del Skrevet 28. august 2004 sier seg jo selv at man får bedre ytelse med vsync av. når pc ikke venter på vertikal synkronisering går det jo raskere Lenke til kommentar
MistaPi Skrevet 28. august 2004 Del Skrevet 28. august 2004 sier seg jo selv at man får bedre ytelse med vsync av. når pc ikke venter på vertikal synkronisering går det jo raskere Jeg foreslår at du leser gjennom denne tråden og ikke minst linken til futuremark forumet. Hint: Det er ikke nødvendigvis tilfelle. Lenke til kommentar
Stigma Skrevet 28. august 2004 Del Skrevet 28. august 2004 (endret) MistaPi: Mye av det som sto i min forrige post var et forsøk på å forenkle det som sto i den mer fyldige og tekniske linken på starten av tråden. Men ja, det er riktig som du kommenterer =) Henrik2K2: Det stemmer ikke i alle tilfeller. Les konklusjonen fra linken på starten av denne tråden, så ser du tester gjort med Doom3. -Stigma Endret 28. august 2004 av Stigma Lenke til kommentar
MistaPi Skrevet 28. august 2004 Del Skrevet 28. august 2004 (endret) En rask test i Doom3 med vsync og tripple buffering. 1280x1024 HQ, 85Hz refresh rate. Vsync på - 57,3fps Vsync av - 58fps Vsync på uten tripple buffering - 39.8fps Endret 28. august 2004 av MistaPi Lenke til kommentar
El-Hadji Skrevet 28. august 2004 Del Skrevet 28. august 2004 Hvis dere har lest testen på xbitlabs, her så ser du at timedemo ikke akkurat er representativt for spillet i virkeligheten... Lenke til kommentar
Betroz Skrevet 29. august 2004 Forfatter Del Skrevet 29. august 2004 Hvorfor er ikke tripple buffering på default? Det burde iallefall være en mulighet for å stille på det i driverene til nVidia, men ser det ikke da Lenke til kommentar
Betroz Skrevet 29. august 2004 Forfatter Del Skrevet 29. august 2004 Hvis dere har lest testen på xbitlabs, her så ser du at timedemo ikke akkurat er representativt for spillet i virkeligheten... Genial test hos Xbitlabs! Anbefaler alle å lese den! Lenke til kommentar
Same- Skrevet 29. august 2004 Del Skrevet 29. august 2004 Så da er det tearing jeg merker i flere spill. Hmm har dere på vsync? Lenke til kommentar
Radial Skrevet 29. august 2004 Del Skrevet 29. august 2004 (endret) En rask test i Doom3 med vsync og tripple buffering.1280x1024 HQ, 85Hz refresh rate. Vsync på - 57,3fps Vsync av - 58fps Vsync på uten tripple buffering - 39.8fps Ehh.. hvor velger man triple buffering? Edit: Prerender limit 2 vs 3? (Rivatuner) Endret 29. august 2004 av Radial Lenke til kommentar
Veritas_ Skrevet 29. august 2004 Del Skrevet 29. august 2004 Hvor velger man trippel buffering ja Forresten så har jeg lagt merke til at jeg ikke ser noe tearing hvis spillmotoren ikke har satt en øvre grense på fps. F.eks så har HL motoren 100 som maks. Med V sync av da blir det MYE tearing. Men hvis jeg skriver inn developer 1 og fps_max 300 i HL så forsvinner all tearingen. Selv om skjermen ikke akkurat kan vise så mange bilder Men det er kanskje bare øynene min som ikke får med seg tearingen som kanskje er mindre da. Lenke til kommentar
Radial Skrevet 29. august 2004 Del Skrevet 29. august 2004 Eller har Doom3 noen ingame kommandoer for å enable triple buffering? Lenke til kommentar
MistaPi Skrevet 29. august 2004 Del Skrevet 29. august 2004 (endret) Med ATi - 3D->OpenGL->Compatibility. Med nVIDIA så er det ikke mulig via driverene. Jeg er heller ikke sikker på om det er noen tweak program som gir den muligheten. Uansett er det ikke mulig å tvinge dette i D3D pga en API begrensing. Det er dog enkelte spill der man kan enable tripple buffering i ingame instillingene. Endret 29. august 2004 av MistaPi Lenke til kommentar
Radial Skrevet 29. august 2004 Del Skrevet 29. august 2004 Grrr nvidia.. må da kunne enable triplebuffering på en eller annen måte? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå