„Ape“ yra nauja atvirojo kodo „Vulkan ICD“ įgyvendinimas.

Įvesta naujas eksperimentinis Vulkan tvarkyklė "Beždžionė" — atvirojo kodo programinė įranga, sukurta „Vulkan ICD“ formatu, parašyta beveik vien tik zig ir nenaudoja „Mesa“ kodo. Projektas dar nepretenduoja į tinkamumą pramoniniam naudojimui: autorius aiškiai apibūdina jį kaip edukacinį bandymą „sukurti tvarkyklę rankomis“ ir įspėja nenaudoti „Ape“ rimtuose projektuose. Kodas publikuojamas pagal licenciją. MIT.


Susidomėjimas Ape atsirado po to, kai specifikacijoje „Vulkan“ buvo pridėtas atskiras tiekėjo ID "Beždžionė" ir vairuotojo ID ApeSoftAtitinkama ištraukimo užklausa „KhronosGroup“ / „Vulkan-Docs“ saugykloje buvo sujungta. 6 Birželis 2026 metųKomentare autorius nurodė, kad dirba su mėgėjiška „Vulkan“ tvarkykle ir beveik išlaiko visus „Vulkan 1.0“ testus.

Tiesą sakant, „Ape“ nėra konkrečios vaizdo plokštės tvarkyklė, bet „Vulkan“ programinės įrangos atvaizdavimo įrankis, panašios paskirties kaip „Mesa Lavapipe“: „Vulkan“ komandos vykdomos pačios programos, nesinaudojant aparatinės įrangos GPU tvarkykle. Tačiau „Lavapipe“ nėra pagrįsta „Mesa“ ir yra parašyta kaip atskira kodo bazė „Zig“ kalba.

Ką Ape jau gali padaryti

  • Veikia kaip „Vulkan ICD“.
    Beždžionė yra sukurta kaip Įdiegiama kliento tvarkyklė – tai yra, kaip tvarkyklę, kurią standartinis „Vulkan“ įkroviklis gali pasiimti per ICD manifestą. Sukūrus, autorius siūlo nukreipti „Vulkan“ įkroviklį į atitinkamą manifesto failą. Tai paverčia projektą ne tik eksperimentų rinkiniu, bet ir realiu „Vulkan“ tvarkyklės įgyvendinimu, nors ir mokomuoju. „Vulkan“ įkroviklis yra specialiai sukurtas aptikti ir įjungti kelias ICD tvarkykles sistemoje.

  • Parašyta vien tik Zig kalba.
    Pagrindinė „Ape“ kodo bazė parašyta Zig kalba; kalba nurodyta pagrindiniame projekto „Forge“ puslapyje kaip Zig 99,9%„Phoronix“ pabrėžia, kad projektas nepriklauso nuo „Mesa“ ir yra įdiegtas naudojant „Zig“, o ne C/C++. Grafikos tvarkyklės tradiciškai rašomos C/C++, tačiau „Ape“ pademonstruoja, kad „Vulkan ICD“ galima įdiegti modernesne sistemos kalba.

  • Yra „ApeSoft“ programinės įrangos įdiegimas.
    Projekte pabrėžiamas programinės įrangos diegimas minkštas, kuris yra pačioje tvarkyklės kodo bazėje. Jis naudoja savo SPIR-V interpretatorius ir savo atvaizdavimo programą. „Ape“ ne tik priima „Vulkan“ iškvietimus, bet ir bando paleisti šešėliavimo programas ir atvaizdavimą savo procesoriuje.

  • Palaikomas kūrimas naudojant „Zig build“.
    Programinės įrangos diegimui README nurodo kompiliavimo metodą, naudojant komandą „zig build“. Po to reikia sukonfigūruoti „Vulkan“ įkroviklį ICD manifeste. Kol kas tai akivaizdžiai yra įrankis kūrėjams ir entuziastams, o ne „įdiegiamas ir paleidžiamas“ paketas.

  • Įdiegta didelė „Vulkan 1.0“ dalis.
    README faile pateikiama „Vulkan 1.0“ funkcijų būsena. Įdiegtos funkcijos apima egzempliorių ir įrenginių kūrimą, atminties paskirstymą, buferius, vaizdus, ​​komandų buferius, renderinimo perdavimą, kadrų buferį, grafikos srautą, skaičiavimo srautą, šešėliavimo modulius, aprašų rinkinius, „swapchain“ ir pagrindines renderavimo komandas. Kalbant apie įdiegtas funkcijas, projektas jau peržengė „sveiko trikampio“ eksperimento ribas, tačiau jį dar reikia patvirtinti ir atlikti keletą nebaigtų darbų, kad tvarkyklė taptų visiškai suderinama.

  • Yra piešimo ir skaičiavimo komandos.
    Įdiegtų funkcijų sąraše yra „vkCmdDraw“, „vkCmdDrawIndexed“, „vkCmdDrawIndirect“, „vkCmdDrawIndexedIndirect“, „vkCmdDispatch“ ir „vkCmdDispatchIndirect“. „Ape“ apima ne tik pagrindinę „Vulkan“ infrastruktūrą, bet ir du pagrindinius API scenarijus: grafikos atvaizdavimą ir skaičiavimo srautus.

  • Palaikomi „Swapchain“ ir „Wayland“ išėmimai.
    Įdiegimo būsena apima „vkCreateSwapchainKHR“, „vkQueuePresentKHR“, „vkCreateWaylandSurfaceKHR“ ir patikrinimus, ar palaikomas „Wayland“ pateikimas. „Swapchain“ ir „Wayland“ paviršiaus buvimas reiškia, kad tvarkyklė skirta ne tik testavimui neprisijungus, bet ir vaizdų rodymui realioje lango aplinkoje. Linux.

  • WSI dalis, skirta X11 ir Windows vis dar vyksta.
    „vkCreateXcbSurfaceKHR“, „vkCreateXlibSurfaceKHR“, „vkCreateWin32SurfaceKHR“ ir atitinkamos pateikimo palaikymo tikrinimo funkcijos pažymėtos kaip nebaigtos. „Wayland“ jau yra, o „X11/“Windows– palaikymas dar nėra paruoštas.

  • Kai kurie „Vulkan 1.0“ elementai dar nėra paruošti arba nepalaikomi.
    WIP būsena apima, pavyzdžiui, „vkCreatePipelineCache“, „vkCreateSemaphore“, „vkGetQueryPoolResults“, „vkMergePipelineCaches“, kai kurias dinamines būsenas ir laiko žymų komandas. Tokios retos funkcijos kaip „vkQueueBindSparse“ ir „vkGetImageSparseMemoryRequirements“ pažymėtos kaip nepalaikomos. „Ape“ aprėpties požiūriu artima „Vulkan 1.0“, tačiau dar nėra universalus įprastos „Vulkan“ tvarkyklės pakaitalas.

  • Pridėta naujų vaizdavimo ir sinchronizavimo patobulinimų.
    Projekto istorijoje nuo birželio 5 iki 6 d. buvo tokių pakeitimų kaip primityvaus paleidimo iš naujo pridėjimas, sveikųjų skaičių tekstūrų atranka, mip/lod atrankos valdymas ir dvejetainių semaforų įdiegimas. Projektas aktyviai tobulinamas, siekiant praktinio suderinamumo su „Vulkan“ testais ir realaus pasaulio grafikos scenarijais.

  • Projektas nėra skirtas produktyvumui didinti.
    Autorius aiškiai teigia, kad „Ape“ buvo sukurtas „Vulkan“ tyrinėjimui ir nesiekia būti našiam ar gamybai paruoštam vairuotojui. „Ape“ reikėtų laikyti tyrimų projektu, „Vulkan“ mokymosi įgyvendinimu ir eksperimentu su „Zig“, o ne kaip „Mesa RADV“, „ANV“, „NVK“ ar „Lavapipe“ konkurentu.

Galiausiai „Ape“ įdomus ne todėl, kad jį galima įdiegti rytoj vietoj „Mesa“, o todėl, kad tai atskira „Vulkan ICD“ implementacija „Zig“ sistemoje, turinti savo SPIR-V interpretatorių, programinės įrangos atvaizdavimo įrankį ir jau turinti didelę „Vulkan 1.0“ aprėptį. Nors paprastiems vartotojams jis mažai naudingas, tvarkyklių kūrėjams, vykdymo aplinkos autoriams ir tiems, kurie studijuoja „Vulkan“ vidinę struktūrą, šis projektas yra įdomi ir gyvybinga bandymų aikštelė.

Šaltinis: linux.org.ru

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster