Predloženej nové experimentálne Vulkan vodič opice — implementácia softvéru Vulkan ICD s otvoreným zdrojovým kódom, napísaná takmer celá v jazyku Zig a nepoužíva kód Mesa. Projekt si zatiaľ nenárokuje, že je vhodný na priemyselné použitie: autor ho výslovne opisuje ako vzdelávací pokus o „ručné zostavenie ovládača“ a varuje pred používaním Ape v serióznych projektoch. Kód je publikovaný pod licenciou. S.
Záujem o opicu vznikol po v špecifikácii Pre Vulkan bolo pridané samostatné ID dodávateľa opice a ID vodiča pre ApeSoftZodpovedajúci pull request v repozitári KhronosGroup/Vulkan-Docs bol zlúčený. 6 Jún 2026 rokV komentári autor uviedol, že pracuje na ovládači Vulkan pre amatérov a blíži sa k úspešnému absolvovaniu všetkých testov Vulkan 1.0.
V skutočnosti Ape nie je ovládač pre konkrétnu grafickú kartu, ale Softvérový renderer Vulkan, podobný účelu ako Mesa Lavapipe: Príkazy Vulkanu sú vykonávané jeho vlastnou implementáciou bez prístupu k hardvérovému ovládaču GPU. Lavapipe však nie je založený na Mesa a je napísaný ako samostatná kódová základňa v jazyku Zig.
Čo už Ape dokáže
Funguje ako Vulkan ICD.
Ape je navrhnutý ako Inštalateľný ovládač klienta — teda ako ovládač, ktorý môže štandardný zavádzač Vulkan načítať prostredníctvom manifestu ICD. Po zostavení autor navrhuje nasmerovať zavádzač Vulkan na príslušný súbor manifestu. Vďaka tomu nie je projekt len súborom experimentov, ale skutočnou implementáciou ovládača Vulkan, aj keď len tréningovou. Zavádzač Vulkan je navrhnutý špeciálne na detekciu a povolenie viacerých ovládačov ICD v systéme.Napísané celé v jazyku Zig.
Hlavná kódová základňa projektu Ape je napísaná v jazyku Zig; na hlavnej stránke projektu Forge je tento jazyk uvedený ako Zig 99,9 %Phoronix zdôrazňuje, že projekt je nezávislý od Mesa a je implementovaný v jazyku Zig, nie C/C++. Grafické ovládače sú tradične písané v jazyku C/C++, ale Ape demonštruje, že Vulkan ICD je možné implementovať v modernejšom systémovom jazyku.Existuje softvérová implementácia od spoločnosti ApeSoft.
Projekt sa zameriava na implementáciu softvéru Mäkký, ktorý sa nachádza v samotnej kódovej základni ovládača. Používa svoj vlastný Interpret SPIR-V a vlastný renderer. Ape neprijíma volania Vulkan, ale namiesto toho sa pokúša spúšťať shadery a renderovanie na vlastnom procesore.Podporované je zostavovanie cez Zig build.
Pre implementáciu softvéru súbor README špecifikuje metódu zostavenia pomocou softvérového príkazu zig build. Potom je potrebné nakonfigurovať zavádzač Vulkan v manifeste ICD. Zatiaľ je to jednoznačne nástroj pre vývojárov a nadšencov, nie balík typu „nainštaluj a spusti“.Významná časť Vulkan 1.0 bola implementovaná.
Súbor README uvádza stav funkcií Vulkan 1.0. Medzi implementované funkcie patrí vytváranie inštancií a zariadení, alokácia pamäte, vyrovnávacie pamäte, obrázky, vyrovnávacie pamäte príkazov, renderovací priechod, framebuffer, grafický pipeline, výpočtový pipeline, moduly shaderov, sady deskriptorov, swapchain a základné renderovacie príkazy. Pokiaľ ide o implementované funkcie, projekt už prekročil experiment „hello triangle“, ale stále potrebuje overenie a nejaké nedokončené záležitosti, aby sa stal plne kompatibilným ovládačom.Existujú príkazy na kreslenie a výpočet.
Zoznam implementovaných funkcií zahŕňa vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, vkCmdDispatch a vkCmdDispatchIndirect. Ape pokrýva nielen základnú infraštruktúru Vulkanu, ale aj dva kľúčové scenáre API: vykresľovanie grafiky a výpočtové kanály.Podporované sú výbery cez Swapchain a Wayland.
Stav implementácie zahŕňa vkCreateSwapchainKHR, vkQueuePresentKHR, vkCreateWaylandSurfaceKHR a kontroly podpory prezentácií Wayland. Prítomnosť swapchainu a povrchu Wayland znamená, že ovládač je navrhnutý nielen na offline testovanie, ale aj na zobrazovanie obrázkov v reálnom prostredí okna. Linux.Súčasť WSI pre X11 a Windows stále prebieha.
vkCreateXcbSurfaceKHR, vkCreateXlibSurfaceKHR, vkCreateWin32SurfaceKHR a zodpovedajúce funkcie kontroly podpory prezentácie sú označené ako rozpracované. Wayland je už prítomný a X11/Windows- podpora ešte nie je pripravená.Niektoré prvky Vulkan 1.0 ešte nie sú pripravené alebo podporované.
Stav WIP zahŕňa napríklad vkCreatePipelineCache, vkCreateSemaphore, vkGetQueryPoolResults, vkMergePipelineCaches, niektoré dynamické stavy a príkazy časových pečiatok. Riedke funkcie ako vkQueueBindSparse a vkGetImageSparseMemoryRequirements sú označené ako nepodporované. Ape sa blíži k Vulkan 1.0, čo sa týka pokrytia, ale zatiaľ nie je univerzálnou náhradou za bežný ovládač Vulkan.Boli pridané nové vylepšenia vykresľovania a synchronizácie.
História projektu od 5. do 6. júna zahŕňala zmeny, ako napríklad pridanie primitívneho reštartu, celočíselného vzorkovania textúr, správy vzorkovania mip/lod a implementácie binárnych semaforov. Projekt sa aktívne vyvíja najmä smerom k praktickej kompatibilite s benchmarkmi Vulkan a reálnymi grafickými scenármi.Projekt nie je zameraný na produktivitu.
Autor výslovne uvádza, že Ape bol vytvorený pre prieskum Vulkanu a jeho cieľom nie je byť ovládačom pripraveným na výkon alebo produkciu. Ape by sa mal vnímať ako výskumný projekt, vzdelávacia implementácia Vulkanu a experiment so Zigom, nie ako konkurenta pre Mesa RADV, ANV, NVK alebo Lavapipe.
Ape je v konečnom dôsledku zaujímavý nie preto, že by sa dal nainštalovať zajtra namiesto Mesy, ale preto, že ide o samostatnú implementáciu Vulkan ICD na Zig s vlastným interpretom SPIR-V, softvérovým rendererom a už aj tak významným pokrytím Vulkan 1.0. Hoci je pre bežných používateľov málo užitočný, pre vývojárov ovládačov, autorov runtime prostredia a tých, ktorí študujú vnútorné mechanizmy Vulkanu, projekt predstavuje fascinujúce a živé testovacie prostredie.
Zdroj: linux.org.ru
