U standard graficu Vulkan 1.2 publicatu

U cunsorziu Khronos, chì sviluppa normi grafichi,
publicatu specificazione Vulkan 1.2, chì definisce una API per accede à e capacità gràfiche è di computing di a GPU. A nova specificazione incorpora correzioni accumulate in dui anni è ingrandamentu. I cunduttori chì supportanu a nova versione di Vulkan sò digià liberatu Cumpagnia Intel, AMD, ARM, Tecnulugie di l'imaginazione è Nvidia. Mesa offre un supportu Vulkan 1.2 per i cunduttori RADV (carte AMD) è ANV (Intel). U supportu Vulkan 1.2 hè ancu implementatu in u debugger RenderDoc 1.6, LunarG Vulkan SDK è un inseme di esempi Vulkan-Samples.

menu innovazioni:

  • Purtatu à voi implementazione di una lingua di prugrammazione shader finu à pronta per l'usu generalizatu HLSL, sviluppatu da Microsoft per DirectX. U supportu HLSL in Vulkan permette di utilizà i stessi shaders HLSL in l'applicazioni basate in Vulkan è DirectX, è ancu simplificà a traduzzione da HLSL à SPIR-V. Per cumpilà shaders, hè cunsigliatu di utilizà un compilatore standard
    DXC, chì hè stata aperta da Microsoft in 2017 è hè basatu annantu à a tecnulugia LLVM. U supportu Vulkan hè implementatu per mezu di un backend separatu, chì vi permette di traduce HLSL in una rapprisintazioni intermediata di sfumature SPIR-V. L'implementazione copre micca solu tutte e capacità integrate
    HLSL, inclusi tipi matematichi, flussi di cuntrollu, funzioni, setti, tipi di risorse, spazii di nomi, Shader Model 6.2, strutture è metudi, ma permette ancu l'usu di estensioni specifichi Vulkan cum'è VKRay da NVIDIA. In u modu HLSL nantu à Vulkan, era pussibule urganizà u travagliu di ghjochi cum'è Destiny 2, Red Dead Redemption II, Assassin's Creed Odyssey è Tomb Raider.

    U standard graficu Vulkan 1.2 publicatu

  • Specificazione aghjurnata SPIR-V 1.5, chì definisce una rapprisintazioni intermediata di shaders chì hè universale per tutte e plataforme è pò esse usatu per i grafichi è l'informatica parallela.
    SPIR-V implica a separà una fase di compilazione di shader separata in una rapprisentazione intermediata, chì permette di creà frontends per diverse lingue d'altu livellu. Basatu nantu à diverse implementazioni d'altu livellu, un unicu codice intermediu hè generatu separatamente, chì pò esse usatu da i driver OpenGL, Vulkan è OpenCL senza aduprà u compilatore di shader integratu.

    U standard graficu Vulkan 1.2 publicatu

  • U core Vulkan API include 23 estensioni chì aumentanu u rendiment, migliurà a qualità di rendering, è simplificà u sviluppu. Trà l'estensione aghjunte:
    • Semafori cronologichi (Semaphore Timeline), unificante a sincronizazione cù l'ospiti è e file di u dispositivu (permettenu di utilizà una primitiva per a sincronizazione omnidirezionale trà u dispusitivu è l'ospiti, senza utilizà primitivi VkFence è VkSemaphore separati). I novi semafori sò rapprisentati da un valore di 64-bit monotonicamente crescente chì pò esse tracciatu è aghjurnatu in parechje fili.
      U standard graficu Vulkan 1.2 publicatu

    • Capacità d'utilizà tipi numerichi cù precisione ridutta in shaders;
    • Opzione di layout di memoria cumpatibile HLSL;
    • Risorse Unbound (bindless), chì sguassate a limitazione di u numeru di risorse dispunibuli per i shaders usendu u spaziu virtuale spartutu di memoria di sistema è memoria GPU;
    • U mudellu di memoria formale, chì definisce cumu i fili cuncurrenti ponu accede à e dati cumuni è operazioni di sincronizazione;
    • Indexazione di descrittori per riutilizà i descrittori di layout in parechje shaders;
    • Ligami buffer.

    Lista cumpleta di estensioni aghjuntu:

  • Aggiuntu più di 50 strutture novi è 13 funzioni;
  • E versioni scurciate di a specificazione sò state preparate per e plataforme di destinazione tipiche, simplifichendu u travagliu nantu à e plataforme per i quali tutte l'estensioni ùn sò micca supportati, è permettenu di fà senza attivazione selettiva di e capacità basi di l'API Vulkan.
  • U travagliu cuntinueghja nantu à u prugettu per assicurà a portabilità cù altre API gràfiche. Per esempiu, Vulkan offre estensioni chì permettenu a traduzzione OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) è DirectX (DXVK, vkd3d) à travers l'API Vulkan, è ancu, à u cuntrariu, per permette à Vulkan di travaglià nantu à e piattaforme senza u so supportu nativu (gfx-rs и Cendri per travaglià nantu à OpenGL è DirectX, MoltenVK è gfx-rs per travaglià nantu à Metal).
    Estensioni aghjunte per migliurà a cumpatibilità cù DirectX è HLSL
    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, è SPIR-V implementa capacità HLSL specifiche.

I piani per u futuru includenu u sviluppu di estensioni per l'apprendimentu machine, u ray tracing, a codificazione è a decodificazione di video, u supportu per VRS (sfumatura di velocità variabile) è sfumature Mesh.

Ricurdativi chì l'API Vulkan notevole simplifichendu radicali i drivers, movendu a generazione di cumandamenti GPU à u latu di l'applicazione, a capacità di cunnette i strati di debug, unificà l'API per diverse piattaforme è utilizendu una rapprisintazioni intermedia precompilata di codice per l'esekzione in u latu GPU. Per assicurà un altu rendiment è prevedibilità, Vulkan furnisce l'applicazioni cun cuntrollu direttu di l'operazioni GPU è supportu nativu per GPU multi-threading, chì minimizza l'overhead di u driver è rende e capacità di u latu di u driver assai più simplice è più prevedibile. Per esempiu, l'operazioni cum'è a gestione di a memoria è a gestione di l'errore, implementate in OpenGL da u latu di u driver, sò spustate à u livellu di l'applicazione in Vulkan.

Vulkan copre tutte e piattaforme dispunibuli è furnisce una sola API per desktop, mobile è web, chì permette una API cumuna per esse aduprata in parechje GPU è applicazioni. Grazie à l'architettura multi-layer di Vulkan, chì significa arnesi chì travaglianu cù qualsiasi GPU, l'OEM ponu aduprà strumenti standard di l'industria per a revisione di codice, debugging è profiling durante u sviluppu. Per creà shaders, hè pruposta una nova rapprisintazioni intermediata portatile, SPIR-V, basatu annantu à LLVM è sparte tecnulugie core cù OpenCL. Per cuntrullà i dispositi è i schermi, Vulkan offre l'interfaccia WSI (Window System Integration), chì risolve circa i stessi prublemi cum'è EGL in OpenGL ES. U supportu WSI hè dispunibule fora di a scatula in Wayland - tutte l'applicazioni chì utilizanu Vulkan ponu eseguisce in un ambiente di servitori Wayland senza modificazioni. A capacità di travaglià via WSI hè ancu furnita per Android, X11 (cù DRI3), Windows, Tizen, macOS è iOS.

Source: opennet.ru

Add a comment