Ape — új nyílt forráskódú szoftverimplementáció a Vulkan ICD-hez

Bemutatva új kísérleti Vulkan-illesztőprogram Ape — egy nyílt forráskódú Vulkan ICD megvalósítás, amely szinte teljes egészében Zig és nem használja a Mesa kódját. A projekt jelenleg nem célja az ipari alkalmazás: a szerző kifejezetten úgy írja le, mint egy tanulmányi próbálkozást, hogy "kézzel összerakja az illesztőprogramot", és figyelmeztet arra, hogy ne használják az Ape-t komoly projektekben. A kód engedélyezve van a MIT.


Érdeklődés az Ape iránt akkor merült fel, amikor a specifikációba a Vulkan külön vendor ID-t adtak hozzá Ape és driver ID-t az ApeSoft-hoz. A megfelelő pull request a KhronosGroup/Vulkan-Docs tárolójában összevonásra került 2026. június 6.. A szerző megjegyzésében feltüntette, hogy egy amatőr Vulkan-illesztőprogramon dolgozik, és közelít a Vulkan 1.0 összes tesztjének sikeres teljesítéséhez.

Lényegében az Ape nem egy konkrét videokártyához készült illesztőprogram, hanem szoftveres Vulkan-renderelő, amely feladatát tekintve hasonlít a Mesa Lavapipere: a Vulkan-parancsokat saját megvalósítás segítségével hajtja végre, anélkül, hogy az hardveres GPU-illesztőprogramot igényelne. Ezenkívül az Ape nem a Mesán alapul, és önálló kódalapként van megírva Zig nyelven.

Mit tud már az Ape

  • Működik, mint Vulkan ICD.
    Az Ape úgy van megfogalmazva, mint Installable Client Driver — azaz olyan illesztőprogram, amelyet a szokásos Vulkan loader fel tud ismerni az ICD-manifesztuson keresztül. A szerző a fordítás után javasolja, hogy a Vulkan loader a megfelelő manifest fájlra utaljon. Ez a projektet nem csupán kísérletek halmazává teszi, hanem egy valódi Vulkan-illesztőprogram megvalósításává, még ha tanulmányi célú is. A Vulkan loader pontosan arra van tervezve, hogy felfedezzen és csatlakoztasson több ICD-illesztőprogramot a rendszerben.

  • Teljes mértékben Zig nyelven íródott.
    Az Ape fő kódalapja Zig nyelven készült; a projekt fő forge-oldalán a nyelvet így említik: Zig 99,9%. A Phoronix külön hangsúlyozza, hogy a projekt nem függ a Mesától és kifejezetten Zig nyelven valósult meg, nem C/C++-ban. A grafikus illesztőprogramokat hagyományosan C/C++ nyelven írják, míg az Ape megmutatja, hogy a Vulkan ICD-t modernebb rendszerszinten is meg lehet valósítani.

  • Van szoftveres megvalósítása az ApeSoft-nak.
    A projekt keretein belül elkülönített szoftveres megvalósítás, Lágyamely a driver kódalapján belül található. Saját SPIR-V értelmezőt és saját renderelőt használ. Az Ape nem csak Vulkan-hívásokat fogad, hanem próbálja önállóan végrehajtani a shader-eket és a renderlést CPU-n.

  • Támogatja a Zig build-en keresztüli fordítást.
    A README-ben a zig build soft paranccsal való összeállítás módja van megadva a programozási megvalósításhoz. Ezt követően a Vulkan loader-t az ICD manifestre kell beállítani. Jelenleg ez nyilvánvalóan fejlesztők és lelkesedők eszköze, nem egy „telepít és fut” csomag.

  • A Vulkan 1.0 jelentős része megvalósításra került.
    A README-ben a Vulkan 1.0 funkciók állapotának listája található. A megvalósítottak között szerepel az instancia és a készülék létrehozása, memória kiosztás, pufferek, képek, parancs pufferek, render pass, framebuffer, grafikai pipeline, számítási pipeline, shader modulok, leírókészletek, swapchain és alapvető rajzolási parancsok. A megvalósított funkciók sorozata már túlmutat a "hello triangle" kísérleten, de ahhoz, hogy teljesen kompatibilis driverré váljon, még át kell mennie a tesztelésen és be kell zárnia a befejezetlen helyeket.

  • Vannak rajzolási és számítási parancsok.
    A megvalósított funkciók között szerepelnek a vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, vkCmdDispatch és vkCmdDispatchIndirect. Ape nemcsak a Vulkan alapinfrastruktúráját fedi le, hanem két kulcsfontosságú API forgatókönyvet is: grafikai rajzolás és számítási pipeline-ok.

  • Támogatott a swapchain és a kimenet a Wayland-on keresztül.
    A megvalósítás állapotában a vkCreateSwapchainKHR, vkQueuePresentKHR, vkCreateWaylandSurfaceKHR és a Wayland prezentálás támogatásának ellenőrzése található. A swapchain és a Wayland felület megléte azt jelenti, hogy a driver nemcsak offline tesztelésre, hanem a képek valós Linux ablakos környezetbe történő kimenetére is irányul.

  • A WSI egy része az X11 és Windows számára még fejlesztés alatt áll.
    A vkCreateXcbSurfaceKHR, vkCreateXlibSurfaceKHR, vkCreateWin32SurfaceKHR és a megfelelő prezentációs támogatás ellenőrző funkciók WIP státuszban vannak. Wayland már jelen van, míg az X11/Windows támogatás még nincs kész.

  • A Vulkan 1.0 egyes elemei még nem készültek el vagy nem támogatottak.
    A WIP állapotban olyanok szerepelnek, mint a vkCreatePipelineCache, vkCreateSemaphore, vkGetQueryPoolResults, vkMergePipelineCaches, egyes dinamikus állapotok és timestamp parancsok. Olyan sparse funkciók, mint a vkQueueBindSparse és vkGetImageSparseMemoryRequirements, nem támogatottak. Az Ape a Vulkan 1.0-hoz képest hasonló lefedettséggel bír, de még nem helyettesíti a normál Vulkan drivert.

  • Friss renderelési és szinkronizációs fejlesztések jelentek meg.
    A projekt történetében június 5–6-án olyan változások történtek, mint a primitive restart, integer texture sampling, mip/lod kezelés a mintavételezéskor és a bináris szemaforok megvalósítása. A projekt aktívan fejlődik a Vulkan tesztekkel és a valós grafikai forgatókönyvekkel való gyakorlati kompatibilitás irányába.

  • A projekt nem a teljesítményre összpontosít.
    A szerző egyenesen kijelenti, hogy az Ape célja a Vulkan tanulmányozása, és nem a teljesítmény vagy a production-ready meghajtó létrehozása. Az Apét érdemes kutatási projektként, a Vulkan oktatási implementációjaként és egy Zig-kísérletként értelmezni, nem pedig a Mesa RADV, ANV, NVK vagy Lavapipe konkurenseként.

Összességében az Ape nem azért érdekes, mert holnap a Mesát helyettesítheti, hanem mert ez egy önálló Vulkan ICD megvalósítás a Zig nyelven, saját SPIR-V értelmezővel, szoftveres renderelővel és már észlelhető Vulkan 1.0 lefedettséggel. A hagyományos felhasználók számára eddig kevés hasznot hoz, viszont a meghajtófejlesztők, runtime készítők és a Vulkan belső működését tanulmányozók számára a projekt érdekes, élő tesztpályaként szolgál.

Forrás: linux.org.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster