U standard graficu Vulkan 1.3 publicatu

Dopu dui anni di travagliu, u cunsorziu di i normi gràfiche Khronos hà publicatu a specificazione Vulkan 1.3, chì definisce una API per accede à e capacità grafiche è di computing di GPU. A nova specificazione incorpora correzioni è estensioni accumulate in dui anni. Hè nutatu chì i requisiti di a specificazione Vulkan 1.3 sò pensati per l'equipaggiu graficu di a classe OpenGL ES 3.1, chì assicurarà u supportu per a nova API grafica in tutti i GPU chì supportanu Vulkan 1.2. L'arnesi Vulkan SDK sò previsti per esse publicati à a mità di ferraghju. In più di a specificazione principale, hè previstu di offre estensioni supplementari per i dispositi mobili è desktop di gamma media è high-end, chì saranu supportati cum'è parte di l'edizione Vulkan Milestone.

À u listessu tempu, un pianu hè presentatu per implementà u supportu per a nova specificazione è estensioni supplementari in carte grafiche è driver di u dispositivu. Intel, AMD, ARM è NVIDIA si preparanu à liberà prudutti chì supportanu Vulkan 1.3. Per esempiu, AMD hà annunziatu chì prestu supporterà Vulkan 1.3 in a serie di carte grafiche AMD Radeon RX Vega, è ancu in tutte e carte basate nantu à l'architettura AMD RDNA. NVIDIA si prepara à publicà i drivers cù supportu per Vulkan 1.3 per Linux è Windows. ARM aghjunghjera u supportu per Vulkan 1.3 à Mali GPU.

Innuvazioni principali:

  • U supportu per i passi di rendering simplificati (Streamlining Render Passes, VK_KHR_dynamic_rendering) hè statu implementatu, chì vi permette di inizià a rendering senza creà passi di rendering è oggetti framebuffer.
  • Nuvelle estensioni sò state aghjunte per simplificà a gestione di a compilazione di pipeline di grafica (pipeline, un inseme di operazioni chì trasforma primitive è texture di grafica vettoriali in rapprisintazioni di pixel).
    • VK_EXT_extended_dynamic_state, VK_EXT_extended_dynamic_state2 - aghjunghje stati dinamichi supplementari per riduce u nùmeru di oggetti stati compilati è attaccati.
    • VK_EXT_pipeline_creation_cache_control - Fornisce cuntrolli avanzati nantu à quandu è cumu i pipeline sò compilati.
    • VK_EXT_pipeline_creation_feedback - Fornisce infurmazione nantu à i pipeline compilati per fà più faciule di prufilu è debugging.
  • Una quantità di funziunalità sò stati trasferiti da facultativu à ubligatoriu. Per esempiu, l'implementazione di referenze di buffer (VK_KHR_buffer_device_address) è u mudellu di memoria Vulkan, chì definisce cumu i fili cuncurrenti ponu accede à e dati spartuti è l'operazioni di sincronizazione, sò avà ubligatoriu.
  • U cuntrollu di sottogruppu fine (VK_EXT_subgroup_size_control) hè furnitu in modu chì i venditori ponu furnisce supportu per parechje dimensioni di sottogruppu è i sviluppatori ponu selezziunà a dimensione chì necessitanu.
  • L'estensione VK_KHR_shader_integer_dot_product hè stata furnita, chì pò esse aduprata per ottimisà u rendiment di i frameworki di apprendimentu di macchina grazia à l'accelerazione hardware di l'operazioni di u produttu di punti.
  • Un totale di 23 novi espansioni sò inclusi:
    • VK_KHR_copy_commands2
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_maintenance4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_synchronization2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formati
    • VK_EXT_extended_dynamic_state
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_image_robustezza
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_data_private
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_subgroup_size_control
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formats
  • Aggiuntu un novu tipu d'ughjettu VkPrivateDataSlot. 37 novi cumandamenti è più di 60 strutture sò stati implementati.
  • A specificazione SPIR-V 1.6 hè stata aghjurnata per definisce una rapprisentazione di shader intermediate chì hè universale per tutte e piattaforme è pò esse aduprata sia per a grafica sia per 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 cuncettu di profili di cumpatibilità hè prupostu. Google hè u primu à liberà un prufilu di basa per a piattaforma Android, chì farà più faciule per determinà u livellu di supportu per e capacità avanzate di Vulkan in un dispositivu oltre a specificazione Vulkan 1.0. Per a maiò parte di i dispositi, u supportu di prufilu pò esse furnitu senza installà l'aghjurnamenti OTA.

Ricurdemu chì l'API Vulkan hè notevule per a so simplificazione radicali di i cunduttori, u trasferimentu di a generazione di cumandamenti GPU à u latu di l'applicazione, a capacità di cunnette i strati di debugging, l'unificazione di l'API per diverse piattaforme è l'usu di un precompiled. Rappresentazione intermedia 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