Vulkan 1.2 grafiko estandarra argitaratu da

Grafiko estandarrak garatzen dituen Khronos partzuergoa,
argitaratu zehaztapena Vulkan 1.2, GPUaren grafiko eta informatika gaitasunetara sartzeko API bat definitzen duena. Zehaztapen berriak bi urtean pilatutako zuzenketak biltzen ditu eta hedapen. Vulkan-en bertsio berria onartzen duten gidariak dagoeneko daude askatu Intel konpainia, AMD, ARM, Irudimen Teknologiak eta NVIDIA. Mesak Vulkan 1.2 euskarria eskaintzen du gidarientzat RADV (AMD txartelak) eta ANV (Intel). Vulkan 1.2 euskarria ere inplementatzen da araztean RenderDoc 1.6, LunarG Vulkan SDK eta adibide multzo bat Vulkan-Laginak.

Nagusia berrikuntzak:

  • Zuri ekarria shader programazio-lengoaia bat ezartzea, erabilera zabalerako prest egon arte HLSL, Microsoft-ek DirectX-erako garatua. Vulkan-en HLSL euskarriari esker, HLSL itzaldura berdinak erabiltzea posible da Vulkan eta DirectX-en oinarritutako aplikazioetan, eta HLSLtik SPIR-V-rako itzulpena ere errazten du. Shaders konpilatzeko, konpilatzaile estandar bat erabiltzea gomendatzen da
    DXC, 2017an Microsoft-ek ireki zuen eta LLVM teknologian oinarritzen da. Vulkan-en euskarria backend bereizi baten bidez inplementatzen da, eta horrek HLSL SPIR-V itzalgailuen bitarteko irudikapen batera itzultzeko aukera ematen du. Inplementazioak integratutako gaitasun guztiak ez ezik
    HLSL, mota matematikoak, kontrol-fluxuak, funtzioak, multzoak, baliabide motak, izen-espazioak, Shader Model 6.2, egiturak eta metodoak barne, baina NVIDIAren VKRay bezalako Vulkan-en berariazko luzapenak erabiltzeko aukera ere ematen du. Vulkan-en gainean HLSL moduan, Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey eta Tomb Raider bezalako jokoen lana antolatzeko aukera izan zen.

    Vulkan 1.2 grafiko estandarra argitaratu da

  • Zehaztapena eguneratu da SPIR-V 1.5, plataforma guztietarako unibertsala den eta grafikoetarako zein konputazio paralelorako erabil daitekeen itzalgailuen tarteko irudikapena definitzen duena.
    SPIR-V-k itzalgailuen konpilazio fase bereiztea tarteko irudikapen batean bereiztea dakar, eta horrek maila altuko hainbat hizkuntzatarako frontend-ak sortzeko aukera ematen du. Goi-mailako hainbat inplementaziotan oinarrituta, tarteko kode bakar bat sortzen da bereizita, eta OpenGL, Vulkan eta OpenCL kontrolatzaileek erabil dezakete integratutako itzal-konpilatzailea erabili gabe.

    Vulkan 1.2 grafiko estandarra argitaratu da

  • Vulkan API nagusiak errendimendua areagotzen duten, errendatzearen kalitatea hobetzen duten eta garapena errazten duten 23 luzapen ditu. Gehitutako luzapenen artean:
    • Semaforo kronologikoak (Denboraren semaforoa), ostalariaren eta gailuaren ilarekin sinkronizazioa bateratuz (gailuaren eta ostalariaren arteko sinkronizazio omnidirezionalerako primitibo bat erabiltzeko aukera ematen du, VkFence eta VkSemaphore primitibo bereizirik erabili gabe). Semaforo berriak hari anitzetan jarraitu eta eguneratu daitekeen 64 biteko balio monotoniko baten bidez adierazten dira.
      Vulkan 1.2 grafiko estandarra argitaratu da

    • Zenbakizko motak zehaztasun murriztuarekin itzalgailuetan erabiltzeko gaitasuna;
    • HLSL-rekin bateragarria den memoria-diseinu aukera;
    • Lotu gabeko baliabideak (loturarik gabekoak), sistemaren memoriaren eta GPUaren memoriaren espazio birtual partekatua erabiliz itzaltzaileentzako erabilgarri dauden baliabide kopuruaren muga kentzen duena;
    • Memoriaren eredu formala, aldibereko hariek partekatutako datu eta sinkronizazio eragiketetara nola atzi dezaketen definitzen duena;
    • Deskribatzaileen indexazioa diseinu-deskribatzaileak itzalaldi anitzetan berrerabili;
    • Buffer estekak.

    Gehitutako luzapenen zerrenda osoa:

  • -k gehitua 50 egitura berri baino gehiago eta 13 funtzio;
  • Xede-plataforma tipikoetarako zehaztapenaren bertsio laburtuak prestatu dira, luzapen guztiak oraindik onartzen ez dituzten plataformetan lana erraztuz eta Vulkan APIaren oinarrizko gaitasunen aktibazio selektiborik gabe egin ahal izateko.
  • Beste grafiko API batzuekin eramangarritasuna bermatzeko proiektuan lanean jarraitzen dute. Adibidez, Vulkanek OpenGL itzulpena ahalbidetzen duten luzapenak eskaintzen ditu (zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angel) eta DirectX (DXVK, vkd3d) Vulkan APIaren bidez, eta, alderantziz, Vulkan-ek bere jatorrizko euskarririk gabeko plataformetan lan egiteko aukera ematea (gfx-rs ΠΈ Errautsak OpenGL eta DirectX-en gainean lan egiteagatik, UrtutaVK eta gfx-rs Metalaren gainean lan egiteko).
    DirectX eta HLSLrekin bateragarritasuna hobetzeko luzapenak gehitu dira
    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 eta SPIR-V-k HLSL gaitasun espezifikoak ezartzen ditu.

Etorkizunerako planen artean, ikaskuntza automatikorako luzapenak garatzea, izpien trazadura, bideoen kodeketa eta deskodeketa, VRS (tasa aldakorreko itzala) eta Mesh shaders-en laguntza.

Gogoratu Vulkan APIa nabarmena gidarien erradikal sinplifikazioa, GPU komandoen sorrera aplikazioaren aldean mugitzea, arazketa-geruzak konektatzeko gaitasuna, APIa hainbat plataformetarako bateratzea eta GPU aldean exekutatzeko kodearen tarteko irudikapen aurrez konpilatua erabiltzea. Errendimendu eta aurreikusgarritasun handia bermatzeko, Vulkan-ek GPU eragiketen gaineko kontrol zuzena eta GPU multi-threading-erako jatorrizko euskarria eskaintzen du aplikazioak, eta horrek gidariaren gainkostua gutxitzen du eta gidariaren alboko gaitasunak askoz errazagoak eta aurreikusgarriagoak bihurtzen ditu. Adibidez, gidariaren aldetik OpenGLn inplementatutako memoria-kudeaketa eta errore-kudeaketa bezalako eragiketak Vulkan-en aplikazio mailara eramaten dira.

Vulkan-ek erabilgarri dauden plataforma guztiak hartzen ditu eta mahaigaineko, mugikorretarako eta weberako API bakarra eskaintzen du, API komun bat GPU eta aplikazio askotan erabiltzeko aukera emanez. Vulkan-en geruza anitzeko arkitekturari esker, hau da, edozein GPUrekin funtzionatzen duten tresnak, OEMek industriako tresna estandarrak erabil ditzakete garapenean zehar kodea berrikusteko, arazketarako eta profilak egiteko. Itzalgailuak sortzeko, tarteko irudikapen eramangarri berri bat proposatzen da, SPIR-V, LLVMn oinarrituta eta OpenCL-ekin oinarrizko teknologiak partekatzen dituena. Gailuak eta pantailak kontrolatzeko, Vulkanek WSI (Window System Integration) interfazea eskaintzen du, eta OpenGL ES-en EGLren arazo berdinak gutxi gorabehera konpontzen ditu. WSI laguntza eskuragarri dago Wayland-en: Vulkan erabiltzen duten aplikazio guztiak aldatu gabeko Wayland zerbitzarien ingurune batean exekutatu daitezke. WSI bidez lan egiteko gaitasuna Android, X11 (DRI3rekin), Windows, Tizen, macOS eta iOS-etarako ere eskaintzen da.

Iturria: opennet.ru

Gehitu iruzkin berria