Avaldatud graafikastandard Vulkan 1.2

Khronose konsortsium, mis töötab välja graafikastandardeid,
avaldatud spetsifikatsioon Vulkan 1.2, mis määratleb API GPU graafika- ja arvutusvõimalustele juurdepääsuks. Uus spetsifikatsioon sisaldab kahe aasta jooksul kogutud parandusi ja laienemine. Vulkani uut versiooni toetavad draiverid on juba olemas vabastati Inteli ettevõte, AMD, ARM, Imagination Technologies ja NVIDIA. Mesa pakub draiveritele Vulkan 1.2 tuge RADV (AMD kaardid) ja ANV (Intel). Vulkan 1.2 tugi on rakendatud ka siluris RenderDoc 1.6, LunarG Vulkan SDK ja näidete komplekt Vulkan-Samples.

Kõik uuendused:

  • Sulle toodud Shaderi programmeerimiskeele juurutamine, kuni see on laialdaseks kasutamiseks valmis HLSL, mille on välja töötanud Microsoft DirectX-i jaoks. HLSL-i tugi Vulkanis võimaldab kasutada samu HLSL-i varjutajaid Vulkanil ja DirectX-il põhinevates rakendustes ning lihtsustab ka tõlkimist HLSL-ist SPIR-V-le. Varjutajate koostamiseks on soovitatav kasutada tavalist kompilaatorit
    DXC, mille Microsoft avas 2017. aastal ja mis põhineb LLVM-tehnoloogial. Vulkani tuge rakendatakse eraldi taustaprogrammi kaudu, mis võimaldab teil tõlkida HLSL-i SPIR-V varjundite vahepealseks esituseks. Rakendamine ei hõlma ainult kõiki sisseehitatud võimalusi
    HLSL, sealhulgas matemaatilised tüübid, juhtimisvood, funktsioonid, komplektid, ressursitüübid, nimeruumid, Shader Model 6.2, struktuurid ja meetodid, kuid võimaldab kasutada ka Vulkani spetsiifilisi laiendusi, nagu NVIDIA VKRay. HLSL-režiimis Vulkani peal oli võimalik korraldada selliste mängude tööd nagu Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey ja Tomb Raider.

    Avaldatud graafikastandard Vulkan 1.2

  • Spetsifikatsiooni uuendatud SPIR-V 1.5, mis määratleb varjundite vahepealse esituse, mis on universaalne kõikidele platvormidele ja mida saab kasutada nii graafika kui ka paralleelarvutuse jaoks.
    SPIR-V hõlmab eraldi varjundi kompileerimise faasi eraldamist vahepealseks esituseks, mis võimaldab luua erinevate kõrgetasemeliste keelte kasutajaliideseid. Erinevate kõrgetasemeliste teostuste põhjal genereeritakse eraldi üks vahekood, mida saavad kasutada OpenGL-i, Vulkani ja OpenCL-i draiverid ilma sisseehitatud shaderi kompilaatorit kasutamata.

    Avaldatud graafikastandard Vulkan 1.2

  • Tuum Vulkan API sisaldab 23 laiendust, mis suurendavad jõudlust, parandavad renderduskvaliteeti ja lihtsustavad arendust. Lisatud laienduste hulgas:
    • Kronoloogilised semaforid (Ajaskaala semafor), mis ühendab sünkroonimise hosti ja seadme järjekordadega (võimaldab kasutada ühte primitiivi seadme ja hosti vaheliseks igasuunaliseks sünkroonimiseks, kasutamata eraldi VkFence'i ja VkSemaphore'i primitiive). Uusi semafoore tähistab monotoonselt suurenev 64-bitine väärtus, mida saab jälgida ja värskendada mitme lõime kaudu.
      Avaldatud graafikastandard Vulkan 1.2

    • Võimalus kasutada varjundites vähendatud täpsusega numbritüüpe;
    • HLSL-iga ühilduv mälupaigutuse valik;
    • Sidumata ressursid (sidumata), mis eemaldab süsteemimälu ja GPU-mälu jagatud virtuaalse ruumi kasutamise kaudu varjutajate jaoks saadaolevate ressursside arvu piirangu;
    • Ametlik mälumudel, mis määrab, kuidas samaaegsed lõimed pääsevad juurde jagatud andmetele ja sünkroonimistoimingutele;
    • Deskriptori indekseerimine Paigutuse kirjelduste taaskasutamiseks mitmes varjutajas;
    • Puhverlingid.

    Lisatud laienduste täielik loend:

  • Lisatud rohkem kui 50 uut struktuuri ja 13 funktsiooni;
  • Tüüpiliste sihtplatvormide jaoks on ette valmistatud spetsifikatsiooni lühendatud versioonid, mis lihtsustavad tööd platvormidel, mille jaoks kõiki laiendusi veel ei toetata, ja võimaldab teha ilma Vulkan API põhivõimaluste valikulise aktiveerimiseta.
  • Töö projektiga jätkub, et tagada kaasaskantavus teiste graafika API-dega. Näiteks pakub Vulkan laiendusi, mis võimaldavad OpenGL-i tõlkimist (Zink), OpenCL (clspv, clvk), OpenGL ES (kinnas, nurk) ja DirectX (DXVK, vkd3d) Vulkani API kaudu ja ka vastupidi, et võimaldada Vulkanil töötada platvormidel ilma selle loomuliku toeta (gfx-rs и Tuhk OpenGL-i ja DirectX-i peal töötamiseks, MoltenVK ja gfx-rs metalli peal töötamiseks).
    Lisatud laiendused, et parandada ühilduvust DirectX-i ja HLSL-iga
    VK_KHR_host_query_reset, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts ja SPIR-V cap rakendavad spetsiifilisi HLS-i.

Tulevikuplaanid hõlmavad masinõppe, kiirte jälgimise, video kodeerimise ja dekodeerimise laienduste väljatöötamist, VRS-i (variable-rate shading) ja võrguvarjurite tuge.

Tuletage meelde, et Vulkan API tähelepanuväärne Draiverite radikaalne lihtsustamine, GPU-käskude genereerimise liigutamine rakenduse poolele, silumiskihtide ühendamise võimalus, erinevate platvormide API ühendamine ja koodi eelkompileeritud vahepealse esituse kasutamine GPU poolel täitmiseks. Kõrge jõudluse ja prognoositavuse tagamiseks pakub Vulkan rakendusi, millel on otsene kontroll GPU toimingute üle ja natiivne tugi GPU mitme lõime jaoks, mis minimeerib draiveri lisakulusid ning muudab draiveripoolsed võimalused palju lihtsamaks ja prognoositavamaks. Näiteks juhipoolses OpenGL-is juurutatud toimingud, nagu mäluhaldus ja veakäsitlus, viiakse Vulkanis rakenduse tasemele.

Vulkan hõlmab kõiki saadaolevaid platvorme ja pakub üht API-d lauaarvutitele, mobiilseadmetele ja veebile, võimaldades kasutada ühte ühist API-d mitmes GPU-s ja rakenduses. Tänu Vulkani mitmekihilisele arhitektuurile, mis tähendab tööriistu, mis töötavad mis tahes GPU-ga, saavad originaalseadmete tootjad kasutada arenduse ajal koodi ülevaatamiseks, silumiseks ja profiilide koostamiseks tööstusstandardi tööriistu. Varjutajate loomiseks pakutakse välja uus kaasaskantav vaheesitus SPIR-V, mis põhineb LLVM-il ja jagab põhitehnoloogiaid OpenCL-iga. Seadmete ja ekraanide juhtimiseks pakub Vulkan liidest WSI (Window System Integration), mis lahendab ligikaudu samad probleemid, mis OpenGL ES-is EGL. WSI tugi on Waylandis karbist väljas – kõik Vulkanit kasutavad rakendused võivad töötada muutmata Waylandi serverite keskkonnas. WSI kaudu töötamise võimalus on saadaval ka Androidi, X11 (koos DRI3-ga), Windowsi, Tizeni, macOS-i ja iOS-i jaoks.

Allikas: opennet.ru

Lisa kommentaar