To co píše p. Olšan podepisuji a připomínám, že stejný problém bude mít tato technologie u síťových her, kde každý hráč je neodhadnutelný element a tedy žádná predikce posunu obrazu není možná. Pod minulým článkem jeden přispěvovatel na obhajobu této technologie použil kouzlem nechtěného vtip který mi ho připomněl a který zněl takto " CPU Pentium je rychlejší, protože 486 počítá, zatím co Pentium odhaduje". Vtip si tehdy dělal legraci z zjištěné chyby v Pentiu kdy CPU v určitém druhu výpočtů vykazuje chybný výsledek. Ten přispěvovatel to ale otočil tak, že se tomu Pentiu vlastně křivdilo a v zájmu zrychlení na odhadování není nic špatného. Až sem může dojít nekritická obhajoba vkládaných snímků.
To vkládání snímků v DLSS 3 opravdu není nic extra, osobně bych ho ve hrách nepoužíval. Nechápu proč se AMD snaží vytvořit něco podobného... Respektive chápu, ale je blbost dělat něco co nefunguje jen proto, že to dělá i konkurence.
Mimochodem, úplně bych nepřirovnával FSR 3/DLSS 3 ke smooth motion u televizí, protože přeci jen televize nemá nic jiného než jen obraz. Tyhle tenchologie mají aspoň dostupné veškeré renderovací vrstvy + vektory pohybu. Výsledek by měl být lepší.
Dovolil bych si nesouhlasit. Hráči přece jsou odhadnutelný element. Lidé jsou tvorové kteří se chovají podle schémat ale ano někdy z nich vybočují. Na odhadnutí budoucnosti je přece založené pojišťovnictví, medicína ale i predikce u procesorů. Vše je o sledování parametrů a o tom jestli se vám vyplatí nebo nevyplatí něco předvídat. Jak praxe ukazuje většinou se to vyplatí.
To su ale 2 neporovnatelne veci. Je uplne nieco ine ak procesor pocita chybne, co je dost pruser, ako ked pocitas medzisnimky. Nerobia to uz nahodou TV v ramci multimedialnej vybavy? Uz som to pisal aj inde, ale potom by sme mohli v real-time grafike kritizovat vsetko. Vela postupov stoji na fakeovani, aby renderovany obraz vyzeral lepsie. Ci uz ide o dopredu nabakovane tiene do textur alebo umele svetelne zdroje, ktore nie su vidiet, ale pouzivaju sa na vernejsie nasvietenie? Dalej renderovane shadow mapy, ambient occlusion mapy a dalsie pomocky na tiene. A tu sa ide robit peklo z dopocitavanych (a teda urcite nie vymyslenych, ako to niektori ludia prezentuju) medzisnimkov, co ma za ucel zlepsit plynulost obrazu?
Samozřejmě se předvídat dá. Ve hře kde se hraje singl, tam to může fungovat. U síťové hry tomu ale nevěřím. Čím více proměnných, tím obtížněji se predikuje z důvodu že každá další proměnná zhoršuje predikci geometrickou řadou. Příkladem může být hra War Thunder, tam se stroje pohybují velmi rychle a může jich být na bojišti až tuším 64. Každý z těchto hráčů je nevypočitatelný a navíc si představ že každý využívá tuto technologii a ty výsledky se na daném bojišti vůbec nemusí potkat. Protože u každého hráče odhad posunu obrazu může být jiný (aby bylo jasno nemluvím o perspektivě pohledu). Jsou hry kde moc záleží na výši FSP a níži lagů a jejich tipickým zástupcem je právě War Thunder, kde jak jsem vysvětlil tuto technologii použít dost dobře nelze..
No u TV jsem měl za to, že snímky jsou v buferu a tak TV zná následující snímek dřív než se zobrazí a tak může vygenerovat dopočítaný snímek a tak se zvedne snímková plynulost aniž se tato technologie může splést, protože vidí dopředu. To ale u hry nejde, pokud se tu nebavíme o naskriptované scéně.
Tam kulhalo to přirovnání. Celé se to sjednotilo kvůli jedinému slovu v tom vtipu a to že odhaduje. Nemělo by být přípustné cokoli zrychlovat za cenu kvality výstupu. To Pentium samozřejmě nebylo rychlejší než ta 486 díky tomu, že měla chybný výstup a už vůbec né kvůli nějaké predikci. Tady šlo o chybu v čipu která se musela mikrokodem obcházet. Mimochodem CPU 486 byly opravdu díky své vysoké frekvenci v některých výpočtech rychlejší než první Pentia. Bylo to čistě jen rýpání majitelů CPU 486 do majitelů prvních Pentií
První nebylo https://en.wikipedia.org/wiki/Branch_predictor#History
Ale bylo první x86 (chvíli jsem si myslel, že to snad bylo už v 486ce, ale tam měl premiéru pipelining).
Jak může hráč reagovat na informaci, která existuje, ale hráč jí nevidí? Tak jsem pochopil p. Olšana. Ten snímek existuje, ale je pozdržen než se vygeneruje mezisnímek. Když jeden hráč to bude používat a druhý ne, tak ten druhý už má informaci a může s ní pracovat, zatímco ten první ne. Přirovnal bych to k pohybování se dvou hráčů v mlze kdy jeden vidí o krok dále. Jestli toto stojí za pocit vyššího FPS, tak za mě ne a jak už jsem napsal. Je mi jedno zda to bude používat NV a nebo AMD.
Nesouhlasím. Ale jediný rozdíl (sigle a multi player) je v tom, že místo jednoho prvku který musíte předvídat jich tam máte x přičemž je počet hráčů. Je to jenom o množství sledovaných veličin a výpočetním výkonu na toto sledování a predikci. Tato predikce Vám následně ušetří mnohem více výkonu díky tomu že je na jisté okamžiky připravena a trefí se do nich. To samí máte u paralelních úlohách které zpracovávají procesory a predikují jejich postup.
Počet predikovaných nic nevylučuje. Jenom je větší režie s predikcí.
První zásadní omyl je, že je mezi singlem a mulťákem z hlediska predikcí nějaký velký rozdíl. I NPC se v mnoha hrách pohybují náhodně, takže ani singl se predigovat nedá.
Co lze predigovat je krajinka. Například letim v letadle a zem pode mnou lze krásně predigovat. Pohyby objektů, které se pohybují náhodně se predigovat moc dobře nedají, čehož důkazem je DLSS 3.0. Naschvál se podívejte na nějaká testovací videa, kde právě u objektů v pohybu (typicky u postav ve hře) se zobrazují nesmysly.
FSR3 i DLSS3 jsou a budou skvělé technologie a pokud to bude podporovat Microsoft Flight Simulator, tak si to jistě zapnu. Bych byl blázen, abych to zapínal v FPSce jedno jestli singlové nebo mulťáku.
"Samozřejmě se předvídat dá. Ve hře kde se hraje singl, tam to může fungovat."
IMHO to v praxi bude spíš úplně stejné, hrát roli bude čistě výsledná "vizuální stránka", tj. dynamika a chaotičnost pohybu. Blbé bude i, když se bude rychle hýbat pozadí / kamera. Takže kdybyste jako dělal v nějaký FPS akci kotrmelce, tak bude legrace. Vlastně, asi by byly vidět artefakty i třeba v hypotetické situaci, kdy třeba v RPG pauznete akci, ale pak začnete zuřivě hýbat volnou kamerou. Přímo "pohyb" žádný, ale ten interpolátor bude zažívat peklo :)
On ten interpolátor nebude mít přístup k informacím o tom, jak reaguje na co AI botů a tak, to je sice teoreticky možné, ale komplexní problém a v praxi to IMHO neuvidíme, to už je jednoduší prostě počkat na silnější grafiky a vybodnout se na AI predikco-interpolace.
V praxi to zhruba funguje tak, že jsou použité snímky coby matice pixelů, k tomu jsou informace o pohybových vektorech 1) převzaté ze stádia upscalingu DLSS 2.x (FSR 2.x) nebo z TAA, 2) další vektory pro případnou opravu nebo "druhý názor" dodané Optical FLow algoritmem, který dělá analýzu těch rastrů pixelů naslepo sám bez toho, aby prostě důvěřoval vektorům předaným hrou/DLSS2.
Složitější inforamce jako chování AI botů nebo jiná sémantika za těmi pixely tam nevstupuje.
Aby predikce byla užitečná, musí být mnohem rychlejší než reálný výpočet , takže nemůže být ultrakomplexní a práce s takhle složitými druhy vstupu by komplexní asi byla příliš.
Mě osobně třeba tohle moc nevadí. Zpoždění o jeden snímek je kolik? Dejme tomu při 40 FPS je to 25ms. Zkoušel jsem otestovat své reakce na humanbenchmark.com a vyšlo mi 200-230ms, což je průměr. Těch 25ms tam tedy není zas takový problém, podle mě.
Spíše by mi vadily artefakty v obraze. Viděl jsem nějaké video kde uživatel testoval Flight Simulator s DLSS 3 a byla to celkem hrůza. To ukázkové video nVidie muselo být na hodně pokusů ????
Tak jinak. Příklad vy vidíte scénu jako váš prediktor dalšího posunu obrazu. Příkladem bude letecká bitva nad relativně malým prostorem. každý hráč má jiný styl boje a každý už jen díky perspektivě svého pohledu vyhodnocuje včetně jeho prediktoru posunu obrazu jinak a jeho chování a rozhodování bude jiné. Do hlavy mu nevidíš. Navíc kuriózně až humorně může dojít k situaci že tvému prediktoru do predikce posunu obrazu hodí vidle prediktor posunu obrazu jiného hráče a každý z vás uvidí něco úplně jiného. Jak prediktor třeba bude řešit situaci kdy dvě letadla letí proti sobě a je zřejmé že když se nevyhnou tak se srazí. Jak tvůj prediktor a prediktor druhého hráče odhadne kamto letadlo pošle co letí proti mě. Hodí to doleva? Doprava? Nahoru? dolu? Máš kružnici o stovkách úhlů a ty nad tím nemáš kontrolu. Stejně je na tom ten proti tobě. Problém je že to nedokáže odhadnout ani člověk a musí čekat na reakci toho druhého. Prediktor ale takto nepracuje on ti musí v příštím snímku říci letí dál rovně a nebo udělá něco jiného Ale co?
Já jsem jen připustil snadnější predikci posunu obrazu u singl her. Protože v boti mají ve hře nějaké stanovené vzorce chování a pokud má prediktor k těmto vzorcům přístup, (nyní záměrně ignoruji umělou inteligenci botů, protože umělá inteligence se ve hrách dnes prakticky nevyskytuje) dá posun obrazu přece jen snadněji odhadnout. U mulťáku je to vyloučené, tam se není čeho chytit.
Hmm, u toho problému predikce je to myslím trošku jinak. Ono minimálně DLSS 3 nedělá predikci budoucího pohybu, ono si v momentě kdy mám vypočítaný a zobrazený snímek N počká na ten budoucí pohyb ve snímku N+1, ale nezobrazí ho a místo toho z N+1 udělá N+2 a interpoluje nový umělý N+1 jako mezikrok mezi tím, co vidí v N a novopečeném N+2.
Takže při plynulém pohybu to docela trefí (problém je překrývání objektů a pozadí nebo objektů a objektů). Co může zblbnout, je náhlá akcelerace nebo změna, protože když například jakoby změna nastane mezi původním N a N+1, tak nevíme, v jakém časovém bodě to přesně je, aby to vypočítaný nový N+1 zohlednil.
Ale to není taková velká chyba v odhadu, jako by bylo při predikci dopředu, kdy člověk může zahnout doleva nebo doprava a DLSS 3 / FSR 3 prostě nemůže vědět, co se stane.
Nevýhoda (vedle těch artefaktů kvůli okluzi/disokluzi, špatně identifikovaným objektům nebo pohybu a tak) ale je to bufferování budoucího snímku navíc, proto je tam VŽDY ta zhoršená latence (a moc se mi nelíbí, jak nvidia kalí vodu tím, jak do toho jako přibalila Reflex a tváří se, že najednou to naopak latenci zlepšuje, už jsem viděl lidi, které to oblblo).
IMHO AMD taky použije tu interpolaci mezisnímku, takže by tohle pro něj mělo platit taky. Ta predikce dopředu prý není dobrý nápad, co jsem slyšel (a mluví proti ní i ty tady dosud přednášené argumenty).
Ale to je stále jedno. Mám tam počítačem řízené cíle které nepotřebují predikci. Pak tam jsou hráči u kterých asi chci znát predikci. Z těchto hráčů jsou pak relevantní hráči u kterých má význam predikovat a zbytek kteří mne neovlivní a nepredikuji je. Opět tvrdím, že to jenom o výpočetním výkonu.
V tomhle to je "každý hráč má jiný styl boje" poznání jeho stylu je to jak ho můžete odhadnout a zkusit predikovat. Pak ale neplatí to Vaše "Do hlavy mu nevidíš." Jeho styl boje je právě ono vidění do jeho hlavy. V tomhle si odporujete.
Hej. Reflex sa pouzival a zaviedol uz predtym. Ale to nic nemeni na tom, ze sa nim kompenzuje latencia, ktoru zavadza DLSS3, takze to beriem ako nieco v jednom baliku. Keby tam reflex nebol, zasa by sa strhla kritika na prilis vysoke latencie. Ta je dokonca z casti aj teraz a to su latencie okolo nativu. Pricom sa niektori ludia tvaria ako keby tie hry boli odrazu nehratelne.
"Nevýhoda (vedle těch artefaktů kvůli okluzi/disokluzi, špatně identifikovaným objektům nebo pohybu a tak) ale je to bufferování budoucího snímku navíc, proto je tam VŽDY ta zhoršená latence"
nvidia nekali vodu. rendering pipeline ma hodne kroku nez se vykresli cely snimek. vektory z N+1 ziska velmi brzy v jeho renderovani. z N+1 udela N+2, a zatimco se N+2 stale renderuje (rozumnej bezi dalsi casti pipeline), vyprodukuje N+1. N+2 neni nikde bufferovany, ani nijak opozdeny. jen se z jeho pocateni faze vytahnou data, ktera se pouziji v interpolovanem N+1, ale o nekolik milesekund drive, nez by to bylo k dispozici v plne renderovanem snimku. proto to pohama s reflex technologii. de facto hrac vidi informaci o pohybu drive, nez by ji videl, kdyby cekal na plne renderovani, za cenu toho, ze nektere veci muzou trochu lhat (zmenene osvetleni, barvy, pruhlednost atd.). uplne vyrenderovany N+2 prijde hned jak je k dispozici
@tynyt: Ale pri pouziti reflexu je nakoniec input lag na urovni nativu bez DLSS. Takze hras ako predtym ale s lepsou plynulostou obrazu. Mas teda na vyber. Hrat hru bez DLSS, alebo s DLSS3 a lepsou plynulostou obrazu, ale s rovnakou latenciou ako predtym, alebo pouzijes iba reflex ci spolocne alebo bez DLSS2 a zlepsenou latenciou. To uz si snad kazdy vyberie a nevidim na tom nic zle.
@tombomino
Preto hovorim v porovnani s nativom. Je jasne, ze DLSS3 pridava na latencii a preto je tam reflex, aby to kompenzoval. Takze realne mas input lag ako pri native a niekedy aj tak stale o nieco lepsi ci horsi, za co si "kupujes" lepsiu plynulost obrazu. Vzdy si samozrejme kazdy moze vybrat lepsie latencie bez DLSS a s reflexom. Keby som mal GPU s podporou DLSS3, rozhodoval by som sa podla hry. Ako by sa mi pocitovo hrala a vyzerala najlepsie.
Je asi jasné, že kompetetivní hráč DLSS zapínat nebude, ani RT. U těchto druhů zápasú se vypínají jakékoliv úpravy obrazu, které zhoršují viditelnost, FPS a latence (např. halo efekt).
U “koridorovek bez složitého prostředí” může být ale DLSS3 super (nezkoušel jsem), pokud chybí FPS. Za mě jako technologie zajímavé.
Osobně si myslím, že FSR jednoho dne DLSS zválcuje, protože DLSS má “vendor lock-in” a AMD má v pohodě konkurenční GPU (a jednoho dne možná i Intel).
Protože Reflex se dá použít i bez DLSS 3 a snižuje latenci i bez DLSS 3 (ostatně byl odhalenej dávno předtím a s DLSS 3 nijak nesouvisí).
Marketing Nvidie se podle mě schválně snaží tím spojováním překrýt to zvýšení latence u DLSS 3 a snaží se, aby to vypadalo, že to řešení má to nej z obou světů (vyšší frekvenci a současně lepší latenci). Jako by latence bez DLSS 3 s Reflexem nebyla ještě lepší.
Přitom by tohle asi vůbec nemuseli, protože pro ty hry, kde by DLSS 3 mohlo mít smysl, stejně nějakých 10-20 ms latence nehraje roli. Oni se ale asi snaží vytvářet dojem, že DLSS 3 se dá použít všude, aby mohli lákat na ten 2x vyšší výkon, v tom je asi ten problém.
Po tom co jsi byl úplně mimo s DLSS, ale o to ostřeji ses o něm hádal (u DLSS 2.0 už tuším nezbylo než se hořce hádat o tom, žes u DLSS 1 nebyl mimo, i když to tehdy Nvidia sama potvrdila), si teď zase budeš vymýlšet alternativní teorie o tom, jak funguje DLSS 3?
Tohle je naprostá blbost:
nvidia nekali vodu. rendering pipeline ma hodne kroku nez se vykresli cely snimek. vektory z N+1 ziska velmi brzy v jeho renderovani. z N+1 udela N+2, a zatimco se N+2 stale renderuje (rozumnej bezi dalsi casti pipeline), vyprodukuje N+1. N+2 neni nikde bufferovany, ani nijak opozdeny. jen se z jeho pocateni faze vytahnou data, ktera se pouziji v interpolovanem N+1, ale o nekolik milesekund drive
DLSS 3 musí čekat na obrazová data, pixely, ne jen vektory budoucího snímku, bez nich nic neudělá. Optical Flow pracuje s pixely snímku, bez nich se fakt neobejde. Je to vidět třeba i z popisu u té implementace pro video (FRUC): https://www.cnews.cz/generovani-snimku-z-nvidia-dlss-3-pujde-pouzit-i-na-video-a-filmy-pri-prehravani-ci-konverzich/
Vkládání mezisnímku mezi dva dokončené snímky.
de facto hrac vidi informaci o pohybu drive, nez by ji videl, kdyby cekal na plne renderovani, za cenu toho, ze nektere veci muzou trochu lhat (zmenene osvetleni, barvy, pruhlednost atd.).
Fakt ne.
uplne vyrenderovany N+2 prijde hned jak je k dispozici
Fakt ne.
Fakt mě nebaví muset se do krve hádat s člověkem, kterýho nezajímá, jak ty věci ve skutečnosti fungujou, ale místo toho si vymýšlí fanouškovskou fikci tom, jaký by to v alternativním vesmíru mohlo být 10x lepší a sofistikovanější pro větší slávu značky a fanklubu (a taky jsem nabyl dojmu, že bys byl ochotný suverénně tvrdit i věci, o kterých víš, že to pravda není...).
Už těch několik předchozích incidentů byla naprosto zbytečně ztracená energie a čas, kterého dodnes lituju, takže dávám ban, kteýr měl být už tehdy.
(Edit: udělal jsem to napoprvé blbě, takže se omlouvám za to, že přijde bezpečnostní mail o změně registračního mailu, to už je revertované.)
Jako samozřejmě to nemusí být úplně tragédie. Hry často mívaly podobný buffer snímků i předtím, než přišla tahle technologie. Až před pár lety na to AMD (Anti-Lag) a Nvidia (nejdřív nastavení v fronty v ovladačích, pak Reflex) začaly zaklekávat a začaly propagovat to zkrácení fronty snímků jako zlepšení latence. Ale předtím set tak dlouho hrálo.