Pubblicato lo standard grafico Vulkan 1.4

Dopo quasi tre anni di lavoro, il consorzio Khronos, che si occupa dello sviluppo di standard grafici, ha pubblicato la specifica Vulkan 1.4, che definisce l'API per l'accesso alle capacità grafiche e computazionali della GPU. La nuova specifica ha incluso le estensioni accumulate, precedentemente considerate opzionali, e ha fornito una serie di nuove funzionalità, aumentando al contempo i requisiti minimi hardware. Gli strumenti Vulkan SDK sono previsti per la pubblicazione a gennaio 2025.

I prodotti con supporto per Vulkan 1.4 stanno per essere lanciati da aziende come AMD, Arm, Imagination, Intel, NVIDIA, Qualcomm e Samsung. I driver open-source per GPU AMD (radv), Apple M1/M2 (honeykrisp), Intel (anv), NVIDIA (nvk) e Qualcomm (tu), sviluppati dal progetto Mesa, hanno già superato tutti i test di compatibilità con Vulkan 1.4 del set CTS (Khronos Conformance Test Suite) e sono stati inclusi nell'elenco dei driver certificati. Sono inclusi anche i driver di Samsung e Qualcomm per la piattaforma Android, oltre ai driver per GPU PowerVR D-Series DXT* dell'Imagination Technologies e i driver proprietari NVIDIA.

Novità principali:

  • È stata aggiunta la supporto per il meccanismo "Streaming Transfers", progettato per consentire il trasferimento in streaming di grandi volumi di dati tra il sistema principale (host) e il dispositivo grafico, senza interrompere il rendering né rallentarne le prestazioni. Il meccanismo è implementato tramite la nuova estensione VK_EXT_host_image_copy, il cui supporto è opzionale.
  • Sono state rese obbligatorie le funzionalità mirate a migliorare le prestazioni:
    • Push Descriptors — la possibilità di registrare aggiornamenti dei descriptor direttamente nel buffer dei comandi, invece di creare set di descriptor separati e vincolarli al buffer dei comandi.
    • VK_KHR_dynamic_rendering_local_read — consente di eseguire letture da buffer annidati (attachments) e risorse scritte dai frammenti shader precedenti, all'interno dei passaggi di rendering dinamici (render pass).
    • VK_EXT_scalar_block_layout — consente l'utilizzo di una struttura simile al C per blocchi SPIR-V, in cui è possibile allineare tipi non scalari in base alla dimensione dei loro componenti.
  • Sono incluse le estensioni VK_KHR_maintenance5 e VK_KHR_maintenance6, che forniscono comandi e strutture ausiliarie per semplificare la gestione delle risorse e degli shader.
  • Supporto garantito per il rendering a risoluzione 8K (7680 x 4320 pixel) e con l'uso di fino a 8 buffer di rendering indipendenti.
  • Le estensioni incluse sono:
    • VK_KHR_global_priority
    • VK_KHR_index_type_uint8
    • VK_KHR_line_rasterization
    • VK_KHR_load_store_op_none
    • VK_KHR_map_memory2
    • VK_KHR_push_descriptor
    • VK_KHR_shader_expect_assume
    • VK_KHR_shader_float_controls2
    • VK_KHR_shader_subgroup_rotate
    • VK_KHR_vertex_attribute_divisor
    • VK_EXT_pipeline_protected_access
    • VK_EXT_pipeline_robustness
  • Molte funzionalità precedentemente opzionali sono state elevate al rango di obbligatorie.
  • È stata aggiunta una grande quantità di nuovi comandi e strutture.

L'API Vulkan è nota per la semplificazione radicale dei driver, il trasferimento della generazione dei comandi GPU sul lato dell'applicazione, la possibilità di collegare i livelli di debug, l'unificazione dell'API per diverse piattaforme e l'uso di rappresentazioni intermedie di codice precompilate per l'esecuzione sul lato GPU.

Per garantire alte prestazioni e prevedibilità, Vulkan offre alle applicazioni strumenti per il controllo diretto delle operazioni GPU e supporto integrato per l'elaborazione multi-threading dei comandi GPU, riducendo al minimo le spese generali imposte dal driver; le funzionalità implementate sul lato driver diventano significativamente semplificate e più prevedibili. Ad esempio, operazioni come la gestione della memoria e l'elaborazione degli errori, gestite in OpenGL sul lato driver, in Vulkan vengono trasferite al livello dell'applicazione.

Vulkan copre tutte le piattaforme disponibili e fornisce un'unica API per sistemi desktop, mobili e Web, consentendo di utilizzare un'unica API comune per diversi processori grafici e aree di applicazione. Grazie all'architettura multilivello di Vulkan, che prevede la creazione di strumenti operanti su qualsiasi GPU, i produttori hardware possono utilizzare strumenti standardizzati per la verifica del codice, il debug e il profiling durante lo sviluppo.

Per la creazione di shader viene proposto un rappresentazione intermedia portatile SPIR-V, basata su LLVM e che utilizza tecnologie di base comuni con OpenCL. Con Vulkan è possibile utilizzare anche il linguaggio shader HLSL, utilizzato in DirectX, attraverso la sua traduzione in SPIR-V. Per la gestione delle periferiche e degli schermi, Vulkan offre un'interfaccia WSI (Window System Integration), che risolve all'incirca le stesse problematiche di EGL in OpenGL ES. Il supporto WSI è disponibile out-of-the-box in Wayland: tutte le applicazioni che utilizzano Vulkan possono essere eseguite in ambienti non modificati. server Wayland. Anche per Android, X11 (con DRI3), Windows, Tizen, macOS e iOS è garantita la possibilità di operare tramite WSI.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster