Gå til innhold

Geforce GTX 9xx Tråden


Anbefalte innlegg

Jeg har innimellom stusset på hvorfor det er så vanskelig for enkelte spillutviklere å la spillet kjøre i så mange frames som brukerens PC klarer. Som med Skyrim for eksempel. Men også fremdeles leser man om spill som blir cappet på 30 eller 60 fps selv på PC. (De er vel utviklet på konsoll først da.) Er dette grunnet for treg game loop?

Det er en mulig forklaring ja, at spillets interne logikk er såpass krevende at de må legge slike begrensninger, uten at jeg har analysert det spillet på denne måten. Alternativet må vel være at de med vilje har prøvd å synkronisere bildeflyt på en dårlig måte.

 

Siden slutten av nittitallet så har vel PC-spill stort sett hatt 100Hz eller mer, men i konsollverdenen har spills ytelse og timing vært nøye kontrollert opp gjennom årene. I NES, SNES og mange flere var klokkefrekvensen justert i forhold til utgangssignalet slik at spill kunne bruke CPUens klokke som timing, som av naturlige årsaker var "nødvendig" den gangen for å få grei bildeflyt. Også en rekke DOS-spill var kodet på en måte som gjorde de for raske på kraftigere maskiner.

 

Jeg vil anta at PC-spill i dag ligger et sted mellom 120 og 1000 Hz.

 

Game loop er for meg et nytt uttrykk. Er det slik å forstå at om en game loop er på 16,7ms, så vil et skjermkort som rendrer en frame på 3,3ms lage ett bilde, og så komme tilbake til, hva skal man kalle det? Enden på game loopen? Som fremdeles består av samme informasjon, og dermed blir neste bilde også identisk med det forrige? Altså man får 5 identiske bilder etter hverandre, og det vil man få også på en hypotetisk 300Hz skjerm? Og dersom man får game loopen ned i 5ms, så blir høyeste mulige fps med unike bilder 200? Jeg bare prøver å se om jeg har forstått riktig.

"Game loop" har kanskje flere navn, men det går enkelt og greit ut på den biten av programmet som får ting til å skje, altså den koden som tar all input, følger spillets regler og genererer en output som renderingen kan begynne på.

 

Frem til dobbeltkjerner ble vanlige så brukte faktisk spill å gjøre tegningen i game loop. Nå vet ikke jeg hva du kan av koding, men logisk sett så det slik ut pseudo-kode:

while (true) {
    if (diff(last, now()) > threshold) {
        read_input();
        game_logic();
    }
    render();
}
Dette er altså en bit med kode som kjører om og om igjen så lenge spillet kjører; leser input, gjør spill-logikken og tegner. Hvis du forstår snutten over så ser du at dette åpenbart vil medføre at rendering og spill-logikk vil kunne påvirke hverandre, altså tunge rendering-partier gjør spill-logikken uresponsiv og tung spill-logikk får rendering til å henge(mest problematisk for strategispill). Som du sikkert forstår er dette grunnen til at nesten alle spill gjør dette i separate threads i dag.

 

Hvis du tenker deg om så forstår du sikkert at det er ønskelig at spillets logikk skal gå så jevnt som mulig. Det vil være ganske dumt om du kjører et bilspill og så varierer spillets hastighet med hvor tunge ulike partier av løpet er. Det er ennå viktigere i spill som spilles over nettverk, f.eks. ville det vært rimelig dumt om det var best å spille Starcraft på en tregest mulig maskin. Det er naturlgvis til en viss grad mulig å lage en loop som ikke er kontrollert av en timer, men dette går på bekostning av presisjon og gjør det nær umulig å lage en fungerende kompleks spill-logikk. Hvis du skulle laget et spill som ikke er tidsbasert så kommer du unna med det, men om du skal lage Tetris så må du åpenbart time nøyaktig.

 

Slik ting fungerer i moderne spill blir spillets logikk utført før en tilstand blir overført til rendering-thread, ellers ville "spillbrettet" forandret seg mens skjermkortet tegnet, så spill lager derfor "snapshots" av spillets tilstand slik at renderingen blir korrekt. Hvis en game loop er ferdig hvert 5.ms så vil det alltid ta minst 5ms pluss tiden renderingen tar før et museklikk hos operativsystemet har blitt til en reaksjon i et bilde (i tillegg kommer forsinkelsene til punkt 1, 4 og 5 fra forrige innlegg).

Hypotetisk eksempel:

(museklikk)

Forsinkelse i hardware: 10 ms

Køing i operativsystemet: 5 ms

Intervall til game loop: 5 ms (200 Hz)

Rendering: 10 ms (100 FPS)

(vi sier du kjører uten V-sync)

Input lag på skjermen din: 5 ms

Totalt: 35 ms fra museklikk til reaksjon på skjermen (dette er mye bedre enn du får i praksis).

Så bytter du skjermkort slik at rendering tar 7 ms, nå er total responstid 32 ms.

 

Så for å svare på spørsmålet, hva skjer når du tegner raskere eller tregere enn spillets interne klokke? Se nøye på tegningen:

post-63307-0-73459000-1446919017_thumb.png

(nummereringen er bare for å indikere hvilken spilltilstand som tegnes)

Rendering thread vil hente siste ferdiggenererte spilltilstand, uavhengig av om forrige bilde var det samme.

Endret av efikkan
  • Liker 1
Lenke til kommentar
Videoannonse
Annonse

 

1) Hardware input: Forsinkelsen fra kontrolleren din til operativsystemet. For PS/2 ~0.73 ms per trykk, USB HID opp mot ~10ms(pga. verifisering), Bluetooth opp mot ~30ms med HID. I tillegg finnes det ikke-standardiserte protokoller.

 

 

Fra en Noob på området

Har mus og tastatur med USB kontakt og de er tilkoblet via disse.

 

Har USB 3.0/2.0 HUD Controller, noen forskjell fra HID?

 

 

Tenkte nå jeg skulle koble musa til PS/2 via en overgang fra USB som fulgte med HK. Vil dette gi en teoretisk forsinkelse på ca 0.73 ms?

 

Ville først koble musa til mitt Logitech G910 tastatur, og så via nevnte overgang til PS/2 porten, men den gang ei siden tastaturet ikke har ekstern tilkobling for USB.

Ville dette også gitt en teoretisk forsinkelse på ca 0.73 ms.

 

Kan jeg på noen måte koble både mus og tastatur til denne PS/2porten slik jeg teoretisk kan spare inn ca 9 ms?

Har en Acer XB270HU "IPS" skjerm med 4ms, snakkes mye om denne kontra den opprinnelige Rog skjermen som har 1 ms og pga dette egner ROG skjermen seg bedre til FPS spill.

Hvis jeg da kan spare inn ca 9 ms på og koble litt om på ting, ville det i hvert fall bety noe psykisk :ph34r:  :dribble: om ikke i praksis.(?)

 

Har sett noen HK har usb tilkobling for mus og tatstatur, da kansje nevnte overgang inkludert i disse portene?

 

Har Aus Rampage IV Black Edition x79 hovedkort

Endret av baggiebridges
Lenke til kommentar

Tenkte nå jeg skulle koble musa til PS/2 via en overgang fra USB som fulgte med HK. Vil dette gi en teoretisk forsinkelse på ca 0.73 ms?

Teoretisk vil det være 0.73 ms (per event) + en eventuell liten prosesseringsforsinkelse i musen/tastaturet. Dette er basert på studering av seriellprotokollen som brukes i PS/2.

 

Det er ikke garantert at alle tastatur og muser støtter PS/2-modus.

 

Ville først koble musa til mitt Logitech G910 tastatur, og så via nevnte overgang til PS/2 porten, men den gang ei siden tastaturet ikke har ekstern tilkobling for USB.

Hvis du forsøker å koble musen via tastaturet så vil ikke det fungere med PS/2. Det er bare å gi opp med et slikt tastatur.

 

Såpass dyre tastaturer bruker å ha relativt gode kontrollere, men dessverre gir ingen produsenter ut nok informasjon om hva som faktisk skjer.

 

Standard USB HID-tastatur støtter egentlig bare opptil 6 frie tastetrykk og sender de i kombinasjoner i USB 1.1-hastighet som gir opptil 10 ms forsinkelse pga. verifisering i protokollen. Det som er vanskelig å forstå er at en rekke dyre tastaturer har i flere år jobbet rundt dette med å avvike fra standarden eller bruke helt egne protokoller, som kan medføre noen kompatibilitetsproblemer. Men det største problemet er at vi har ingen måte å vite hvor raskt tastatur A er i forhold til tastatur B uten spesialutstyr, for det er ikke sikkert at de utnytter hele hastigheten til "USB 2.0" eller "USB 3.0". Så det er vanskelig å finne ut hvor raskt ditt G910 er sammenlignet med f.eks. et DasKeyboard 4 eller med et billig Dell-tastatur. På grunn av denne problematikken har mange av oss sverget til dyre PS/2-tastaturer fordi vi vet at de er bra. Men hvor bra de er i forhold til dit G910 aner vi ikke. Kanskje til og med noen tastaturer er raskere, men det burde vi hatt testprotokoller for å måle.

 

Har en Acer XB270HU "IPS" skjerm med 4ms, snakkes mye om denne kontra den opprinnelige Rog skjermen som har 1 ms og pga dette egner ROG skjermen seg bedre til FPS spill.

Hvis jeg da kan spare inn ca 9 ms på og koble litt om på ting, ville det i hvert fall bety noe psykisk :ph34r::dribble: om ikke i praksis.(?)

Vel, nei du snakker her om noe helt annet. Input lag (forsinkelsen frem til det skjer forandring) er svært bra på din XB270HU med sine 3 ms som er nær CRT-nivå, men gray-to-gray-reponstid på 4 ms som din har (kontra ned i 1 ms på TN) er noe som hovedsaklig påvirker hvor mye etterslep du får.
Lenke til kommentar

Siden erfaringen sitter her.

 

Hva er forskjellen i ytelsen på disse kortene prosentvis med 970 som utgangspunk? Tenker 1080 og 1440p.

GTX970

GTX980 4GB

GTX980 6GB

GTX980Ti

TITAN X

Og hvis man skal gå for et single 980, har det noe for seg å velge 6GB fremfor 4GB utgaven? Skjermen min kjører native 1440P  (27", gammel og småsliten) men kan hende jeg bytter ut denne en 27" G-SYNC 1080P Asus IPSish sak. 4K gaming er ikke noe jeg kommer til å titte på før om en del år. Et 980-4GB kan man vel få forholdsvis rimelig? Spiller lite nå sammenlignet med før men når jeg først skal spille vil jeg gjerne ha litt mer eyecandy enn på PS4 og neste spill blir Fallout 4.

Endret av Theo343
Lenke til kommentar

Siden erfaringen sitter her.

 

Hva er forskjellen i ytelsen på disse kortene prosentvis med 970 som utgangspunk? Tenker 1080 og 1440p.

GTX970

GTX980 4GB

GTX980 6GB

GTX980Ti

TITAN X

 

Og hvis man skal gå for et single 980, har det noe for seg å velge 6GB fremfor 4GB utgaven? Skjermen min kjører native 1440P  (27", gammel og småsliten) men kan hende jeg bytter ut denne en 27" G-SYNC 1080P Asus IPSish sak. 4K gaming er ikke noe jeg kommer til å titte på før om en del år. Et 980-4GB kan man vel få forholdsvis rimelig? Spiller lite nå sammenlignet med før men når jeg først skal spille vil jeg gjerne ha litt mer eyecandy enn på PS4 og neste spill blir Fallout 4.

 

Enten 970 eller 980 Ti. I følge det du skriver selv, så er det vel Ti du skal ha. Går jo an å velge 970 som et slags "vente kort" frem til nVidia Pascal kommer neste vår/sommer da.

  • Liker 1
Lenke til kommentar

Tror jeg hadde en brainfart ift. den biten efikkan. Noe jeg mente å huske fra lanseringen men som nok er feilhusk :) Mulig jeg da går for et 970 ventekort til jeg skal oppgradere hele riggen. Synd Cannonlake ikke kommer samtidig som Pascal.

 

 

EDIT:

Hadde vært kult om Komplett lagde en "Fallout 4 + MSI GTX970 RED Gaming" bundle til en god pris hm.

Har sett denne, men det er bare print på bakplata.

http://i.imgur.com/tDZOmDw.jpg

Endret av Theo343
Lenke til kommentar

Med 1440p och en del eyecandy hade i vart fall jag INTE köpt 970. En sak är att Gsync hjälper på flyt, men går du tom för vram så gör du. Med 3.5GB vram går det fort tomt i 1440p. Jag har 4GB med GTX 980 och har en 1440p skärm på posten men jag är rädd 4GB blir för lite. Nu är inte alla spel dåligt optimerade men det blir fler och fler....

Lenke til kommentar

Med 1440p och en del eyecandy hade i vart fall jag INTE köpt 970. En sak är att Gsync hjälper på flyt, men går du tom för vram så gör du. Med 3.5GB vram går det fort tomt i 1440p. Jag har 4GB med GTX 980 och har en 1440p skärm på posten men jag är rädd 4GB blir för lite. Nu är inte alla spel dåligt optimerade men det blir fler och fler....

Sludder og vas. Hvilket spill krever over 3.5GB i 1440p hvis fps er over 60 med et gtx 970? Under 60 fps teller ikkje ;)

 

Black ops 3 bruker 4GB vram og det går smooth med gtx 970....

 

Kommer egentlig broadwell-e? Ikkje direkte på skylake-e?

Endret av Nizzen
Lenke til kommentar

Sludder og vas. Hvilket spill krever over 3.5GB i 1440p hvis fps er over 60 med et gtx 970? Under 60 fps teller ikkje ;)

Black ops 3 bruker 4GB vram og det går smooth med gtx 970....

 

Kommer egentlig broadwell-e? Ikkje direkte på skylake-e?

 

 

Å si at det går smooth er kanskje å overdrive ? Om man sammenligner med 980 så er det klart at i mange tilfeller så kan man legge merke til når kortet plutselig tar i bruk de siste 0.5Gb med minne ( En gammel link ) ,  med de siste driverne så har Nvidia heldigvis fått tatt tak i dette problemet , men det har ikke forsvunnet helt og noen ganger vil man oppleve det i et spill.

 

Personlig vil jeg påstå at det er litt overdrevet det hele , men fakta er at det vil faktisk være litt stuttering fra tid til annen når kortet går over 3.5Gb med minnebruk.

Lenke til kommentar

 

Med 1440p och en del eyecandy hade i vart fall jag INTE köpt 970. En sak är att Gsync hjälper på flyt, men går du tom för vram så gör du. Med 3.5GB vram går det fort tomt i 1440p. Jag har 4GB med GTX 980 och har en 1440p skärm på posten men jag är rädd 4GB blir för lite. Nu är inte alla spel dåligt optimerade men det blir fler och fler....

Sludder og vas. Hvilket spill krever over 3.5GB i 1440p hvis fps er over 60 med et gtx 970? Under 60 fps teller ikkje ;)

 

Black ops 3 bruker 4GB vram og det går smooth med gtx 970....

 

Kommer egentlig broadwell-e? Ikkje direkte på skylake-e?

 

Va fan har fps med saken att göra?

Shadow of mordor? Gta V? Black ops 3? Far Cry 4? BF4?

Lenke til kommentar

 

 

 

Med 1440p och en del eyecandy hade i vart fall jag INTE köpt 970. En sak är att Gsync hjälper på flyt, men går du tom för vram så gör du. Med 3.5GB vram går det fort tomt i 1440p. Jag har 4GB med GTX 980 och har en 1440p skärm på posten men jag är rädd 4GB blir för lite. Nu är inte alla spel dåligt optimerade men det blir fler och fler....

Sludder og vas. Hvilket spill krever over 3.5GB i 1440p hvis fps er over 60 med et gtx 970? Under 60 fps teller ikkje ;)

 

Black ops 3 bruker 4GB vram og det går smooth med gtx 970....

 

Kommer egentlig broadwell-e? Ikkje direkte på skylake-e?

Va fan har fps med saken att göra?

Shadow of mordor? Gta V? Black ops 3? Far Cry 4? BF4?

Det jeg mener er om man setter grafikkinstillingene så høyt at gpuen er en seriøs flaskehals. Man får typisk 30-40 fps. Da er det jo samme om det er for lite minne til tider, når spillet er uspillelig uansett om gpu hadde hatt 12GB vram. Hvis du skjønner hva jeg mener her på morgenkvisten :p

 

For mange går black ops 3 laggfritt/stutterfritt selv om spillet bruker 4GB vram med gtx 970 :) Så muligens har nyere drivere gjort noe bra for et "drittkort" som gtx 970 :p

Endret av Nizzen
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...