Nvidia GeForce 600 alias GPU Kepler není DirectX 11.1 grafika
Možná si ještě vzpomenete, že jsme se opakovaně pozastavovali, proč Nvidia tak neochotně mluví o podpoře DirectX 11.1 na GPU řady Kepler. Vzpomínali jsme, že na březnových slajdech při vydání v San Franciscu nebyla o verzi 11.1 žádná zmínka, že Nvidia na toto téma promluvila teprve až po výslovném dotazu, kdy odpověď uzavřela dovětkem „Who cares?“, případně že z webu začaly zmínky o tomto rozhraní mizet.
Přikládali jsme to různě marketingu - snaze o bagatelizaci technologií, kterou firma nepodporovala jako první, případně dlouhé době mezi vydáním hardwaru a na druhé straně Windows 8 s novými Directy. Nakonec jsme to přičítali i z uživatelského hlediska nižší významnosti verze 11.1.
Specifikace z tiskové zprávy k vydání GeForce GTX 680
Nyní je vše jinak. Jako první o situaci informoval německý server Heise.de, který se příliš nezabýval detaily a prostě konstatoval, že Kepler hardwarově DirectX 11.1 nepodporuje. Tomu následovala oficiální reakce ze strany Nvidie, kterou si nejprve ocitujeme v originálním znění:
- Partial constant buffer updates
- Logic operations in the Output Merger
- 16bpp rendering
- UAV-only rendering
- Partial clears
- Large constant buffers
- Target-Independent Rasterization (2D rendering only)
- 16xMSAA Rasterization (2D rendering only)
- Orthogonal Line Rendering Mode
- UAV in non-pixel-shader stages
Lars Weinand, Nvidia
Dozvídáme se následující: „GTX 680 podporuje DirectX 11.1 s hardwarem úrovně 11_0, včetně všech volitelných položek. To zahrnuje řadu fíčur užitečných z hlediska herních vývojářů, například… [výčet]. Nezpřístupnili jsme čtyři neherní technologie v hardwaru Kepleru (pro 11_1)… [výčet]. V podstatě tedy podporujeme technologie 11.1 přes 11_0 skrze DirectX 11.1 API. Nepodporujeme úroveň 11_1. Je to trochu matoucí kvůli názvosloví Microsoftu. Takže podporujeme 11.1 z pohledu herních technologií.“
Kde začít… :-). Třeba tím Microsoftem. Toto názvosloví se používá téměř tak dlouho, jako existují Directy samotné. Tady si troufáme říct, že Lars Weinand z Nvidie informaci podal (pro řadového uživatele) tak zamotaně a netransparentně, že už by to snad ani komplikovaněji nešlo.
Jedna věc je podpora určité verze DirectX na úrovni hardwaru - druhá věc je vydání ovladače kompatibilního z danou verzí DirectX (bez ohledu na podporu na úrovni hardwaru). Pro jasnější představu, i pro DirectX 9 kartu je možné vydat ovladač, který si rozumí s DirectX 11.1. Tyto dva rozdíly - tedy skutečná podpora určité verze po stránce GPU a oproti tomu softwarová kompatibilita, se rozlišují dlouhá léta poměrně snadno. Buďto se zdůrazní slova software / hardware, v češtině pak v souvislosti s Directy používáme často i vazby „podporuje XY“ (= hardwarově) oproti „je kompatibilní“ (=softwarově), v angličtině jsou zažité termíny compliant a compatible a v branži se pro zdůraznění hardwarové kompatibility používá namísto tečky podtržítko (11_1, pokud mluvíme o hardwarové podpoře oproti 11.1 pokud mluvíme o verzi DirectX jako takových).
Po řadu let tento systém funguje bezproblémově, nyní se však dozvídáme, že je matoucí ;-). Pokročme k hardwaru.
GeForce GTX 680
Měli jsme tu DirectX 8.0 následované verzí 8.1, měli jsme DirectX 10.0 následované verzí 10.1 a nyní máme DirectX 11.0 následované verzí 11.1. Ve všech případech bylo možné nový kód (z verze .1) realizovat částečně nebo z valné části (i na úkor výkonu) na hardwaru verze .0 - to samozřejmě platí i nyní. Již na přelomu roku 2011 / 2012 ve článku o architektuře GCN jsme informovali, že základní kód DirectX 11.1 by měl být realizovatelný na DirectX 11 kompatibilní grafické kartě. K tomu je třeba jen to, aby byl pro kartu vydaný DirectX 11.1 kompatibilní ovladač.
Právě to, co popisuje Nvidia, není ničím jiným než DirectX 11 hardwarem doplněným o DirectX 11.1 driver. A na základě toho Nvidia předkládá řadu GeForce 600 za DirectX 11.1 kartu. Je třeba připomenout, že s tímto přístupem bychom jakoukoli DirectX 8 grafickou kartu mohli vydávat za DirectX 8.1 model, jakoukoli DirectX 10 grafiku za DirectX 10.1 a stejně tak bychom mohli kteroukoli DirectX 11 grafiku vydávat za DirectX 11.1 model, což je samozřejmě demagogie.
7. březen 2012, San Francisco - Nvidia během prezentace o architektuře GPU GK104 potvrdila kompatibilitu s DirectX 11.1
Nvidii se zkrátka ze zpětné softwarové kompatibility nastavené Microsoftem podařilo marketingově vyrobit podporu určité funkce, kterou však hardware neumí. Jistě se objeví řada hlasů, které budu namítat: „A není to jedno, když zatím podpora DirectX 11.1 nemá skoro na nic vliv?“ - na což namítneme, že kdyby to skutečně bylo jedno, neměla by Nvidia důvod ode dne uvedení tvrdit, že Kepler DirectX 11.1 podporuje a stejně tak to udávat ve specifikacích.
V okamžiku, kdy výrobce vědomě předává tisku a zákazníkům nepravdivé specifikace, bychom skutečně neměli řešit, jestli je vliv dané funkce malý, střední nebo velký. Ve všech případech to považujeme za neakceptovatelné bez ohledu na stávající nízkou významnost DirectX 11.1.
Dále k tématu: