Hosszú várakozás után végre elérkezett az idő, amikor leírhatjuk: az Oculus Rift hivatalosan is megjelent. Ez természetesen eleve örömteli hír, még akkor is, ha az idei CES óta tudható volt a start pillanata. Érdekesebb adat azonban, hogy elérhetővé vált az Oculus PC SDK 1.3-as verziója, amelyre természetesen kiadásra került egy futtatási környezet is. Utóbbi bevezeti az egyik legfontosabb funkciót, vagyis az aszinkron timewarpot, amely nagymértékben csökkentheti az apróbb akadások lehetőségét a virtuális valóságon belül.
Hirdetés
Az aszinkron timewarp funkció a Windows 7, 8, 8.1 és 10 operációs rendszereken működik, de a Microsoft külön figyelt erre a problémára, így a 10586.164-es Windows 10-es frissítésbe bekerült egy speciális optimalizálás az Oculus csomagjához, így a legjobb élményt ez az operációs rendszer kínálja a virtuális valóság iránt érdeklődő felhasználók számára. Az Oculus mérései szerint aszinkron timewarp nélkül a kiadásra kerülő címek egy részénél a számolt képkockák 5%-a veszett oda a teszten, vagy inkább úgy érdemes fogalmazni, hogy lekésték a vertikális szinkronizációt miatt szinkronablakot. Az aszinkron timewarp bevezetésével azonban a kritikus esetek egy részét sikerült kivédeni, így a játékok folyamatosabban futnak.
A második képkocka késett volna, de az aszinkron timewarp megmentette a helyzetet [+]
A fejlesztők számára ez azért is jó hír, mert a kód módosítására nincs szükség, egyszerűen be kell építeni az Oculus PC SDK 1.3-as verziójának támogatását, és az aszinkron timewarp automatikusan üzemképessé válik. Maga a funkció egyébként tesztelési céllal kikapcsolható, de az Oculus a véglegesen kiadott játékok esetében megköveteli a használatát.
Az Oculus újítását az NVIDIA és az AMD legfrissebb meghajtói is támogatják, de eltérő implementációval. Az NVIDIA VRWorks rendszere az NVAPI nevű szervizkönyvtáron keresztül működtethető a magas prioritású kontextusok bevetésével. A vállalat túlságosan nem megy bele a részletekbe, de gyakorlatilag arról van szó, hogy a rendszer elindítja az aszinkron timewarpot, amely egy kontextusváltást eredményez a grafikus vezérlőn, majd a lehető leggyorsabban meg kell oldani a számítást, mivel vissza kell adni az erőforrást a következő képkocka számításához. A soros feldolgozási modell miatt itt a programon belül is szükséges némi optimalizálás, így fontos követni az NVIDIA ajánlásait.
Az AMD implementációja eltérő, mivel eleve más lehetőségeken keresztül dolgoznak. A vállalat a saját szervizkönyvtára helyett a Mantle API-t használja a LiquidVR-en keresztül, így többek között szinte teljesen lecserélik a program által használt grafikus API input assembler lépcsőjét. Ez jóval több trükközésre ad lehetőséget, többek között biztosítja az aszinkron shaderek alkalmazását gyakorlatilag bármilyen grafikus API mellett.
Az AMD kétféle módot készített. Az alap aszinkron shader mód az első generációs GCN architektúrával érhető el, és ilyen formában az aszinkron timewarp számítása a képkockák számításával párhuzamosan történik meg. Ennél hatékonyabb mód a QRQ-val (Quick Response Queue) kiegészített aszinkron shader, amely a második és harmadik generációs GCN architektúrával működik. Ilyenkor az aszinkron timewarp nagyobb prioritással történik, de a grafikai számítások sem szünetelnek, így megmarad a párhuzamos munkavégzés is.