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

Diskuse k Vulkan hry v Apple iOS / Mac OS poběží, ale ne díky Applu [video]

"Podpora API Vulkan už je standardem i mezi výrobci integrovaných grafik pro ARM procesory, ale Apple si postavil hlavu a přišel si s vlastním API Metal."

https://en.wikipedia.org/wiki/Metal_(API)
Initial release June 2014

https://en.wikipedia.org/wiki/Vulkan_(API)
Initial release February 16, 2016

+1
-7
-1
Je komentář přínosný?

O přípravách Vulkanu ještě pod názvem OpenGL Next se mluvilo o dost dřív než Apple zveřejnil záměr přijít s vlastním API.

+1
+7
-1
Je komentář přínosný?

Mám tomu rozumět tak, že Vulkan pro Windows napsal Microsoft a pro Android Google? Mě připadá, že míra ignorování je u všech podobná. Microsoft si zase tlačí svůj DX12, jsou jeden za 18 a druhý bez dvou za dvacet.

+1
+2
-1
Je komentář přínosný?

Nenapsali ho, ale více či méně ho podporují. U Googlu je ta ochota více zřetelná, Microsoft by samozřejmě preferoval vlastní API, ale uvědomuje si, že Vulkan mu nijak neublíží a oproti Applu nepřišel s konceptem, který by využití nového API komplikoval (což samozřejmě souvisí i s tím, že na rozdíl od Applu nemá pod kontrolou ovladače hardwaru).

+1
0
-1
Je komentář přínosný?

Právě, tady vidím trochu odlišný koncept, že Apple si sám řeší ovladače (resp. nějak sám zapracovává ty firemní bloby od AMD/nVidie/Intelu). V Androidu je snad také přímo binárka od Khronosu.

+1
-2
-1
Je komentář přínosný?

Asi ti uniklo, ze Android je Open Source. Cili sam o sobe zadny binarni bloby neobsahuje. Binarni bloby obsahuji ovladace HW, ktery ale vyrobce zarizeni ziska od vyrobcu HW. Khronos rozhodne zadny binarky nevydava. Khronos udelal jen specifikaci...

+1
+3
-1
Je komentář přínosný?

1) Asi ti uniklo, že jsem napsal Apple! zapracuje binární bloby (takže ne Android :-).
2) Vulkan ani Metal nejsou drivery (je to API)
3) I v Linuxu se často používají "uzavřené binární bloby" jako drivery
4) U Androidu je Open Source kernel (což je Linux), vlastní Android (Android Open Source Project AOSP), zato drivery jsou často uzavřené (neboli binární bloby), jedná se většinou o výbavu SoC jako WiFi, Bluetooth, LTE, GPS a GPU a jiný hardware.

A ano, to jsem se musel podívat čí práce je Vulkan v Androidu (moc detailně to nesleduji) a je skutečně Googlu odpovídající Khronos API specifikacím. Takže beru zpět svou výtku vůči Google (společně s Apple a MS), ten na tom aktivně zapracoval. Napsal jsem sice s nejisototu "snad", ale ne. :-D

+1
-1
-1
Je komentář přínosný?

"V Androidu je snad také přímo binárka od Khronosu."

Na to sem reagoval...

+1
0
-1
Je komentář přínosný?

Však jsem to uznal jako chybu. Dále je zjevné, že tam byly informace dvě (o ovladači a o Vulkanu), protože Vulkan není ovladač, že.

+1
0
-1
Je komentář přínosný?

Ano, Vulkan je API. API jako takove nema zadny binarky. Aplikace se pripojuje k ovladaci pres API Vulkan a ovladac nabizi API Vulkan...

+1
0
-1
Je komentář přínosný?

Když už se v tom takto komicky rejpeme, tak by mě zajímalo, jak cokoliv "běžícího" na počítači může nemít binárky. ;-) Třeba API Win32.

Vulkanu se říká low overhead API, takže někde běží, dokonce mnohovláknově, méně zatěžuje procesor než jiná API, když zpracovává události jemu zaslané a přežvýkává to pro ovladač GPU do jeho formátu. To API je "zabudované" v nějaké knihovně či službě (záleží na tom kterém systému) vedle OpenGL a dalších API dělajících to samé jinak. Na Windows je to v rámci balíku ovladačů (i volitelně!), na Androidu nevím, na Linuxu třeba následovně: https://commons.wikimedia.org/wiki/File:Linux_AMD_graphics_stack.svg#/me...

+1
0
-1
Je komentář přínosný?

API je pouze specifikace (dokumentace) toho jak se maj funkce, ktere pouziva aplikace pro pristup, v pripade Vulkanu ke grafickymu hardware, jmenovat a chovat. API nikde nebezi, proto nema zadny binarky. Binarky ma ovladac, kterej je implementuje ruzny API, tim ze exportuje funkce presne (vicemene, nic neni nikdy perfektni) podle specifikace.Stejnej ovladac zaroven vyuziva API konkretniho systemu pro primej pristup k HW.

+1
0
-1
Je komentář přínosný?

API je rozhraní (někde běžící a očekávající událost - to "I" znamená "interface") a vy jej podle specifikace toho API jako programátor oslovujete. Dokumentace bez výkonné složky jsou jen papíry. Specifikace HTML bez jádra browseru, který je fyzicky zpracuje a přeloží na výstup pro OS, je také k ničemu. U Vulkanu se tomu tuším říká Vulkan Loader.

V sadě ovladačů se to většinou jmenuje něco jako "Vulkan Runtime Libraries". Na Windows jsou v knihovnách jménem vulkan-neco-x-x.dll. Ty komunikují s jádrem ovladče GPU podobně jako D3D, OpenGL, OpenCL a další rozhraní ke grafice.

+1
-2
-1
Je komentář přínosný?

Mozna zkus nekdy programovani (z obou stran, jak z pohledu aplikace, tak z pohledu knihovny), abys pochopil jakej je rozdil mezi API a knihovnou. Je videt, ze tyhle abstraktni pojmy ti moc nejdou...

+1
+1
-1
Je komentář přínosný?

áááá Mohamed a hora. Podle mě je to obráceně...
Viz třeba:
https://www.odpovedi.cz/otazky/jaky-je-puvod-a-vyznam-uslovi-co-vsechno-...

+1
0
-1
Je komentář přínosný?

Tady je ale tou horou Vulkan ;-)

+1
0
-1
Je komentář přínosný?

Ono není bez zajímaosti, že zrychlení Vulkanu proti OpenGL je dáno hlavně velmi špatnou implementací OpenGL na MacOsu. Příčina je opět stejná - nezájem Applu.

+1
+2
-1
Je komentář přínosný?

už aby to bylo. nezájem applu je ale jasný. byl to jeho kompromis s microsofem v Evropě. do OS 8.7 bylo na maca vice her nez na windows. pak se to změnilo.

+1
0
-1
Je komentář přínosný?

Poslední dobrá hra na Macu byl A-10 Cuba! z roku 1996, takže tak.

+1
+3
-1
Je komentář přínosný?

To jsem hrál, dokonce na macu! Teda snažili jsme se to hrát. Nepohnuli jsme se z ranveje.

O deset let později jsem to zkusil znovu a zjistil jsem, že jsme tenkrát prostě neodbrzdili...

+1
+3
-1
Je komentář přínosný?

Pro psaní komentářů se, prosím, přihlaste nebo registrujte.