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
