Ape — uus avatud tarkvara teostus Vulkan ICD

Esitletud uus eksperimentaalne Vulkan-juht Ape — avatud tarkvara rakendus Vulkan ICD, kirjutatud peaaegu tĂ€ielikult Zig ja mitte kasutades Mesa koodi. Projekt ei pretendeeri veel tööstuslikule kasutusele: autor kirjeldab seda otseselt kui Ă”ppe katset "kokku panna juhi kĂ€sitsi" ja hoiatab Ape'i mitte kasutada tĂ”sistes projektides. Kood on avaldatud litsentsi alusel MIT.


Huvi Ape vastu tekkis pĂ€rast seda, kui Vulkani spetsifikatsiooni oli lisatud eraldi tootja ID Ape ja juhi ID ApeSoft. Vastav pull request KhronosGroup/Vulkan-Docs hoidlas on ĂŒhendatud 6. juunil 2026. Kommenteerides mĂ€rkis autor, et töötab hobi Vulkan-juhi kallal ja lĂ€heneb kĂ”ikide Vulkan 1.0 testide lĂ€bimisele.

Sisuliselt ei ole Ape konkreetse graafikakaardi juht, vaid programmeeritud Vulkan-renderija, mis on mÀÀratletud sarnasena Mesa Lavapipele: Vulkan-kÀsklusi teostatakse enda teostuse vahendusel, ilma et pöörduks hardware GPU-juhi poole. Samuti ei pÔhine Ape Mesa'l ja on kirjutatud iseseisva koodibaasina Zigis.

Mida Ape juba oskab

  • Töötama kui Vulkan ICD.
    Ape on kujundatud kui Installable Client Driver — see, it functions like a driver that can be picked up by the standard Vulkan loader through the ICD manifest. After building, the author suggests indicating the Vulkan loader to the appropriate manifest file. This transforms the project from just a set of experiments into a real Vulkan driver implementation, albeit one for educational purposes. The Vulkan loader is designed to detect and connect multiple ICD drivers in the system.

  • Completely written in Zig.
    The main codebase of Ape is written in Zig; the main forge page of the project lists the language as Zig 99.9%. Phoronix specifically emphasizes that the project does not depend on Mesa and is implemented specifically in Zig, not in C/C++. Graphics drivers are traditionally written in C/C++, and Ape demonstrates that Vulkan ICD can also be implemented in a more modern system language.

  • There is a software implementation of ApeSoft.
    The project highlights a software implementation Pehme, which resides within the driver’s codebase itself. It utilizes its own SPIR-V interpreter and its own renderer. Ape not only accepts Vulkan calls but also attempts to perform shaders and rendering on the CPU independently.

  • Building is supported through Zig build.
    Programmi rakendamise jaoks on README-s nÀidatud viisi, kuidas koguda zig build soft. SeejÀrel peate seadistama Vulkan loaderi ICD manifesti. Praegu on see selgelt tööriist arendajatele ja entusiastidele, mitte paketile, mille "installid ja kÀivitad".

  • Vulkan 1.0 on realiseeritud mĂ€rkimisvÀÀrne osa.
    README-s on esitatud Vulkan 1.0 funktsioonide staatuse loetelu. Teostatud funktsioonide hulka kuuluvad eksemplari ja seadme loomine, mĂ€lu eraldamine, puhvrid, pildid, kĂ€skude puud, render pass, framebuffer, graafika torujuhe, arvutus torujuhe, shaderi moodulid, deskriptorikomplektid, vahetusketid ja pĂ”hilised joonistus kĂ€sklused. Teostatud funktsioonide valiku poolest on projekt juba edasi liikunud kaugemale kui "hello triangle" katse, kuid tĂ€ieliku ĂŒhilduva draiveri staatuse saavutamiseks peab see veel lĂ€bib kontrolli ja sulgema lĂ”petamata kohad.

  • On olemas joonistamis- ja arvutus kĂ€sklused.
    Teostatud funktsioonide hulgas on mĂ€rgitud vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, vkCmdDispatch ja vkCmdDispatchIndirect. Ape katab mitte ainult Vulkan pĂ”hitaristut, vaid ka kahte vĂ”tmesĂŒsteemi API-d: graafilist joonistamist ja arvutus pipe-line.

  • Toetatakse vahetusketti ja vĂ€ljundit lĂ€bi Waylandi.
    TÀidesaatmise staatuses on esile tÔstetud vkCreateSwapchainKHR, vkQueuePresentKHR, vkCreateWaylandSurfaceKHR ning Waylandi esitusviisi toimetulekute kontrollid. Swapchaini ja Waylandi pinda olemasolu nÀitab, et draiver on sihitud mitte ainult offline-testidele, vaid ka pildi kuvamisele tÔelises Linuxi akna keskkonnas.

  • WSI osa X11 ja Windows jaoks on veel arendamisel.
    vkCreateXcbSurfaceKHR, vkCreateXlibSurfaceKHR, vkCreateWin32SurfaceKHR ning vastavad esitusmeetodi toetuse kontrollimise funktsioonid on mÀrgitud töö kÀigus. Wayland on juba olemas, X11/Windowsi tugi ei ole veel valmis.

  • MĂ”ned Vulkan 1.0 elemended ei ole veel valmis vĂ”i ei ole toetatud.
    WIP staatuse alla kuuluvad nĂ€iteks vkCreatePipelineCache, vkCreateSemaphore, vkGetQueryPoolResults, vkMergePipelineCaches, osa dĂŒnaamilisi olekuid ja timestamp-kĂ€sklusi. Sparse-funktsioonid nagu vkQueueBindSparse ja vkGetImageSparseMemoryRequirements on mĂ€rgitud kui toetamata. Ape on Vulkan 1.0-ga kattuvuse osas lĂ€hedane, kuid ei ole veel universaalne asendus tavalisele Vulkan-draiverile.

  • On toimunud vĂ€rskendusi renderdamise ja sĂŒnkroniseerimise osas.
    Projektis tĂ€histatakse 5.–6. juunil muudatusi, nagu primitiivne taaskĂ€ivitamine, terviktekstuuride proovivĂ”tmine, mip/lod juhtimine proovivĂ”tu ajal ja binaarsete semaforide rakendamine. Projekt areneb aktiivselt just praktilise ĂŒhilduvuse suunas Vulkanite testide ja tegelike graafikaskeemide osas.

  • Projekt ei sea eesmĂ€rgiks jĂ”udlust.
    Autor kirjutab otse, et Ape on loodud Vulkaniga tutvumiseks ning ei pĂŒĂŒa olla jĂ”udluselt vĂ”i tootmisvalmiduse poolest konkurentsivĂ”imeline. Apet on mĂ”istlik kĂ€sitleda kui teadusprojekti, Ă”pikute rakendust Vulkanile ning eksperimenti Zigi abil, mitte kui konkurenti Mesa RADV, ANV, NVK vĂ”i Lavapipe'ile.

KokkuvÔttes on Ape huvitav mitte selle pÀrast, et seda saaks homme Mesa asemele paigaldada, vaid selle pÀrast, et tegemist on iseseisva Vulkan ICD rakendusega Zigil, millel on oma SPIR-V tÔlgendaja, tarkvaraline renderdaja ja juba mÀrkimisvÀÀrne Vulkan 1.0 katvus. Tavaliste kasutajate jaoks on praegu kasu vÀhe, kuid draiverite arendajate, jooksukeskkondade autorite ja Vulkan'i sisemist koostisosade uurijate jaoks paistab projekt olevat huvitav elav katseala.

Allikas: linux.org.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster