Ape-ը Vulkan ICD-ի նոր բաց կոդով իրականացումն է։

Ներկայացվել է նոր փորձարարական Վուլկան դրայվեր կապիկ — Vulkan ICD-ի բաց կոդով ծրագրային ապահովում, որը գրեթե ամբողջությամբ գրված է zig և չի օգտագործում Mesa կոդ։ Նախագիծը դեռևս չի պնդում, որ հարմար է արդյունաբերական օգտագործման համար. հեղինակը այն բացահայտ նկարագրում է որպես «ձեռքով դրայվեր կառուցելու» կրթական փորձ և զգուշացնում է լուրջ նախագծերում Ape-ի օգտագործման դեմ։ Կոդը հրապարակվում է լիցենզիայի ներքո։ MIT.


Հետաքրքրությունը Ape-ի նկատմամբ առաջացավ այն բանից հետո, երբ տեխնիկական բնութագրում Վուլկանի համար ավելացվել է առանձին մատակարարի ID կապիկ և վարորդի ID-ն ԱփսոֆթKhronosGroup/Vulkan-Docs պահոցում համապատասխան pull request-ը միավորվել է։ Հունիս 6 2026 տարիՄեկնաբանությունում հեղինակը նշել է, որ աշխատում է Vulkan դրայվերի վրա և մոտ է Vulkan 1.0-ի բոլոր թեստերը հանձնելուն։

Իրականում, Ape-ը որևէ կոնկրետ տեսաքարտի դրայվեր չէ, այլ Vulkan ծրագրային ապահովման մշակիչ, նման է Mesa Lavapipe-ի նպատակին. Vulkan հրամանները կատարվում են իրենց սեփական իրականացմամբ՝ առանց GPU դրայվերին մուտք գործելու։ Սակայն Lavapipe-ը հիմնված չէ Mesa-ի վրա և գրված է որպես առանձին կոդային բազա Zig-ում։

Ինչ է Ape-ը արդեն կարողանում անել

  • Գործում է Vulkan ICD-ի նման։
    Ape-ը նախագծված է որպես Տեղադրվող հաճախորդի դրայվեր — այսինքն՝ որպես դրայվեր, որը կարող է վերցվել ստանդարտ Vulkan բեռնիչի կողմից ICD մանիֆեստի միջոցով: Կառուցելուց հետո հեղինակը առաջարկում է Vulkan բեռնիչը ուղղորդել համապատասխան մանիֆեստ ֆայլին: Սա նախագիծը դարձնում է ոչ միայն փորձերի հավաքածու, այլև Vulkan դրայվերի իրական իրականացում, թեև ուսուցողական: Vulkan բեռնիչը նախագծված է հատուկ համակարգում բազմաթիվ ICD դրայվերներ հայտնաբերելու և միացնելու համար:

  • Ամբողջությամբ գրված է Zig լեզվով։
    Ape-ի հիմնական կոդային բազան գրված է Zig լեզվով։ Լեզուն նշված է նախագծի գլխավոր Forge էջում որպես Զիգ 99,9%Phoronix-ը ընդգծում է, որ նախագիծը անկախ է Mesa-ից և իրականացվում է Zig լեզվով, այլ ոչ թե C/C++ լեզվով։ Գրաֆիկական դրայվերները ավանդաբար գրվում են C/C++ լեզվով, սակայն Ape-ը ցույց է տալիս, որ Vulkan ICD-ն կարող է իրականացվել ավելի ժամանակակից համակարգային լեզվով։

  • Կա ApeSoft-ի կողմից մշակված ծրագրային ապահովում։
    Նախագիծը կարևորում է ծրագրային ապահովման ներդրումը Փափուկ, որը գտնվում է դրայվերի կոդային բազայի ներսում։ Այն օգտագործում է իր սեփականը SPIR-V մեկնաբան և իր սեփական ռենդերերը։ Ape-ը պարզապես չի ընդունում Vulkan-ի կանչերը, այլ փորձում է շեյդերներ և ռենդերինգ գործարկել իր սեփական CPU-ի վրա։

  • Աջակցվում է Zig Build-ի միջոցով կառուցումը։
    Ծրագրային ապահովման ներդրման համար README-ն սահմանում է կառուցման մեթոդ՝ օգտագործելով zig build soft հրամանը: Դրանից հետո դուք պետք է կարգավորեք Vulkan բեռնիչը ICD մանիֆեստում: Առայժմ սա հստակ գործիք է մշակողների և էնտուզիաստների համար, այլ ոչ թե «տեղադրել և գործարկել» փաթեթ:

  • Vulkan 1.0-ի զգալի մասը ներդրված է։
    README-ն թվարկում է Vulkan 1.0-ի գործառույթների կարգավիճակը: Իրականացված գործառույթները ներառում են օրինակների և սարքերի ստեղծում, հիշողության բաշխում, բուֆերներ, պատկերներ, հրամանների բուֆերներ, ռենդերինգի փոխանցում, framebuffer, գրաֆիկական խողովակաշար, հաշվողական խողովակաշար, շեյդեր մոդուլներ, նկարագրիչների հավաքածուներ, փոխանակման շղթա և ռենդերինգի հիմնական հրամաններ: Իրականացված գործառույթների առումով, նախագիծն արդեն անցել է «բարև եռանկյունու» փորձի սահմաններից այն կողմ, բայց այն դեռ պետք է վավերացվի և որոշ անավարտ գործեր կատարի՝ լիովին համատեղելի դրայվեր դառնալու համար:

  • Կան նկարելու և հաշվարկելու հրամաններ։
    Իրականացված ֆունկցիաների ցանկը ներառում է vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndirect, vkCmdDrawIndexedIndirect, vkCmdDispatch և vkCmdDispatchIndirect: Ape-ն ներառում է ոչ միայն Vulkan-ի հիմնական ենթակառուցվածքը, այլև երկու հիմնական API սցենարներ՝ գրաֆիկական ռենդերինգ և հաշվողական խողովակաշարեր:

  • Աջակցվում են Swapchain-ը և Wayland-ի դուրսբերումը։
    Կիրառման կարգավիճակը ներառում է vkCreateSwapchainKHR, vkQueuePresentKHR, vkCreateWaylandSurfaceKHR և ստուգումներ Wayland ներկայացումների աջակցության համար: Swapchain-ի և Wayland surface-ի առկայությունը նշանակում է, որ դրայվերը նախատեսված է ոչ միայն օֆլայն թեստավորման, այլև իրական պատուհանային միջավայրում պատկերներ ցուցադրելու համար: Linux.

  • WSI-ի մի մասը X11-ի համար և Windows դեռևս ընթացքի մեջ է։
    vkCreateXcbSurfaceKHR, vkCreateXlibSurfaceKHR, vkCreateWin32SurfaceKHR և համապատասխան ներկայացման աջակցության ստուգման ֆունկցիաները նշված են որպես WIP: Wayland-ը արդեն առկա է, և X11/Windows- աջակցությունը դեռ պատրաստ չէ։

  • Vulkan 1.0-ի որոշ տարրեր դեռևս պատրաստ չեն կամ չեն աջակցվում։
    WIP կարգավիճակը ներառում է, օրինակ, vkCreatePipelineCache, vkCreateSemaphore, vkGetQueryPoolResults, vkMergePipelineCaches, որոշ դինամիկ վիճակներ և ժամանակային նշման հրամաններ: Sparse ֆունկցիաները, ինչպիսիք են vkQueueBindSparse-ը և vkGetImageSparseMemoryRequirements-ը, նշված են որպես չաջակցվող: Ape-ն ծածկույթով մոտ է Vulkan 1.0-ին, բայց դեռևս սովորական Vulkan դրայվերի համար ունիվերսալ փոխարինող չէ:

  • Ավելացվել են նոր բարելավումներ մատուցման և համաժամեցման համար։
    Հունիսի 5-ից 6-ը նախագծի պատմությունը ներառում էր այնպիսի փոփոխություններ, ինչպիսիք են՝ պարզունակ վերագործարկման ավելացումը, ամբողջ թվերի տեքստուրային նմուշառումը, mip/lod նմուշառման կառավարումը և երկուական սեմաֆորների ներդրումը: Նախագիծը ակտիվորեն զարգանում է, մասնավորապես՝ Vulkan չափորոշիչների և իրական աշխարհի գրաֆիկական սցենարների հետ գործնական համատեղելիության ուղղությամբ:

  • Նախագիծը չի նպատակաուղղված արտադրողականության բարձրացմանը։
    Հեղինակը հստակորեն նշում է, որ Ape-ը ստեղծվել է Vulkan-ի ուսումնասիրության համար և նպատակ չունի լինել արտադրողականության կամ արտադրության համար պատրաստ շարժիչ։ Ape-ը պետք է դիտարկել որպես հետազոտական ​​նախագիծ, Vulkan-ի ուսումնական իրականացում և Zig-ի հետ փորձ, այլ ոչ թե որպես Mesa RADV-ի, ANV-ի, NVK-ի կամ Lavapipe-ի մրցակից։

Վերջին հաշվով, Ape-ը հետաքրքիր է ոչ թե այն պատճառով, որ այն կարող է տեղադրվել վաղը Mesa-ի փոխարեն, այլ որովհետև այն Vulkan ICD-ի ինքնուրույն իրականացում է Zig-ի վրա՝ իր սեփական SPIR-V մեկնաբանիչով, ծրագրային ապահովման մշակմամբ և Vulkan 1.0-ի արդեն իսկ զգալի ծածկույթով։ Չնայած այն քիչ օգտակար է սովորական օգտատերերի համար, դրայվերների մշակողների, գործարկման ժամանակի հեղինակների և Vulkan-ի ներքին համակարգերն ուսումնասիրողների համար նախագիծը ներկայացնում է հետաքրքրաշարժ և կենսունակ փորձարկման հարթակ։

Source: linux.org.ru

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster