Diit.cz - Novinky a informace o hardware, software a internetu

Nvidia GeForce 600 alias GPU Kepler není DirectX 11.1 grafika

Nvidia GK104 Kepler die prezentace 104d
Dnes nebudeme uvádět na pravou míru kachnu vzniklou chybným překladem nebo spekulacemi. Nyní jde o záležitost, kterou si vyrobila sama Nvidia, a která s vydáním DirectX 11.1 přestala být udržitelná…

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.

Nvidia Kepler GeForce GTX 680 DirectX 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í:

The GTX 680 supports DirectX 11.1 with hardware feature level 11_0, including all optional features. This includes a number of features useful for game developers such as:
  • Partial constant buffer updates
  • Logic operations in the Output Merger
  • 16bpp rendering
  • UAV-only rendering
  • Partial clears
  • Large constant buffers
We did not enable four non-gaming features in Hardware in Kepler (for 11_1): 
  • Target-Independent Rasterization (2D rendering only)
  • 16xMSAA Rasterization (2D rendering only)
  • Orthogonal Line Rendering Mode
  • UAV in non-pixel-shader stages
So basically, we do support 11.1 features with 11_0 feature level through the DirectX 11.1 API. We do not support feature level 11_1. This is a bit confusing, due to Microsoft naming. So we do support 11.1 from a feature level for gaming related features.“
Nvidia Lars Weinand
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.

Nvidia GeForce GTX 680 referenční
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.

San Francisco 2012 P1000599
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:

Diskuse ke článku Nvidia GeForce 600 alias GPU Kepler není DirectX 11.1 grafika

Čtvrtek, 29 Listopad 2012 - 12:56 | Tomáš Bohuněk | Nejde jen o peníze - ty projekty mají i reálný...
Středa, 28 Listopad 2012 - 12:07 | Nest | Mne se hlavne libi ty clanky tady o tom, jak jsou...
Pondělí, 26 Listopad 2012 - 23:26 | Richmond | Po přečtení blafů cos tu napsal na tebe začínám...
Pondělí, 26 Listopad 2012 - 23:12 | Richmond | A vůbec proč se teda pane velký mozku nerozepíšeš...
Pondělí, 26 Listopad 2012 - 19:10 | Richmond | Jasně, budoucnost má určitě bitcoin, rendering v...
Pondělí, 26 Listopad 2012 - 14:27 | Behemot | Díky za zvednutí nálady, přesně tyto bláboly...
Pondělí, 26 Listopad 2012 - 14:21 | Mirda Červíček | Pro mě seš blb taky. Řešíš pravopis a jádro pudla...
Pondělí, 26 Listopad 2012 - 09:48 | Anonym | karta ho evidentne stala jen nejakych 2400 korun...
Pondělí, 26 Listopad 2012 - 09:17 | Pety | Ano, dodatečně byly zavedeny nové jednotky MiB,...
Pondělí, 26 Listopad 2012 - 05:36 | Richmond | A nebo si zatopit grafikou která počítá virtuální...

Zobrazit diskusi