Ape — njĂ« realizim i ri i hapur i softuerit Vulkan ICD

TĂ« paraqitura eksperimentale tĂ« re Shoferi Vulkan Ape — njĂ« implementim programor i hapur i Vulkan ICD, i shkruar pothuajse tĂ«rĂ«sisht nĂ« Zig dhe qĂ« nuk pĂ«rdor kodin Mesa. Projekti aktualisht nuk pretendon pĂ«r pĂ«rdorim industrial: autori e pĂ«rshkruan atĂ« si njĂ« pĂ«rpjekje edukative pĂ«r "tĂ« ndĂ«rtuar njĂ« shofer me duar" dhe paralajmĂ«ron qĂ« tĂ« mos pĂ«rdoret Ape nĂ« projekte serioze. Kodi Ă«shtĂ« publikuar nĂ«n licencĂ«n MIT.


Interesi për Ape u shfaq pasi në specifikimin Vulkan u shtua një identifikues vendor i veçantë për Ape dhe identifikues shoferi për ApeSoft. Kërkesa për ndryshim përkatëse në depozitat e KhronosGroup/Vulkan-Docs u miratua më 6 qershor 2026. Në koment, autori theksoi se po punon për një shofer Vulkan amator dhe po i afrohet kalimit të të gjitha testeve Vulkan 1.0.

Në esencë, Ape nuk është një shofer për një kartë grafike specifike, por një renderues programor Vulkan, i afërt në qëllim me Mesa Lavapipe: komandat Vulkan ekzekutohen nga implementimi i vet, pa iu drejtuar shoferit të aparatëve GPU. Megjithatë, Ape nuk bazohet në Mesa dhe është shkruar si një bazë kodi e pavarur në Zig.

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

  • Funksionon si Vulkan ICD.
    Ape Ă«shtĂ« i strukturuar si Shoferi i Klientit tĂ« Instaluar — domethen si si si si si si si e si standard nĂ« loader Vulkan pĂ«rmes manifestit tĂ« ICD. Pas ndĂ«rtimit, autori ofron tĂ« tregojĂ« loader-it Vulkan pĂ«r skedarin pĂ«rkatĂ«s tĂ« manifestit. Kjo e bĂ«n projektin jo thjesht njĂ« grup eksperimentesh, por njĂ« realizim tĂ« vĂ«rtetĂ« tĂ« drejtuesit Vulkan, ndonĂ«se mĂ« shumĂ« si njĂ« mĂ«sim. Loader-i Vulkan Ă«shtĂ« projektuar pĂ«r tĂ« zbuluar dhe lidhur disa drejtues ICD nĂ« sistem.

  • PlotĂ«sisht i shkruar nĂ« Zig.
    Baza kryesore e kodit të Ape është e shkruar në Zig; në faqen kryesore të projektit, gjuha është e përmendur si Zig 99,9%. Phoronix veçon se projekti nuk varet nga Mesa dhe është implementuar pikërisht në Zig, e jo në C/C++. Drejtuesit grafik tradicionalisht shkruhen në C/C++, ndërsa Ape tregon se ICD Vulkan mund të realizohet edhe në një gjuhë më moderne sistemore.

  • Ka njĂ« implementim softuerik tĂ« ApeSoft.
    Në projekt është theksuar implementimi softuerik E Zbutur, i cili ndodhet brenda vetë bazës së kodit të drejtuesit. Ai përdor interpretuesin SPIR-V dhe rendererin e vet. Ape nuk thjesht pranon thirrjet Vulkan, por përpiqet të ekzekutojë vetë shader-at dhe renderimin në CPU.

  • PĂ«r tĂ« mbĂ«shtetur ndĂ«rtimin pĂ«rmes Zig build.
    Për realizimin e programit, në README është treguar mënyra e ndërtimit me komandën zig build soft. Pasi të bëhet kjo, duhet të konfiguroni Vulkan loader për manifestin ICD. Deri tani, kjo është një mjet qartë për zhvilluesit dhe entuziastët, jo një paketë "instalo dhe fillo".

  • ËshtĂ« realizuar njĂ« pjesĂ« e konsiderueshme e Vulkan 1.0.
    Në README është përfshirë një listë e statusit të funksioneve Vulkan 1.0. Midis atyre të realizuara është krijimi i instancës dhe pajisjes, alokimi i memories, bufereve, imazheve, command buffers, render pass, framebuffer, graphics pipeline, compute pipeline, shader modules, descriptor sets, swapchain dhe komandat bazë të renditjes. Sipas grupit të funksioneve të realizuara, projekti ka kaluar përtej eksperimentit "hello triangle", por për të arritur statusin e një driveri të plotë dhe të kompatibël, ende duhet të kalojë verifikimin dhe të mbyllë zonat e papërfunduara.

  • Ka komanda pĂ«r renditje dhe compute.
    Në listën e funksioneve të realizuara janë të shënuara vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, vkCmdDispatch dhe vkCmdDispatchIndirect. Ape mbulon jo vetëm infrastrukturën themelore të Vulkan, por edhe dy skenarë kyç të API: renditjen grafike dhe pipeline të llogaritjes.

  • MundĂ«sohet swapchain dhe dalje pĂ«rmes Wayland.
    Në statusin e implementimit janë shënuar vkCreateSwapchainKHR, vkQueuePresentKHR, vkCreateWaylandSurfaceKHR, si dhe kontrollet për mbështetje të Wayland presentation. Prania e swapchain dhe sipërfaqes Wayland do të thotë se drejtuesi është orientuar jo vetëm për teste offline, por edhe për daljen e imazhit në një mjedis të vërtetë dritareje në Linux.

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

  • Disa elemente tĂ« Vulkan 1.0 ende nuk janĂ« tĂ« gatshme ose nuk mbĂ«shteten.
    Në statusin WIP janë shënuar, për shembull, vkCreatePipelineCache, vkCreateSemaphore, vkGetQueryPoolResults, vkMergePipelineCaches, disa gjendje 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ë mbulim, por ende nuk është një zëvendësim universale për një drejtues të zakonshëm Vulkan.

  • KanĂ« dalĂ« pĂ«rmirĂ«sime tĂ« reja nĂ« rendering dhe sinkronizim.
    NĂ« historinĂ« e projektit, mĂ« 5–6 qershor shĂ«nohen ndryshime si shtimi i rikthimit primitiv, sampling i teksturave integer, menaxhimi i mip/lod gjatĂ« tĂ«rheqjes dhe implementimi i semaforĂ«ve binarĂ«. Projekti po zhvillohet aktivisht drejt pĂ«rputhshmĂ«risĂ« praktike me testet Vulkan dhe skenarĂ«t grafikĂ« realĂ«.

  • Projekti nuk ka si qĂ«llim performancĂ«n.
    Autori e shpreh qartë se Ape është krijuar për të studiuar Vulkan dhe nuk përpiqet të jetë një driver me performancë të lartë ose i gatshëm për prodhim. Duhet të perceptohet Ape si një projekt hulumtues, një implementim edukativ të Vulkan dhe një eksperiment me Zig, dhe jo si një konkurrues ndaj Mesa RADV, ANV, NVK ose Lavapipe.

Në përfundim, Ape është interesante jo për faktin se mund të zëvendësohet nesër me Mesa, por për faktin se është një implementim autonom i Vulkan ICD në Zig me një interpretues SPIR-V, renderues programor dhe një mbulim të dukshëm të Vulkan 1.0. Për përdoruesit e zakonshëm ka pak dobi, por për zhvilluesit e drivave, autorët e runtime-eve dhe ata që studiojnë strukturën e brendshme të Vulkan, projekti duket si një poligon interesant dhe aktiv.

Burimi: linux.org.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster