Hirdetés

Furcsa módon érkezett meg a Vulkan az Apple platformokra

A MoltenVK-n keresztüli támogatás közvetett, hiszen a Metal API-n fut, viszont így is elég kellemes alternatíva lesz a többség számára.

A Khronos Group váratlan, de rendkívül kedvező bejelentést tett az idei MWC-n. A konzorcium a portolható Vulkan konstrukción keretében bejelentette a nyílt forráskódú MoltenVK 1.0-t, ami gyakorlatilag lehetővé teszi a Vulkan API-ra írt alkalmazások futtatását az Apple iOS és macOS operációs rendszereken. Ez a fejlesztők számára rendkívül kellemes lehetőség, ugyanis enélkül vagy az igen elavult OpenGL opciókra írnak támogatást, vagy az Apple saját Metal API-jára, és egyik sem olyan kedvező irány, mint az iparág, mára általános explicit API-jává váló Vulkan.

A MoltenVK egyébként nem újdonság, még 2016 nyarán írtunk róla, de akkor egy zárt projekt volt, amiben a Khronos Group csak segített. Mára megegyeztek a fejlesztővel, így a végleges, 1.0-s, nyílt forráskódú verzió jövőjét a továbbiakban a Khronos Group dédelgeti majd, a projekt menedzselésében pedig segít a Valve, a LunarG, és a The Brenwill Workshop.


[+]

Az alábbi GitHUB oldalon elérhető MoltenVK két főbb komponensből áll. Maga a MoltenVK a Vulkan API implementációja, ami direkten a Metal 1 vagy 2 API-n fut (amelyik elérhető), vagyis bizonyos értelemben felfogható egyfajta wrapperként is. A másik komponensnek számító MoltenVKShaderConverter a nevének megfelelően a SPIR-V, vagy ezen keresztül a GLSL shadereket konvertálja MSL, azaz Metal Shading Language kóddá. Az megválasztható, hogy ez miképpen történik, így a fejlesztő kérheti a konvertálást a futtatási időben a MoltenVK futtatási környezet segítségével, de akár lehet mellékelni az alkalmazáshoz egy független parancssorban futó programot, ami a macOS-en elvégzi ezt a feladatot a telepítés során, vagy esetlegesen az első indításnál.


[+]

A rendszer láthatóan működik, ugyanis a Valve elkészítette a Dota 2 MoltenVK-n futó portját, amelynek a kódja gyakorlatilag megegyezik az eredeti Vulkan leképezővel, és az OpenGL-es verzióhoz képest akár 50%-kal is gyorsabb lehet. A kompatibilitással sincs gond, ahol elérhető a Metal API, ott fut a Dota 2 a MoltenVK-n keresztül. A Khronos Group szerint a koncepciónak van némi többletterhelése, elvégre az egyik API hívásait kell egy másikéra fordítani, de méréseik szerint ez összességében elhanyagolható mértékű lesz, ami talán annak is köszönhető, hogy az elérhető explicit API-k a működés tekintetében igen sokban hasonlítanak egymásra.

A Khronos Group egy kicsit általánosabban is beszélt a portolható Vulkan konstrukcióról, amiről még az előző év nyarán írtunk. Állításuk szerint a Metal és a DirectX 12 majdnem minden Vulkan funkciót képes támogatni. Nagyon kevés, mindössze nagyjából húsz függvényhívástól kell búcsúzni, vagyis igen nagy azon funkciók halmaza, amit a fejlesztők célozhatnak. Ilyen formában például nem csak az Apple platformok esetében lehet segítség a Vulkan, hanem a Microsoft saját áruházába is lehetne erre az API-ra írt alkalmazásokat feltölteni, és egy MoltenVK-hoz hasonló, DirectX 12-re írt könyvtár elvégezhetné a szükséges munkát.


[+]

A portolható Vulkan konstrukció gyakorlatilag a fentieket célozza. A fejlesztőknek a Vulkan univerzálisan elérhető részhalmazát kell célozni, és ahol maga az API nem érhető el, oda elég igénybe venni a platformspecifikus, kvázi wrapperként funkcionáló könyvtárat.

Azóta történt

Előzmények

Hirdetés