Vulkan (API): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Boboviz (discussione | contributi)
Nessun oggetto della modifica
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(25 versioni intermedie di 16 utenti non mostrate)
Riga 11:
}}
 
'''Vulkan''' è un'[[Application programming interface|interfaccia programmatica di programmazione applicativaapplicazione]] (API) di [[Linguaggio di programmazione a basso livello|basso livello]], multi-piattaforma in [[Bidimensionalità|2D]] e [[Computer grafica 3D|3D]], annunciata la prima volta al [[Game Developers Conference|GDC]] 2015 da [[Khronos Group]]. Inizialmente venne presentata come "[[OpenGL]] di prossima generazione" o semplicemente "glNext" di Khronos, ma l'uso di questi nomi è stato sospeso una volta che il nome di Vulkan è stato annunciato. Come OpenGL, gli obiettivi di Vulkan sono le alte prestazioni per applicazioni di grafica 3D in tempo reale come i giochi e i media interattivi su tutte le piattaforme; inoltre offre prestazioni più elevate e minore sovraccarico della [[CPU]] comerispetto a [[DirectX|Direct3D 12]] e [[Mantle]]. Si dice che Vulkan sia "derivato da" e "costruito su" componenti Mantle di [[Advanced Micro Devices|AMD]].
 
KronosKhronos Group ha annunciato l'intenzione di unire Vulkan ed [[OpenCL]] sotto un'unica libreria, la quale permetterebbe di gestire la parte grafica e la parte computazionale insieme, riducendo di molto la complessità.
 
==Introduzione==
Vulkan ha lo scopo di fornire una varietà di vantaggi rispetto ad altre API così come il suo predecessore OpenGL. Vulkan offre minori costi, un controllo più diretto dell'hardware e della GPU, e un minore utilizzo della CPU, portando ai seguenti vantaggi:
 
*OpenGL usa il linguaggio ad alto livello [[GLSL]] per la scrittura di [[shader]] (analogo all'[[HLSL]] delle DirectX) che costringe ogni driver OpenGL all'esecuzione di un proprio [[compilatore]] per GLSL che esegue in fase di esecuzione dell'applicazione la traduzione dello shader del programma in codice eseguibile per la piattaforma di destinazione. Vulkan fornisce un intermediario binario chiamato [[Spir-v|SPIR-V]] (Standard Portable Intermediate Representation). Questo riduce l'onere sui fornitori di driver, permette la precompilazione degli shader, permette agli sviluppatori di applicazioni di scrivere shader in linguaggi diversi da GLSL.
*API multipiattaforma supportate sia sui dispositivi mobili sia su schede grafiche di fascia alta.
*OS agnostic per migliorare la portabilità delle applicazioni create utilizzando l'API.
*Migliorato il supporto per i sistemi moderni che utilizzano multithreading.
*Ridotto il carico sulla CPU in situazioni in cui la CPU costituisce il collo di bottiglia, permettendo un throughput più elevato per i calcoli GPU e [[rendering]].
 
== Vulkan 1.0Versioni ==
=== Vulkan 1.0.5 (4 marzo 2016) ===
RilasciateDistribuite ufficialmente il 16 febbraio 2016, rappresentano la prima versione finale delle API Vulkan. Periodicamente vengonosono rilasciatisviluppati gli aggiornamenti, che vanno ad introdurre nuove funzionalità, correggere i bug e ampliare la documentazione per gli sviluppatori.
 
==== Vulkan 1.0.45 (254 febbraiomarzo 2016) ====
* Bug Fix ed altre modifiche minori
 
=== Vulkan 1.0.5 (4 marzo 2016) ===
* Bug Fix
* Nuove regole aggiunte
* Sistemate alcune specifiche nella documentazione
* Aggiunta dell'estensione [[NVIDIA]]'s VK_NV_glsl_shader
 
==== Vulkan 1.0.2139 (1623 lugliogennaio 20162017) ====
* Bug Fix
* Sistemata la documentazione, con aggiunta di esempi pratici
 
=== Vulkan 1.0.39 (23 gennaio 2017) ===
È la release con il maggior numero di novità fin dalla prima release delle api
* Bug Fix
Line 47 ⟶ 41:
* Alcune ottimizzazioni per quanto riguarda le prestazioni
 
==== Vulkan 1.0.5461.1 (1320 lugliosettembre 2017) ====
* Nuove estensioni in "Beta" (quasi tutte riguardanti la [[Realtà virtuale|VR]])
* Passate allo stato "Stable" molte estensioni precedentemente in stato "Beta" (es. VK_KHR_16bit_storage e VK_KHR_variable_pointers)
* Altri Bug Fix
 
=== Vulkan 1.0.61.1 (20 settembre 2017) ===
* Bug Fix
* Introdotte molte nuove estensioni (VK_EXT_sample_locations, VK_EXT_validation_cache, VK_KHR_image_format_list, ecc)
* Abbandono del supporto di [[Microsoft Visual Studio]] 2013. Supportate solo le versioni successive.
 
=== Vulkan 1.1 ===
RilasciataDistribuita l'8 marzo 2018, è lail maggiorpiù relasegrande aggiornamento a partire dalla prima releaseversione. Anch'essa seguirà l'andamento degli aggiornamenti periodici come per la versione 1.0.
 
Le novità maggiori sono:
 
* Integra il supporto a Spir-V 1.3
* Introduce il supporto a [[High Level Shader Language|HLSL]]
* Introduce il supporto a [[YCbCr]]
* Numerose nuove funzionalità (raggruppamento device, multi-view, ecc).
 
=== Vulkan 1.0.39 (23 gennaio 2017)2 ===
Pubblicata il 15 gennaio 2020 è il risultato dello sforzo comune di Kronos con la comunità di sviluppatori che hanno richiesto l'implementazione di molte features e la risoluzioni di problemi noti.
 
Le novità più importanti sono:
 
* Semaforo timeline per la sincronizzazione
* Migliorato il supporto HLSL
* Indice dei descrittori
* 23 precedenti estensioni vengono integrate nel core API
* Un nuovo SDK
 
Nella versione 1.2 sono stati introdotte, in via sperimentale, le estensioni per il [[ray tracing]].
 
=== Vulkan 1.3 ===
Il 25 gennaio 2022, Vulkan 1.3 è stato distribuito dal gruppo Khronos. Vulkan 1.3 si concentra sulla riduzione della frammentazione rendendo le nuove funzionalità non opzionali in modo che un dispositivo possa essere considerato compatibile con Vulkan 1.3. Le nuove funzionalità di Vulkan 1.3 includono rendering dinamico, stato dinamico aggiuntivo, API di sincronizzazione migliorata e profili personalizzati per un dispositivo.
 
== Integrazioni ==
Quando ha pubblicato [[OpenCL]] 2.2, il gruppo Khronos ha annunciato che sarebbe convergente, ove possibile, con Vulkan per consentire la flessibilità di distribuzione del software OpenCL su entrambe le API. Ciò è stato dimostrato da Premiere Rush di [[Adobe (azienda)|Adobe]] che utilizza il compilatore [[open source]] clspv per compilare quantità significative di codice del kernel C OpenCL da eseguire su un [[Run-time system|runtime]] Vulkan per la distribuzione su [[Android]].
 
== Note ==
<references/>
 
== Altri progetti ==
{{interprogetto}}
 
== Collegamenti esterni ==
* {{SitoCollegamenti ufficialeesterni}}
 
{{portale|informaticasoftware libero}}
 
[[Categoria:Librerie grafiche]]