

Még a 2018-as esztendő elején érkezett meg – meglehetősen furcsa módon – a Vulkan az Apple platformokra. Mint ismeretes a cupertinói cég csak a Metal API-t kínálja a fejlesztőknek, de erre sikerült implementálni az egyetlen platformfüggetlen explicit grafikus API-t, a MoltenVK nevű projekten belül. Azóta ez a rendszer már részben támogatja a Vulkan 1.4-et is, és kifejezetten jól működik arra, amire használni lehet.
Hirdetés
A LunarG most bejelentett egy alternatív megoldást KosmicKrisp néven, amely a Mesa 3D-n keresztül implementálja a Vulkan API-t a Metal API-ra. Ez azért érdekes koncepció, mert a Mesa 3D eszközeire építve gyorsan biztosítható a megfelelő illesztőprogram, amit az is jelez, hogy már a Vulkan 1.3-nál járnak a fejlesztéssel.
Bár a KosmicKrisp nagymértékben átfedi a MoltenVK-t, valójában lesznek eltérések. Amíg utóbbi az összes Apple eszközre biztosítja a Vulkan API-t, addig az előbbi, új alternatíva kifejezetten az Apple Siliconra fókuszál, vagyis csak azokra a hardverekre, amelyek Apple által tervezett rendszerchipet használnak. Ezzel vélhetően a fejlesztést és a karbantartást szerették volna egyszerűsíteni, miközben a döntésnek valós hátránya nincs a modern Apple rendszereket tekintve.
A MoltenVK-val szemben a KosmicKrisp elsődleges előnyét a Mesa 3D-re való alapozás adja, ugyanis ezen keresztül a fejlesztői munka megoszlik, ami az egyes kiterjesztések gyorsabb implementálását is lehetővé teszi. Vezető szerepet kaphat a NIR is, ugyanis a MoltenVK esetében a SPIR-V kódokat SPIRV-Cross fordítja MSL kódokká. A NIR viszont erre a feladatra jobb alternatíva lehet. Mindezeken túl a Mesa 3D eleve rendelkezik CI-keretrendszerrel, így olyan fejlesztési módszert és eszközkészletet lehet alkalmazni, aminek keretében a programkód automatikusan lesz tesztelve és ellenőrizve a forráskódon belüli módosítások során. Ez azért kiemelten fontos, hogy végeredményben elérhető legyen a Vulkan API-val való teljes kompatibilitás, ami lehetőséget ad CTS-en való megfelelésre. Ezt a MoltenVK nagyon nehezen tudná elérni, igen sokat kellene rajta módosítani, hogy reális lehetőség legyen, viszont a KosmicKrisp eleve úgy készül, hogy idővel elérhető legyen a Vulkan conformant státusz.