Az Ape a Vulkan ICD új, nyílt forráskódú implementációja.

Által benyújtott új kísérleti Vulkan-illesztőprogram Emberszabású majom — a Vulkan ICD nyílt forráskódú szoftveres implementációja, szinte teljes egészében nyelven íródott Zig és nem használ Mesa kódot. A projekt egyelőre nem állítja, hogy alkalmas ipari felhasználásra: a szerző kifejezetten egy oktatási célú kísérletként írja le, amelynek célja a „kézzel történő illesztőprogram-építés”, és óva int az Ape komoly projektekben való használatától. A kód licenc alatt jelent meg. MIT.


Az Ape iránti érdeklődés azután keltette fel magát, hogy a specifikációban Külön szállítói azonosítót adtak hozzá a Vulkanhoz Emberszabású majom és a járművezető azonosítója ApeSoftA KhronosGroup/Vulkan-Docs repositoryban található megfelelő pull request összevonásra került. 6 június 2026 évEgy hozzászólásban a szerző jelezte, hogy egy hobbi Vulkan driveren dolgozik, és közel áll ahhoz, hogy teljesítse az összes Vulkan 1.0 tesztet.

Valójában az Ape nem egy adott videokártyához való illesztőprogram, hanem Vulkan szoftver renderelő, hasonló célt szolgál, mint a Mesa Lavapipe: a Vulkan parancsokat a saját implementációja hajtja végre, a hardveres GPU-illesztőprogram elérése nélkül. A Lavapipe azonban nem a Mesa-n alapul, hanem önálló kódbázisként íródott Zig nyelven.

Amit Ape már meg tud tenni

  • Úgy működik, mint a Vulkan ICD.
    Az Ape úgy van kialakítva, mint Telepíthető kliens illesztőprogram — azaz egy olyan illesztőprogramként, amelyet a standard Vulkan betöltő egy ICD manifest fájlon keresztül beolvashat. A fordítás után a szerző azt javasolja, hogy a Vulkan betöltőt a megfelelő manifest fájlra irányítsuk. Ezáltal a projekt nem csupán kísérletek gyűjteménye, hanem a Vulkan illesztőprogram valódi implementációja, bár egy betanító implementáció. A Vulkan betöltő kifejezetten több ICD illesztőprogram észlelésére és engedélyezésére szolgál a rendszerben.

  • Teljes egészében Zig nyelven íródott.
    Az Ape fő kódbázisa Zig nyelven íródott; a nyelv a projekt fő Forge oldalán a következőképpen van felsorolva: Zig 99,9%A Phoronix hangsúlyozza, hogy a projekt független a Mesától, és Zigben, nem pedig C/C++-ban van implementálva. A grafikus illesztőprogramokat hagyományosan C/C++-ban írják, de az Ape bemutatja, hogy a Vulkan ICD egy modernebb rendszernyelven is megvalósítható.

  • Van egy ApeSoft által készített szoftveres implementáció.
    A projekt kiemeli a szoftvermegvalósítást Puha, amely magában az illesztőprogram kódbázisában található. Saját SPIR-V értelmező és saját renderelőt. Az Ape nem egyszerűen Vulkan hívásokat fogad el, hanem megpróbálja a shadereket és a renderelést a saját CPU-ján futtatni.

  • A Zig build segítségével történő építés támogatott.
    Szoftveres implementációhoz a README fájl egy build metódust határoz meg a zig build soft parancs használatával. Ezután be kell állítani a Vulkan betöltőt az ICD manifesztben. Egyelőre ez egyértelműen egy fejlesztőknek és lelkes rajongóknak szánt eszköz, nem pedig egy „telepítendő és futtatandó” csomag.

  • A Vulkan 1.0 jelentős része implementálva lett.
    A README fájl felsorolja a Vulkan 1.0 funkcióinak állapotát. A megvalósított funkciók közé tartozik a példány- és eszközlétrehozás, a memóriafoglalás, a pufferek, a képek, a parancspufferek, a renderelési áteresztés, a képkockapuffer, a grafikus folyamatirányítás, a számítási folyamatirányítás, a shader modulok, a leírókészletek, a swapchain és az alapvető renderelési parancsok. A megvalósított funkciók tekintetében a projekt már túllépett a "hello triangle" kísérleten, de még validálásra és néhány befejezetlen munkára van szükség ahhoz, hogy teljesen kompatibilis illesztőprogrammá váljon.

  • Vannak rajzoló és számítási parancsok.
    A megvalósított függvények listája tartalmazza a vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, vkCmdDispatch és vkCmdDispatchIndirect függvényeket. Az Ape nemcsak a Vulkan alapvető infrastruktúráját fedi le, hanem két kulcsfontosságú API-forgatókönyvet is: a grafikus renderelést és a számítási folyamatokat.

  • A Swapchain és a Wayland kifizetések támogatottak.
    A megvalósítás állapota tartalmazza a vkCreateSwapchainKHR, vkQueuePresentKHR, vkCreateWaylandSurfaceKHR ellenőrzéseket, valamint a Wayland megjelenítési támogatásának ellenőrzését. A swapchain és a Wayland felület jelenléte azt jelenti, hogy a meghajtóprogram nemcsak offline tesztelésre, hanem valós ablakos környezetben történő képek megjelenítésére is alkalmas. Linux.

  • A WSI része az X11-hez és Windows még folyamatban van.
    A vkCreateXcbSurfaceKHR, vkCreateXlibSurfaceKHR, vkCreateWin32SurfaceKHR és a hozzájuk tartozó megjelenítéstámogatási ellenőrző függvények folyamatban lévőként vannak megjelölve. A Wayland már jelen van, és az X11/Windows- a támogatás még nem áll készen.

  • A Vulkan 1.0 egyes elemei még nem készek vagy nem támogatottak.
    A folyamatban lévő folyamatban lévő állapot tartalmazza például a vkCreatePipelineCache, vkCreateSemaphore, vkGetQueryPoolResults, vkMergePipelineCaches, néhány dinamikus állapotot és időbélyegző parancsot. A ritka függvények, mint például a vkQueueBindSparse és a vkGetImageSparseMemoryRequirements, nem támogatottként vannak megjelölve. Az Ape lefedettségben közel áll a Vulkan 1.0-hoz, de még nem helyettesíti univerzálisan a normál Vulkan illesztőprogramokat.

  • Új renderelési és szinkronizációs fejlesztések kerültek hozzáadásra.
    A projekt június 5. és 6. közötti története olyan változásokat tartalmazott, mint a primitív újraindítás hozzáadása, egészértékű textúra-mintavételezés, mip/lod mintavételezés-kezelés és bináris szemaforok implementálása. A projekt aktívan fejleszti a Vulkan benchmarkokkal és a valós grafikai forgatókönyvekkel való gyakorlati kompatibilitást.

  • A projekt nem a termelékenység növelését célozza.
    A szerző kifejezetten kijelenti, hogy az Ape-t a Vulkan felfedezésére hozták létre, és nem célja, hogy teljesítmény- vagy gyártáskész driver legyen. Az Ape-t kutatási projektként, a Vulkan tanulási implementációjaként és a Ziggel végzett kísérletként kell tekinteni, nem pedig a Mesa RADV, ANV, NVK vagy Lavapipe versenytársaként.

Végső soron az Ape nem azért érdekes, mert holnap telepíthető a Mesa helyett, hanem azért, mert a Vulkan ICD önálló implementációja Zigen, saját SPIR-V interpreterrel, szoftveres renderelővel és már jelentős Vulkan 1.0 lefedettséggel. Bár a hétköznapi felhasználók számára kevéssé hasznos, a driverfejlesztők, a futásidejű szerzők és a Vulkan belső működését tanulmányozók számára a projekt lenyűgöző és élénk tesztterepet jelent.

Forrás: linux.org.ru

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster