Ape — implementimi i ri tĂ« hapur i Vulkan ICD

Presented eksperimentale tĂ« reja drajver Vulkan Ape — implementimi i hapur softuerik i Vulkan ICD, i shkruar kryesisht nĂ« Zig dhe qĂ« nuk pĂ«rdor kodin e Mesa. Projekti aktualisht nuk pretendon pĂ«r pĂ«rdorim industrial: autori e pĂ«rshkruan atĂ« qartĂ« si njĂ« pĂ«rpjekje mĂ«simore "pĂ«r tĂ« ndĂ«rtuar njĂ« drajver me duar" dhe paralajmĂ«ron tĂ« mos pĂ«rdoret Ape nĂ« projekte serioze. Kodi Ă«shtĂ« publikuar nĂ«n licencĂ«n MIT.


Interesi për Ape doli pas që në specifikimin Vulkan u shtua një ID e veçantë prodhuesi për Ape dhe ID i drajverit për ApeSoft. Kërkesa për integrim përkatëse në depo KhronosGroup/Vulkan-Docs është bashkuar më 6 qershor 2026. Në koment, autori tha se po punonte për një drajver Vulkan amator dhe po afrohej në kalimin e të gjitha testeve Vulkan 1.0.

Në thelb, Ape nuk është një drajver për një kartë grafike specifike, por një renderues Vulkan programik, i ngjashëm në funksion me Mesa Lavapipe: komandat Vulkan ekzekutohen nga implementimi i tij, pa u drejtuar te drajveri i harduerit GPU. Në të njëjtën kohë, Ape nuk bazohet në Mesa dhe është shkruar si një bazë e vetëdijshme kodi në Zig.

ÇfarĂ« di tĂ« bĂ«jĂ« Ape

  • Punon si Vulkan ICD.
    Ape Ă«shtĂ« formatuar si Drajver i Klientit tĂ« Instaluar — domethĂ«nĂ« si njĂ« drajver qĂ« mund tĂ« kapet nga ngarkuesi standard Vulkan pĂ«rmes manifestit ICD. Pas ndĂ«rtimit, autori sugjeron tĂ« tregojĂ« ngarkuesit tĂ« Vulkan njĂ« manifest tĂ« korrespondent. Kjo e bĂ«n projektin jo thjesht njĂ« grup eksperimentesh, por njĂ« implementim tĂ« vĂ«rtetĂ« tĂ« drajverit Vulkan, ndonĂ«se mĂ«simor. Ngarkuesi Vulkan Ă«shtĂ« pikĂ«risht i dizajnuar pĂ«r tĂ« zbuluar dhe lidhur disa drajverĂ« ICD nĂ« sistem.

  • PlotĂ«sisht e shkruar nĂ« Zig.
    Baza kryesore e kodit të Ape është e shkruar në Zig; në faqen kryesore të projektit, gjuha është e shënuar si Zig 99,9%. Phoronix nënvizon veçanërisht se projekti nuk varet nga Mesa dhe është realizuar pikërisht në Zig, jo në C/C++. Drajverët grafikë tradicionalisht shkruhen në C/C++, dhe Ape tregon se ICD Vulkan mund të realizohet edhe në një gjuhë moderne sistemore.

  • Ka njĂ« implementim programik ApeSoft.
    Në projekt, është ndarë një implementim programik Butë, i cili ndodhet brenda vetë bazës së kodit të drajverit. Ai përdor një interpretues SPIR-V dhe një renderues të vetin. Ape nuk thjesht pranoni thirrjet Vulkan, por përpiqet të ekzekutojë vetë shenjë dhe renderim në CPU.

  • MbĂ«shtetet ndĂ«rtimi pĂ«rmes Zig build.
    Për zbatimin e softuerit, README tregon mënyrën e ndërtimit me komandën zig build soft. Pas kësaj, duhet të konfigurohet Vulkan loader në ICD manifest. Deri tani, ky është një mjet qartë për zhvilluesit dhe entuziastët, jo një paketë "instalo dhe fillo".

  • NjĂ« pjesĂ« e konsiderueshme e Vulkan 1.0 Ă«shtĂ« zbatuar.
    Në README është dhënë një listë e statusit të funksioneve të Vulkan 1.0. Ndër ato të zbatuara janë krijimi i instancës dhe pajisjes, ndarja e memories, bufferat, imazhet, command buffers, render pass, framebuffer, graphics pipeline, compute pipeline, shader modules, sets të deskriptorëve, swapchain dhe komandat bazë të vizatimit. Me funksionet e zbatuara, projekti ka kaluar përtej eksperimentit "hello triangle", por duhet të kalojë kontrollin dhe të mbyllë vendet e pa përfunduara për t'u bërë një driver i plotë dhe i përputhshëm.

  • Ka komanda pĂ«r vizatimin dhe llogaritjen.
    Në listën e funksioneve të zbatuara përmenden vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, vkCmdDispatch dhe vkCmdDispatchIndirect. Ape mbulon jo vetëm infrastrukturën bazë të Vulkan, por edhe dy skenarë kyç të API: vizatimin grafik dhe pipeline të llogaritjeve.

  • Swapchain dhe dalja pĂ«rmes Wayland janĂ« tĂ« mbĂ«shtetura.
    Në statusin e zbatimit përmenden vkCreateSwapchainKHR, vkQueuePresentKHR, vkCreateWaylandSurfaceKHR, si dhe verifikimet e mbështetjes për Wayland presentation. Prania e swapchain dhe Wayland-surface tregon se driveri është i orientuar jo vetëm për teste offline, por edhe për daljen e imazhit në një ambient të vërtetë dritareje Linux.

  • Pjesa e WSI pĂ«r X11 dhe Windows Ă«shtĂ« ende nĂ« punĂ«.
    vkCreateXcbSurfaceKHR, vkCreateXlibSurfaceKHR, vkCreateWin32SurfaceKHR dhe funksionet përkatëse të verifikimit të mbështetjes për presentation janë shënuar si WIP. Wayland është tashmë i pranishëm, ndërsa mbështetja për X11/Windows ende nuk është plotësisht e gatshme.

  • Disa elementĂ« tĂ« Vulkan 1.0 ende nuk janĂ« tĂ« gatshĂ«m ose nuk mbĂ«shteten.
    Në statusin WIP përfshihen, për shembull, vkCreatePipelineCache, vkCreateSemaphore, vkGetQueryPoolResults, vkMergePipelineCaches, një pjesë e qendrave dinamike dhe komandat timestamp. Funksionet Sparse si vkQueueBindSparse dhe vkGetImageSparseMemoryRequirements janë shënuar si të pa mbështetura. Ape është afër Vulkan 1.0 në mbulimin, por ende nuk është një zëvendësim universale për një driver të zakonshëm të Vulkan.

  • JanĂ« bĂ«rĂ« pĂ«rmirĂ«sime tĂ« reja nĂ« renderimin dhe sinkronizimin.
    NĂ« historinĂ« e projektit, mĂ« 5–6 qershor janĂ« shĂ«nuar ndryshime si shtimi i primitive restart, mostrave tĂ« teksturĂ«s integer, menaxhimi i mip/lod gjatĂ« marrjes dhe realizimi i binary semaphores. Projekti po zhvillohet aktivisht nĂ« drejtim tĂ« pĂ«rputhshmĂ«risĂ« praktike me testet e Vulkan dhe skenarĂ«t e vĂ«rtetĂ« grafikĂ«.

  • Projekti nuk ka si objektiv performancĂ«n.
    Autori thotë se Ape është krijuar për të studiuar Vulkan dhe nuk ka si qëllim të jetë një driver i prodhueshëm ose i gatshëm për prodhim. Duhet të shihet si një projekt kërkimor, një implementim edukativ i Vulkan dhe një eksperiment me Zig, e jo si një konkurent për Mesa RADV, ANV, NVK apo Lavapipe.

Në përfundim, Ape është interesant jo për faktin që mund ta zëvendësojë nesër Mesa, por për faktin se është një implementim i pavarur i Vulkan ICD në Zig me një interpretuese të vetme SPIR-V, renderues softuerik dhe një mbulim të dukshëm të Vulkan 1.0. Për përdoruesit e zakonshëm ka pak dobi tani, por për zhvilluesit e drivereve, autorët e runtimeve dhe ata që studiojnë strukturën e brendshme të Vulkan, projekti duket si një poligon interesant dhe të gjallë.

Burimi: linux.org.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster