Pubblicato lo standard grafico Vulkan 1.4

Dopo quasi tre anni di lavoro, il consorzio Khronos, che si occupa dello sviluppo degli standard grafici, ha pubblicato la specifica Vulkan 1.4, che definisce l'API per l'accesso alle capacità grafiche e computazionali delle GPU. La nuova specifica include le estensioni accumulate, precedentemente considerate opzionali, e offre anche una serie di nuove funzionalità, oltre a elevare i requisiti minimi hardware. Si prevede che il toolkit Vulkan SDK sarà pubblicato a gennaio 2025.

I prodotti con supporto per Vulkan 1.4 sono in fase di lancio da parte di 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 nel set CTS (Khronos Conformance Test Suite) e sono inclusi nell'elenco dei driver certificati. Nell'elenco sono inclusi anche i driver Samsung e Qualcomm per la piattaforma Android, così come i driver per GPU PowerVR D-Series DXT* di Imagination Technologies e i driver proprietari di NVIDIA.

Novità principali:

  • È stata aggiunta la supporto per il meccanismo «Streaming Transfers», progettato per garantire la trasmissione continua di grandi volumi di dati tra il sistema principale (host) e il dispositivo grafico, senza interrompere il rendering e senza rallentare le sue prestazioni. Il meccanismo è implementato tramite la nuova estensione VK_EXT_host_image_copy, la cui supporto è opzionale.
  • Sono stati resi obbligatori i requisiti mirati a migliorare le prestazioni:
    • Push Descriptors — la possibilità di registrare aggiornamenti dei descrittori direttamente nel buffer comandi, invece di creare set separati di descrittori e collegarli al buffer comandi.
    • VK_KHR_dynamic_rendering_local_read — consente di eseguire letture da buffer annidati (attachments) e risorse scritte dai precedenti shader a frammento all'interno dei passaggi di rendering dinamici (render pass).
    • VK_EXT_scalar_block_layout — consente di utilizzare una struttura simile al C per i blocchi SPIR-V, in cui è possibile allineare i tipi non scalari in base alle dimensioni dei loro componenti.
  • Sono inclusi le estensioni VK_KHR_maintenance5 e VK_KHR_maintenance6, che forniscono comandi e strutture ausiliarie per semplificare la gestione delle risorse e degli shader.
  • È garantito il supporto per il rendering a risoluzione 8K (7680 x 4320 pixel) utilizzando fino a 8 buffer di rendering indipendenti.
  • Sono incluse le seguenti estensioni:
    • 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 classificate come obbligatorie.
  • È stata aggiunta una grande quantità di nuovi comandi e strutture.

L'API Vulkan si distingue per la semplificazione radicale dei driver, portando la generazione di comandi GPU sul lato applicativo, la possibilità di integrare strati di debug, l'unificazione dell'API su diverse piattaforme e l'utilizzo di rappresentazioni intermedie precompilate per l'esecuzione sul lato GPU.

Per garantire alte prestazioni e prevedibilità, Vulkan offre alle applicazioni strumenti per gestire direttamente le operazioni della GPU e supporto integrato per l'elaborazione multithread delle istruzioni della GPU, riducendo al minimo le sovraccarichi introdotti dal driver, mentre le capacità implementate a livello di driver diventano significativamente semplificate e più prevedibili. Ad esempio, operazioni come la gestione della memoria e l'elaborazione degli errori, implementate in OpenGL a livello di driver, vengono spostate a livello di applicazione in Vulkan.

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

Per la creazione di shader, viene proposta una rappresentazione intermedia portabile SPIR-V, basata su LLVM e che utilizza tecnologie di base comuni con OpenCL. Con Vulkan è possibile utilizzare anche il linguaggio shader HLSL, impiegato in DirectX, tramite la sua traduzione in SPIR-V. Per la gestione dei dispositivi e degli schermi in Vulkan, è disponibile l'interfaccia WSI (Window System Integration), che risolve approssimativamente le stesse problematiche di EGL in OpenGL ES. Il supporto per WSI è disponibile di default in Wayland: tutte le applicazioni che utilizzano Vulkan possono essere eseguite in ambienti non modificati. server Wayland. La possibilità di lavoro attraverso WSI è garantita anche per Android, X11 (con DRI3), Windows, Tizen, macOS e iOS.

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