Új hozzászólás Aktív témák

  • VoidXs

    nagyúr

    válasz mekker #8261 üzenetére

    Persze, hogy nem. Úgy működik a dolog, hogy a főszál kap egy utasítást, hogy jöhet a következő képkocka. Ilyenkor egyet figyel a bemenetre, hogy lag ne legyen, aztán az új adatokkal, pl. kamera helyzete, kiadja a videokártyának a parancsot, hogy rajzolja meg a világot. Közben a proci foglalkozik a történések feldolgozásával, hogy a következő képkocka a valós állapotot reprezentálja. Logikus kérdés, hogy ha a proci berendezi a világot, a videokártya pedig kirajzolja, akkor miért ne működhetnének egymástol függetlenül, és csak a kártyától függne az FPS? Azért, mert nem mindent képes teljesen egyedül megoldani a GPU, a nagyon régi játékoknál például a CPU számolt árnyékot (pl. FEAR), ezért voltak tökéletesek, mert a modellek vetültek, nem pedig valami raycastos rácsos szutyok volt, mint manapság, de ezt nem lehetett többszálasítani (ebbe már ne menjünk bele, így is túl mélyen vagyunk), a GPU lényege pedig pont ez, hogy többszáz magja van. Eljutottunk arra a szintre, hogy minden effektet a GPU csinál, de a parancsot a CPU-tól kapja meg, hogy mit kezdjen. Egy egyszerűbb képkocka pl. így megy: kezdés - CPU: input, feltétlenük szükséges mozgatások (karakter, ami nála van, és a kamera) - CPU: ellenségek, támadások, GUI frissítés, stb., GPU ezalatt: alap dolgok rajzolása - egymást bevárják - CPU utasítja a GPU-t utómunkára, az ezt megteszi, CPU vár. És az utolsó úgy 10-20 alkalommal. Ez a probléma. Lehet csinálni külön GPU-hajtó szálat, de olyan aszinkront még nem láttál, ami ott leterhelt CPU alatt van, én is csak poénból próbáltam ki. A te gondod az első művelettel van, amíg a CPU tököl, a GPU nem tehet semmit, mert nem kapott munkát. A limited mibenlétét (MMO-nál általában CPU) ez szabja meg, hogy melyiknek több. Az utolsó lépés pedig elmagyarázza, miért is csökken az FPS csak videokártyát terhelő dolgoknál, ha CPU-limited van is. Tehát CPU-limitnél segíthetnek olyan dolgok, mint az utómunka kikapcsolása. Még így is szép bugok jönnek össze, pl. ha GTA-ban elütsz valakit, egy képkockáig beleszorul az autódba, és csak az ütközés utáni másodikon esik/száll el. Csak akkor lenne tökéletes, ha a CPU és a GPU felváltva dolgozna, de az csinos kis erőforrás-pazarlás lenne. Inkább 10-20 bug, mint 10-20 mínusz FPS.

    Ha már megírtam ilyen bonyolultan, el is küldöm.

    [ Szerkesztve ]

    W̘h̘̹̥̼a̝t̪̝͓̠̪ ̞͔s̼̱̣o͚̻̟un͚d̖̣̗̭̞̹ ̬ḏ̩̤͉o̹ͅe̟͚͕̺s͕̱̙ s̝̮̯͍̝̺o̰̪̲͓̦u̥̻͎n̘̳̟̗d̼ ̞̫̣̲̼̜m͚̼̳ak̪̩̻e̘̹̜?

Új hozzászólás Aktív témák