Hlavní navigace

PhysX a Batman: Arkham Asylum v zajetí marketingu?

1. 10. 2009

Sdílet

Zdroj: Redakce

Batman: AA ve dvou významech

Batman: není AA jako AA

Batman: Arkham Asylum je jedním z nových titulů, na kterém se Nvidia podílela v rámci programu The Way It's Meant To Be Played. Podle AMD šlo ale „podílení se“ trochu dál. Ian McNaughton, člen vývojářského týmu ovladačů ATI Catalyst, se v diskuzi na blogs.amd.com rozepsal o „problému“ s touto hrou na grafických kartách ATI Radeon. Nepřímo přitom naznačil, že za sabotáží Radeonů stojí Nvidia.

O co vlastně jde? V Batman: Arkham Asylum na Radeonech nelze zapnout anti-aliasing přímo ze hry, je potřeba jej vynutit v ovladačích. Narozdíl od karet Nvidie, u kterých je položka vyhlazování hran dostupná.

„Výhoda AA přímo ve hře spočívá v tom, že grafický engine může vyhlazování použít výběrově jen na některé scény. AA vynucené v ovladačích vyhlazuje hrubou silou všechny scény a objekty, což je daleko pracnější.

Navíc je položka anti-aliasingu ve hře deaktivována v případě, že je detekována grafická karta ATI Radeon. Podařilo se nám to ověřit změnou Device ID našich karet v demu Batmana. Tím, že jsme aplikaci takto obešli, jsme získali možnost zapnout vyhlazování přímo ve hře a výsledkem byl značný nárůst výkonu (oproti AA vynucenému v driverech). Pro plnou verzi hry je ale tento postup nepoužitelný, protože hra používá ochranu proti kopírování.“

Což zřejmě znamená, že na plnou hru je driver team krátký, protože by bylo nutné ji cracknout. A jelikož to je v rozporu s licenčním ujednáním a v mnoha zemích i v rozporu se zákonem, AMD k tomu pochopitelně nemůže nikoho nabádat, natožpak tvořit takový crack samo.

McNaughton dále poprosil recenzenty, aby v zájmu férovosti v Batman: Arkham Asylum vyhlazování hran nepoužívali. Dodal, že při interním testování dosáhly Radeony na hratelné framerate i v rozlišení 2560 × 1600 px s 4× AA a 8× AF.


Zdroj obrázku: Virgin Media

Než se pustíme do kázání o zlé a zákeřné Nvidii, která podplácí vývojáře, aby sabotovala výkon konkurenčních karet, poslechněme si, co nám kalifornská firma k záležitosti řekla. Toto vyjádření kdosi zkopíroval do již zmíněné diskuze na blogs.amd.com, jeho pravost nám potvrdil regionální zástupce Nvidie Igor Staněk (jemuž tímto z celého srdce a za celou redakci přeji všechno nejlepší k jeho včerejšímu svátku), který nám vyjádření přeposlal e-mailem.

„Zástupce AMD před několika dny napsal, že Nvidia zmanipulovala podporu AA v Batman: Arkham Asylum na AMD kartách. AMD také tvrdila, že program TWIMTBP jim brání spolupracovat s vývojáři. Obě tato tvrzení jsou nepravdivá.

Batman: Arkham Asylum je založen na Unreal Engine 3, který nativně nepodporuje anti-aliasing. V těsné spolupráci s Eidosem jsme tuto feature do hry přidali a řádně otestovali na GeForce. Nic nebránilo AMD, aby udělala to samé.“

Všimněte si hlavně, že Batman: AA běží na Unreal Engine 3. Jak mnozí z vás již vědí, kombinace UE3, anti-aliasing a Radeon znamená téměř vždy jen problémy. Někde AA nefunguje vůbec, jinde se musí vynucovat v ovladačích, někde se postup neobejde bez přejmenování EXE souboru hry… vždy se ale jedná o obcházení ovladačů Catalyst a nikoliv hry samotné, jako v případě Batman: Arkham Asylum. Právě deaktivace AA ve hře na základě rozpoznání Device ID grafické karty je to, co nás na současném případu tolik mate.

Jedno je každopádně jisté: Batman bude jedním z titulů, které bude Nvidia během letošního podzimu vyzdvihovat. Předurčuje jej k tomu ostatně i implementace PhysX. Je velmi pravděpodobné, že Eidos na oplátku obdržel nějaký sponzoring – koneckonců, sama Nvidia tvrdí, že AMD nalilo velké peníze do DiRT 2, jedné z prvních Direct3D 11 her, a tak soudím, že takovéto obchody jsou celkem běžnou praxí. Zdali však Nvidia měla prsty v „sabotáži“ vyhlazování na Radeonech, se asi nikdy nedozvíme.

Než se vrhnete do diskuze, rád bych vás poprosil, abyste si právě přečtené nechali chvíli uležet v hlavě. Nejlépe při čtení druhé kapitoly článku, která pojednává o tentokrát už jistojistě eskapádě marketingového oddělení Nvidie.

Aktuálně: Takřka v moment vydání článku nám poslal nejnovější vyjádření Nvidie její lokální zástupce, Igor Staněk. Odpověď obsahuje i konzultaci s jedním z nejvýše postavených lidí ve firmě (nejde o PR či obchodníka, ale technicky založeného Tonyho Tamasiho) vedenou asi před hodinou přímo na GTC v San Jose:

„Řeknu to jednoduše. Na vyjádření AMD není snad jediné slovo pravdy. AMD dostalo build Batmana dávno před uvedením na trh a neudělala s tím vůbec nic. Ono je jednoduché podlehnout lenosti a vždycky čekat, co udělá ten druhý, ale místo takových vyjádření bych AMD doporučoval konečně najmout softwarové inženýry, kteří mohou odvést stejnou práci jako ti naši. V našem zájmu není nic takového, co AMD tvrdí a upřímně neznám jediného vývojáře na světě, který by na něco podobného přistoupil.

Unreal Tournament nepodporuje nativně AA a my jsem museli odvést spoustu práce, abychom ho zprovoznili na našich kartách. Všechno je testovano a optimalizováno na naše karty, takže pokud změníte ID Radeonu na GeForce, tak se vám to samozřejmě zapne, ale to už je na vaše vlastní riziko. Nemůže po nás přece někdo chtít, abychom dodělaváli AA i na ATI karty. To je snad pochopitelné a hlavně samotní vývojáři by nic podobného ani nepovolili, vzhledem k tomu, že nemají ani všechny nutné informace a verze ovladačů. Jednoduše nikdo není schopen garantovat bezproblémovost tak, jako je to v případě našeho hardware.

Na druhou stranu rozumím AMD, že pokud v podstatě nemá zdroje na spolupráci s vývojáři, tak podobné výroky a mlženi jsou to jediné, co zbývá.“

A to, milé děti, je přesně důvod, proč by herní vývojáři měli co nejrychleji přejít na Direct3D 10.1 (nebo novější) se standardizovaným rozložením vzorků při multisampling vyhlazování. Pak by měl Eidos jistotu, že jedna implementace bude alespoň v základních režimech spolehlivě fungovat na hardware všech výrobců a nemusel by kvůli tomu nastavení zamykat.

PhysX: zákazník až na druhém místě

PhysX jen pro věrné zákazníky

Nvidia se nikdy netajila tím, že PhysX považuje za svou konkurenční výhodu vůči ATI. Jistě, rozdíl výkonu mezi GPU a procesorem je uměle zvětšen záměrnou neoptimalizací (či deoptimalizací?) enginu při počítání přes CPU, kde PhysX, ač jde o soubor silně paralelizovatelných úloh, využívá jen jedno jádro. Nemůžeme však po Nvidii chtít, aby investovala prostředky do něčeho, co jí nepomůže a spíše ublíží.

Možnost zapojení starší GeForce jako akcelerátoru čistě pro fyziku, zatímco grafiku může obstarávat i karta od konkurence, naproti tomu nestojí nic. V případě, že by Nvidia o užitečnosti PhysX přesvědčila širší publikum, tak mohla prodat pár slabších GeForce i fanouškům ATI. Kombinace Radeonu pro grafiku a GeForce na fyziku fungovala na Windows XP, na zastaralém operačním systému ale málokdo chtěl hrát nejmodernější hry. Na Windows Vista použití tohoto řešení bránila limitace samotného systému. Na Windows 7 už funguje vše, ale pouze se staršími ovladači GeForce. Nejnovější verze 186.00 totiž při detekci Radeonu v systému PhysX nepovolí zapnout.

Uživatel darthcyclonis z diskuzního fóra NGOHQ.com získal vyjádření od Nvidie. Autorem je jakýsi Troy z oddělení péče o zákazníky:

„PhysX je otevřená platforma, pro kterou každá společnost může vyvíjet hardware nebo software, který ji bude podporovat. Nvidia podporuje akceleraci PhysX přes GPU Nvidie při použití GPU Nvidie také pro grafiku. Nvidia do PhysX investuje hodně prostředků v podobě vývoje a ověřování kvality. Z různých důvodů – některé souvisí s výdaji na vývoj, některé s testováním, jiné jsou obchodní – Nvidia nebude podporovat akceleraci PhysX v případě, že rendering probíhá na akcelerátoru jiné firmy. Omlouvám se za způsobené nepříjmenosti, ale doufám, že nás pochopíte.“

Obchodní důvody zřejmě budou ty nejdůležitější, že? Výše jsem sice nastínil případ, kdy Nvidia na kompatibilitě s Radeony vydělá, zelený tým se ale obává úplně jiného scénáře. Vydání Radeonů HD 5800 zastihlo Nvidii v době, kdy nebude schopna dodat na trh adekvátní konkurenci minimálně měsíc nebo dva. Nvidia ví, že mnoho uživatelů má v počítači GeForce s čipy generace G8x/G9x a zejména majitelé těch původně dražších modelů jsou v pokušení upgradovat na nový Radeon. Přičemž pokud chtějí podporu PhysX, starší GeForce si ponechají jako akcelerátor fyziky. Bilance je v tomto případě jedna prodaná karta ATI, žádná prodaná karta Nvidia. A tak Nvidia doufá, že zákazníci, kterým záleží na PhysX, zapudí hříšné myšlenky na přechod ke konkurenci a pokorně počkají na Fermi.

KL24

Akcelerátoru nové generace to tedy pomůže, PhysX by ale ve vzdálenější budoucnosti tento krok mohl spíše poškodit. Nvidia totiž potvrdila to, co už si o PhysX beztak myslí většina lidí: že jde o proprietární technologii vázanou na hardware jednoho výrobce. Ve výsledku to může dopadnout tak, že vývojáři, kterým Nvidia vyloženě nezaplatí, raději zvolí takový fyzikální engine, který bude svižně fungovat všude.

Zároveň Nvidia dokázala, že zákazník je pro ni až na druhém místě, na prvním jsou jeho peníze. Čímž nechci naznačit, že by to u jiných společností bylo jinak. Nvidia má tu smůlu, že je v tomto směru poslední dobou jaksi více vidět.

Byl pro vás článek přínosný?