Reklama

Vulkan 1.0 je hotov a připraven k akci. AMD a Nvidia již vydaly ovladače

V roce 2014 vyšlo jako první moderní nízkoúrovňové API Mantle od AMD a loni ho následovalo DirectX 12 ve Windows 10. Na podobnou technologii nyní přechází i multiplatformní grafické API OpenGL se svou novou a od základu přepracovanou nízkoúrovňovou verzí Vulkan. Konsorcium Khronos, které je autorem, včera oficiálně vydalo verzi 1.0. Vyšla nejen vlastní specifikace, ale také reálné implementace v ovladačích obou hlavních dodavatelů desktopových GPU.

Výhody nízkoúrovňových API asi není třeba příliš opakovat – dávají vývojáři přímější přístup a kontrolu nad hardwarem, což na něj klade vyšší nároky, ale zároveň otevírá cestu k vyššímu výkonu. Tím, že se omezuje tradičně velká role ovladačů, je zredukováno množství cyklů CPU, potřebných při hraní a je také možné zlepšit latenci vykreslování. Na nízkoúrovňových API je možné grafice zadávat mnohem větší množství úloh, aniž by kód zahltil ovladač.

Vulkan 1.0 je hotov
Vulkan 1.0 je hotov

Navíc díky tomu, že se opouští kompatibilita s předchozími API, je možné odstranit různé staré výkonnostní brzdy. Z těch je asi nejpodstatnější velmi omezená možnost v tradičním OpenGL používat vícejádrové procesory. Vulkan už je ale založen na moderních principech a tak umožňuje, aby bylo GPU konečně úkolováno vícevláknovým kódem, používá totiž plně vícevláknové fronty příkazů. Kromě toho přináší i další novinky, například asynchronní shadery pro GPU Radeon.

Vulkan výrazně redukuje objem práce grafického ovladače
Vulkan výrazně redukuje objem práce grafického ovladače

 

Multiplatformní s výjimkou Applu

Vulkan není první ani jediné nízkoúrovňové API tohoto typu, ale jeho výhoda je, že je otevřenější a multiplatformní. Toto API tedy budou moci kromě Windows (10) použít také platformy Linux, Android a výhledově i další. Zklamání v tomto ohledu jsou bohužel operační systémy Applu, kde jsme původně také s Vulkanem počítali. Avšak ani na Mac OS X, ani na iOS zřejmě tato nová generace OpenGL běžet nebude. Apple se z vývoje Vulkanu po počátečním zapojení údajně stáhl a zřejmě s ním teď nic neplánuje (ostatně také podpora OpenGL ES zamrzla v iOSu na verzi 3.0). Důvodem je možná, že Apple chce prosazovat vlastní nízkoúrovňové API Metal a nechce pro něj mít na platformě konkurenci – která by ji navíc učinila kompatibilní se soupeřícím Androidem.

Významný detail včerejšího uvedení Vulkanu je, že jde o faktické vypuštění, žádný „paper launch“. Platforma je připravena k vývoji a vlastně i použití – dostupná jsou SDK, jakož i funkční a již validované implementace v ovladačích. To je podstatné i proto, že Vulkan má zpoždění za loni uvedeným DirectX 12, které bylo také ve vývoji mnohem delší dobu (za nezvykle rychlé vydání vděčí Khronos zdá se ve velké míře tomu, že měl jako výchozí bod Mantle).

Vulkan je multiplatformní, nakonec ale bude chybět podpora Apple
Vulkan je multiplatformní, nakonec ale bude chybět podpora Apple

 

Hardware feature sets

Vulkan bude mít pro jednotlivé platformy (operační systémy) definované skupiny podporovaných hardwarových funkcí, které bude možno využívat, což je změna proti tradičnímu OpenGL, které takové „feature sets“ nedefinovalo a indikovalo jen jednotlivé hardwarové funkce. Tyto definice budou fungovat tak, že dodavatel OS bude mít možnost si je definovat po svém (což hodlá udělat Google s Androidem), pokud však nebude mít o tuto možnost zájem, stanoví je přímo konsorcium Khronos – tuto alternativu si vybral Microsoft u Windows a zřejmě také bude použita u desktopového Linuxu. Feature sets budou definovány v budoucnosti na základě zpětné vazby od vývojářů, zatím se předběžně operuje s ekvivalentem funkcí, které zahrnuje OpenGL 4.5 pro desktop/PC a s funkcemi OpenGL ES 3.2 pro mobilní platformy.

Vulkan feature sets
Vulkan feature sets

 

Na čem dnes Vulkan funguje. Windows XP?

První ovladače přinášející podporu Vulkanu na PC jsou již od včerejška také k dispozici. Pro Android by měly být k dispozici ovladače od Nvidie a Qualcommu (přesněji řečeno pro Android 6.0), pro klasický Linux pak od Nvidie, Intelu, Imagination a později od ARMu. Na platformě Windows, která je pro herní grafiku asi nejrelevantnější, mají nyní ovladače k dispozici NvidiaAMD. V obou případech jde o speciální beta vydání.

U AMD se podpora týká GPU a APU, která mají architekturu GCN 1.0 a vyšší – tedy APU Kabini, Kaveri a pozdější a všechna 28nm GPU Radeon. Nvidia podporuje Vulkan na architekturách Kepler a Maxwell, tedy opět všech 28nm čipech. Ostrouhají tedy karty založené na Fermi, ačkoliv na nich Nvidia plánuje zprovoznit DirectX 12. Integrovaná GPU Intelu mají Vulkan podporovat minimálně od generace Skylake; u Broadwellu a Haswellu zatím podpora potvrzena není, vyloučena ale také ne.

Aktualizováno (17. 2. 2016):
Intel vydal otevřené ovladače podporující Vulkan pro Linux. Dostupné jsou pro integrovaná GPU procesorů Skylake a Broadwell, pro Haswell zřejmě nikoliv. Zda stejné hardwarové požadavky budou platit i pro ovladače na platformě Windows, ale není jisté.

 

Poměrně zajímavá je situace s podporou v operačním systému. Na rozdíl od DirectX 12 není Vulkan závislý na ovladačích založených na WDDM 2.0 a tím Windows 10. Dostupný má tedy být od Windows 7 výše, a teoreticky prý i na Windows XP. V praxi ovšem budete potřebovat také ovladač GPU s touto podporou, který pro již nepodporovaný OS nemusí být k dispozici. Například AMD proto uvádí podporu jen ve Windows 7, 8/8.1 a 10, totéž Nvidia.

Nvidia má jinak beta ovladače již i pro Linux, AMD je má teprve vydat. Vulkan bude podporovat ovladač amdgpu, který je dostupný pro GPU Tonga, Fiji a APU Carrizo (neoficiálně jej lze spustit i na GPU s GCN 1.1 jako Hawaii a Bonaire nebo APU Kabini/Kaveri).

Talos Principle od studia Croteam
Talos Principle od studia Croteam

 

První hra už existuje

Na světě by také již měla být první hra, v níž lze Vulkan otestovat – The Talos Principle od studia Croteam. Pro tu byla podpora vykreslování skrze nové API vydána také včera, ovšem podle vývojářů má hlavně demonstrační roli (ukázat, že Vulkan již funguje). Nejde o nějaký „velký titul“, který by ukazoval plné možnosti této technologie.

Pokud vás spíše než uživatelská stránka zajímá programování pro API Vulkan, pak je pro vás určené SDK LunarG (vytvořené mimo jiné s podporou Valve a volně dostupné). To bude poskytovat sadu nástrojů pro vývoj her, včetně těch potřebných pro validaci a ladění. LunarG bude zprvu fungovat pro platformy Windows a Linux, brzy má ale přibýt také Android.

SDK LunarG
SDK LunarG

Zdroje: Khronos Group, AMD (1, 2), Nvidia, AnandTech

Oblíbené Tisk E-mail
Reklama
Reklama

Komentáře

tj vulkan ide lepsie na AMD, len netusim preco ide o tolko horsie ako na DX11

Pozor, moc bych ty výsledky nepřeceňoval. Je to jen jeden test, navíc asi spíš experimentální a ne moc optimalizovanej, nemluvě o tom, že je to první veřejná verze ovladačů. Takže těch faktorů, co mohly na jedné i druhé straně výkon zkriplit, je fakt hodně.

Oni se k tomu z Croteamu vyjádřili. Je to ve smyslu, že s lepšími ovladači a lepší podporou API ve hře by výkon měl být nad úrovní DX11.

Na druhou stranu to i ukazuje slabinu Vulkanu(a obdobně DX12) - na portu pracovali tři měsíce a nedosáhli ani na výkon DX11. DX12/Vulkan přenáší problémy na programátory za cenu o chlup lepšího dosažitelného výkonu. A bude otázka pro jak velké tituly se to vyplatí.

evidentně jde stále o alfa/beta produkt bez důležitých funkcionalit, které mají být v hotové verzi, viz: http://pctforum.tyden.cz/viewtopic.php?p=9021571#p9021571

jak píše Jan Olšan, je to jen narychlo spíchnutý port, který má ukázat, že to funguje.

Ano, to jsem psal. Až na to že "narychlo" znamenalo tři měsíce.

ano to je opravdu narychlo, podívej se jak dlouho trvá portace jiných titulů na PC platformu :)

Som dost prekvapeny ze je tam az taky nizky vykon, nečakal som to. Chapem že je to na beta ovladačoch a uplna novinka ale pokial je potrebne tolko programovania a ladenia koli novym API tak nevidim velmi ružovo ich presadzovanie v hrach v najblizsej dobe. navyše DX12 je obmedzene len na Windows 10... Som skepticky! Nema to zivnu pôdu na nejaky megauspech pokial tie benefity ostanu hlavne v teoretickej rovine. Nove API ( DX12 a Vulkan) mali obrovsky hype dlho pred vydanim a uz teraz je jasne ze bez maximalnej snahy vyvojarov a developerov hier sa ani len nepriblizia k hypovanym zazrakom. Nestači len ich nasadenie ako to bolo cely cas predkladane BFU hračom. Bublinka splasla! Smejem sa... :D

Vetsina her totiz urcite pouziva primo DirectX/OpenGL...

Pockal bych s hodnocenim rozsirenosti az na podporu v hernich enginech (Source, Cryengine, Unreal engine a Unity). Ty rozhodnou, ktere API se bude pouzivat (ne tim, ze by stavely jen na 1 API, ale tim, jak s nimi budou jednotlive API fungovat - tam bude narust zasadni).

Určitě bych nehodnotil na základě jednoho testu, který je spíš demonstrací toho, že to vůbec jde.

A snad každý, kdo o tom má nějaké povědomí, žádný nahypovaný zázrak nečekal. Vydání nového API není samospasitelné. Vždy se to musí prosadit a to bez nějakého stimulu jen tak nejde. Studia investovala do současných enginů hromadu financí, které se nejprve musí vrátit. Pak přijde čas na nějaké masivnější implementování nových API.

Tenhle hype se opakuje snad už od DX10 (a to hlavně když je u výrobců HW rozdíl mezi uvedeným HW podporou - DX10.1 vs DX10, DX11.1.2 vs DX 11.1.1 atd.). Možná u DX9 byl přestup masovější a relativně rychlejší - dejme tomu v řádu 2 let. Teď má ale DX12 docela slušnou šanci právě díky omezení na Win10. Ty se díky současné politice MS mají velkou šanci stát majoritním OS na trhu a to snad i v dohledné době pár let. Vulkan má ale díky Khronosu a tomu, že je možné brát už vytvořené části od něj, a také díky množství OS na které je od začátku směřován, rozhodně větší šanci než třeba mělo Mantle.

Intel teda zatím ovladač pro HD 530 ( i7-6700 ) nemá jo ?

http://blogs.intel.com/evangelists/2016/02/16/intel-open-source-graphics...

Pro Linux je, pro Windows to vypadaá, že zatím ne.

Tohle API je predem mrtve. Ma jeste horsi pozici nez Mantle - neni na konzolich. Nvidia ho bude podporovat tak napul (asi jako OpenCL), protoze chce podporovat sve veci na Androidu, treba Shield. Ale je pro ni priorita Windows herni trh, nechce podporovat snahy AMD a ani nemusi, protoze ma jistou vetsinu trhu pro DirectX 12. AMD to se svym malym podilem nejspis nezachrani a Apple uz Vulkan zarizl davno.

Vzhledem k tomu, že Khronos hodlá definovat ty "feature sets" sám, tak možná nebude potřeba tak silného tlaku na vývojáře ze strany výrobců HW. Takže já bych to úplně nezavrhoval.

A argument, že Apple ho zařízl už dávno podle mě moc velký význam nemá. Apple si jede svůj uzavřený ekosystém už roky a vlastně má na něm postavu veškerou strategii. Takže pro rozšíření Vulkanu zrovna Apple moc znamenat nebude.

A možná to nechápu úplně dopodrobna, ale pro Playstation by podpora Vulkanu neměla být snad problém, když už teď podporuje OpenGL. U XBoxu je to asi ze strany MS rozumné, že to tam nedá - snaží se vybudovat komplexní ekosystém na Windows a tedy i DX. Ale to neznamená, že ho nebude implementovat, pokud se Vulkan v herních enginech prosadí a rozšíří se. To ale za předpokladu, že Vulkan skutečně nabídne nějaké zlepšení ve využití výkonu a to minimálně na úrovni DX12. Ale dopředu to takhle odsoudit bych si tedy netroufl. Rozhodně se ale bavíme o horizontu 2-3 let minimálně a to už se bude možná kutit nová generace konzolí, takže kdo ví.

V prvom rade na konzolách sa nízkoúrovňové API používajú odjakživa. To je ich výhoda. Uvidíme aké výhody prinesú nové API do konzol ale nejaké veľké nárasty výkonu ako na PC by som neočakával.

Po cely cas tu DICE aj AMD ukazovali, ze s novym API je mozne pouzit v hre tisice pohybujucich sa objektov bez vyrazneho dopadu na vykon so sucasne priemernym procesorom, co v predchadzajucich API nebolo mozne.

Dalej ukazovali, ze v priemere nedochadza k vyraznym prepadom FPS.

Dalej ukazovali, ze vdaka tomuto API mozu byt ovladace ovela jednoduchsie, co ma pomoct k stabilite ovladacov. Nemusia v "ovladacoch" hotfixovat kazdu prkotinu, ktoru vyrobca hry odflakol a odmieta ju pre druhu graficku kartu opravit. Takto bude ladenie ovladacov ovela rychlejsie.

Dalej ukazovali, ze vdaka novemu API je CPU vyuzivane multithreadovo, co znamena, ze moze ist s nizsimi taktami (nizsia spotreba, dlhsia vydrz baterie alebo rovnaka vydrz s mensou hmotnostou, nizsie zahrievanie)

Dalej ukazovali, ze vdaka novemu API mozu potencial grafickej karty vyuzit naplno, pretoze uz nie je blokovana vykonom CPU.

Az na poslednom mieste je narast FPS. Potesi, ale dolezitejsie vlastnosti su tie vyssie napisane.

Vo väčšine bodoch je to tak ako píšete, ale ja som hovoril o konzolách a nie PC. Konzole by mali čerpať hlavne z efektívnejšej vrstvy, ktorú akceleruje CPU (lepšieho využitia viacjadrových CPU), pretože výhody nízkoúrovňového API ku grafickému HW majú už dávnejšie. Inak by sa z nich ťažko vytiahlo to, čo vidíme.

"Nemusia v "ovladacoch" hotfixovat kazdu prkotinu, ktoru vyrobca hry odflakol a odmieta ju pre druhu graficku kartu opravit"

Toto budú podľa mňa robiť aj ďalej. Vzhľadom na to, že rendering z pohľadu vývojára hier bude zložitejší. Bude musieť riešiť to, čo robilo predchádzaúpce API automaticky alebo inak. Čo môže (ale aj nemusí) byť zdrojom chýb iného typu než boli dnes. A opravovať to budú podľa mňa naďalej nielen vývojári ale aj AMD či NVIDIA. Možno ale v menšej miere. Takto sa mi to nateraz javí. Ale môžem sa mýliť.

"Dalej ukazovali, ze vdaka novemu API mozu potencial grafickej karty vyuzit naplno, pretoze uz nie je blokovana vykonom CPU."

Toto bude platiť iba do chvíle kým sa nič okrem renderingu nezmení. Rendering síce bude efektívnejší, ale zasa sa tu otvára priestor na využitie CPU na iné úlohy. Ako komplexnejšia fyzika alebo lepšie AI. A tie môžu opäť vyťažiť silnejšie CPU, ktoré bude mať zasa menej cyklov pre renderovaciu časť pretože bude musieť riešiť aj iné. Závisí to ale od vývojárov a zrejme aj od výkonu najslabšej platformy a teda v tomto prípade konzol(myslené z pohľadu HW). Takže kým najslabšia platforma nebude mať výkonnejší HW, tak ani vývojári sa asi nebudú trápiť s využívaním zložitejších nástrojov ako lepšia fyzika či AI. No uvidíme.

Jako ze OpenGL je tu s nama dyl nez nejaky DirectX. Vyjde jeho nova verze a vy tvrdite ze je to predem mrtve? Dobrej joke :)

ted pises krapet mimo, Nvidia Vulkan podporuje a podporovat bude mimo jine i proto ze do Khronosu dodali vlastni lidi aby na Vulkanu pracpvali ;) Vulkan je prave multiplatformni a Shield diky nemu ziska i na Androidu prave proto ze Vulkan miri i na android ;) Vulkan je jiz davno zahrnuty i do GameWorks a dobudoucna se s nim pocita u Nvidie vice nez s DX12 ;)

mimochodem verze Vulkanu pro Android se vyvyjela na HW od Nvidie hned u nekolika firem ktere na Vulkanu take spolupracuji, kuprikladu Oculus jede Vulkan jen na HW od Nvidie

a hned na prvnim slide zde v clanku mas dokonce obrazek z dema Nvidie na Vulkan, to jsou ty helikoptery vpravo na obrazku, je to demonstrace jeste z doby kdy se na Vulkanu teprve zacinalo pracovat http://developer.download.nvidia.com/mobile/shield/img/vk/Chopper/Choppe...

prijde me ze sis jen vygooglil ze Vulkan stavi z casti na Mantle a rychle jsi sesmolil nejaky text kde shrnes proc by meli podporovat AMD, a vznikl z toho blud

Tož nechci dělat velkého sibyla, ale myslím si, že Vulcan má potenciál se protlačit na významné výsluní především proto, že Valve ho potřebuje na rozšíření jeho SteamOS. To samotné mu dává i velký prostor pro budoucí optimalizaci (samozřejmě v případě, že pan Kohoutek uspěje se svou ideou herní konzole postavené na linuxu).

Souhlas. Jestli se SteamOS podari protlacit, tak ma vulkan budoucnost. To same pokud by se protlacil na PS4. Ale to jsou dost velka 'kdyby'.

Ale SteamOS nepotřebuje striktně vzato Vulkan. Dneska používá normální OpenGL a může klidně dál.

IMHO hlavní bude, jak se k tomu postaví takovej ten middleware, enginy a vývojářské nástroje. Pokud se to s nima bude dát dělat +-snadno, tak to lidi začnou používat.