Esercitazioni

▷ Directx 12 vs vulkan: la lotta per il miglior motore grafico?

Sommario:

Anonim

Attualmente per il mondo dei PC ci sono due API grafiche di prima classe che gestiscono il mercato con autorità. Per questo motivo ti proponiamo il confronto DirectX 12 Vs Vulkan.

Entrambi hanno una lunga storia alle spalle e un'intera orda di difensori e detrattori. Oggi vedremo le differenze, le chiavi di ognuna e cercheremo di offrire loro un po 'di luce.

Indice dei contenuti

API grafica di basso livello e "Driver overhead"

L'API sta per "interfaccia di programmazione dell'applicazione" ed è un insieme di subroutine che possono essere utilizzate da uno sviluppatore che include anche protocolli di comunicazione e utilità che facilitano lo sviluppo del software. Possiamo trovarli per quasi tutto ed è comune per ogni fornitore di servizi disporre di questo tipo di aiuto per implementare i propri sistemi in modo semplice e accessibile.

Le API di basso livello sfruttano meglio le risorse della GPU, alleviando la CPU, ma sono anche in grado di sfruttare meglio i processori multi-core che abbiamo oggi.

Sia DirectX 12 che Vulkan 1.1 sono API orientate allo sviluppo di giochi e applicazioni che richiedono l'assistenza dei moderni motori grafici. Allo stesso tempo, sono API supportate dai driver dei più importanti progettisti di chipset grafici e quindi un modo rapido ed economico per accedere alle loro funzionalità senza dover conoscere il loro design a un livello molto basso.

Un'API di basso livello, come queste, consente di lavorare con l'hardware con un livello di interpretazione molto leggero, che consente allo sviluppatore di sfruttare meglio l'hardware, ottenendo risultati migliori in termini di prestazioni ed efficienza, consentendo anche ad altri sottosistemi di essere liberati da carico aggiuntivo. Nel mondo del PC o dei telefoni cellulari, dipende meno dalla CPU generale del sistema.

Le due API di cui parleremo oggi possono essere considerate API di basso livello ed entrambi gli sviluppi hanno portato a una dipendenza sempre minore dalla CPU del sistema, ottenendo risultati migliori a livello di prestazioni e accesso a più funzioni grafiche. avamposti. Sono due API live che ricevono aggiornamenti ogni anno per mantenerle in linea con le aspettative del pubblico e degli sviluppatori.

Le API di basso livello hanno un effetto diretto su un altro concetto computazionale che conosciamo come "overhead del driver" che è, in breve, le risorse secondarie di cui abbiamo bisogno per eseguire determinati tipi di operazioni su un computer. Nel caso della grafica si riferisce alle risorse extra che la scheda grafica richiede per fare il suo lavoro e in questo caso sono tempi di processo della CPU fondamentalmente centrali. Le API di basso livello che descriveremo qui riducono questa dipendenza e in effetti la dipendenza tende a 0.

Microsoft DirectX

DirectX nasce come una necessità per standardizzare diversi sottosistemi multimediali di Windows ed è il sostituto di WinG per Windows 3.1. È adottato in Windows 95 come pacchetto aggiuntivo e la sua seconda versione, DirectX 2.0, diventa un componente fondamentale di Windows 95 OSR2.

All'interno di DirectX troviamo più API indipendenti come Direct3D, che è davvero quella in questione, DirectDraw, DirectMusic, DirectPlay e DirectSound. DirectX è stato un modo per nominare i progressi comuni in tutte queste API secondarie. È un'API per Windows ma viene anche utilizzata per lo sviluppo di giochi sulle sue console Xbox, quindi possiamo considerarla un'API multipiattaforma ma non gratuita, come nel caso di Vulkan.

DirectX 12, la sua ultima versione, è con noi dal 2014 e non si è fermato e alcuni mesi fa ha ricevuto importanti miglioramenti come la subroutine Direct Ray Tracing (DXR) inclusa nella versione di aggiornamento di Windows 10 del 1809 di ottobre.

Le API di basso livello come DirectX 12 hanno un vantaggio fondamentale, che è la riduzione del sovraccarico del driver. I programmatori hanno ora il potere di progettare come la GPU si comporterà nei loro programmi e possono gestire meglio le risorse della GPU, in particolare sfruttando la parallelizzazione dei processi. Ciò include un migliore supporto per più GPU in un sistema e anche se non sono dello stesso produttore.

Possono eseguire diversi tipi di operazioni, generalmente "numeri interi" o "virgola mobile" sfruttando le capacità della grafica compatibile e dividendo anche operazioni complesse in operazioni più semplici elaborandole in parallelo su quei bus più grandi. Un buon esempio è come AMD o Nvidia ora possono elaborare operazioni a 16 bit sui loro bus a 32 bit, migliorando sostanzialmente l'efficienza della loro grafica.

Questa API ha avvicinato l'efficienza d'uso di una GPU console, dove gli sviluppatori conoscono perfettamente l'hardware disponibile, fino all'eterogeneo ecosistema che forma un PC con infinite possibilità hardware diverse.

Attualmente DirectX 12 è disponibile, a sorpresa, per Windows 7 e Windows 10 e sebbene non sia direttamente compatibile con Xbox One, la verità è che praticamente il 90% delle sue funzionalità viene utilizzato per PC, le differenze sono minime e questo ha permesso gli sviluppatori adattano rapidamente i loro giochi per PC per Xbox One e viceversa.

Vulkan di Khronos

Vulkan è l'evoluzione dell'API di basso livello di OpenGL ed è supportato dalla Khronos Corporation. Nel mondo dei PC hanno un ruolo secondario rispetto a DirectX 12 ma i suoi diversi adattamenti a piattaforme diverse, come Android, lo hanno reso un punto di riferimento nella grafica per la mobilità. È anche compatibile con Linux essendo la grande alternativa del gioco nei sistemi gratuiti.

La sua grande virtù è la sua grande capacità di elaborazione parallela, essendo estremamente efficiente nelle moderne CPU e GPU, ottenendo bassi utilizzi del primo e un grande uso dell'hardware del secondo. È appositamente progettato per sfruttare i processori multi-core che raggiungono un'eccellente distribuzione del carico in questo tipo di processori, infatti è molto più efficiente per il maggior numero di core che possiamo fornire.

La storia di Vulkan risale a un anno dopo DirectX 12 e Khronos, che è una società senza scopo di lucro, la mantiene più spesso o più frequentemente di quanto faccia Microsoft con la propria API. Si basa sull'API Mantle che AMD ha sviluppato per la sua architettura GCN e che era un'altra API di basso livello per un "overhead driver" ridotto. AMD ha donato i suoi sviluppi a Khronos e questi sono i fondamenti di una delle migliori API grafiche sul mercato.

Oltre a una parallelizzazione superiore, questo design consente anche di eliminare la precompilazione delle operazioni di shading sulla GPU, potendo avere più effetti e sullo schermo con una maggiore velocità di caricamento, oltre a una regolazione più dettagliata di come l'hardware elabora le operazioni o di come accediamo al frame buffer disponibile. È sicuramente l'API per PC più vicina all'hardware stesso, persino migliore di DirectX 12.

Vulkan introduce anche miglioramenti API di basso livello su Android e altre piattaforme.

L'ultima versione, Vulkan 1.1, introdotta alla fine del 2018 aggiunge importanti miglioramenti come il supporto HLSL, che è l'alternativa di DirectX 12 alla gestione delle operazioni shader senza precompilazione, una migliore compatibilità con DirectX 12 (con le sue numerose subroutine oltre alla grafica), supporto esplicito per i sistemi multi-GPU indipendentemente dal produttore e, ovviamente, supporto per RayTracing.

Punti di forza e di debolezza di DirectX 12 vs Vulkan

Oltre alle funzionalità comuni già descritte, come un migliore utilizzo dell'hardware, un maggiore controllo e un migliore utilizzo della parallelizzazione di GPU e CPU, queste due API aggiungono anche la possibilità di eseguire operazioni di calcolo generali con chip grafici con che sono compatibili. Ciò consente ai motori grafici compatibili, già diverse generazioni, di essere in grado di eseguire complesse operazioni matematiche che possono essere sfruttate da programmi di ogni tipo, compresi quelli senza componenti grafici.

Nei giochi possono anche essere utilizzati per operazioni secondarie sempre più importanti come il calcolo di fisica realistica, intelligenza artificiale, effetti sonori posizionali, ecc.

Entrambe le API hanno un grande supporto da parte dei grandi della grafica, sia AMD che Nvidia si sforzano di offrire a queste API i driver appropriati per ottenere sia i miglioramenti più recenti che i propri utenti e rafforzare le prestazioni e la stabilità dei giochi che ne usano o un'altra API.

Il "sovraccarico del driver" di entrambi è molto basso, infatti, come vedrai nei nostri test non ci sono quasi differenze tra loro, il che è anche un segno dell'importante ottimizzazione dei driver di entrambi i produttori.

Abbiamo limitato il framerate a 120FPS per una demo di Driver Overhead. In Dota 2 il consumo di CPU è sostanzialmente ridotto con lo stesso FPS.

L'unica differenza più evidente è che Vulkan ha una dipendenza un po 'meno dalla CPU, con un consumo medio inferiore e che è anche molto più aperto a piattaforme diverse, tra cui Windows e Linux e la sua omogeneizzazione con OpenGL ES, che è la sua versione mobile, sta per unificare ulteriormente le piattaforme su cui si muove.

DirectX 12 ha a suo favore la grande accettazione da parte degli sviluppatori, che sembrano trovare in questa API l'ecosistema perfetto per ridurre i loro costi poiché ha anche una grande integrazione in framework tanto diffusi come.NET Framework in cui integra mille meraviglie con poca perdita di prestazioni.

Differenze di prestazioni nei giochi con doppia API

Man mano che il movimento viene dimostrato camminando, abbiamo eseguito alcuni test delle prestazioni in diversi giochi e benchmark che hanno la capacità di utilizzare queste due API per l'esecuzione.

Test overhead del driver 3DMark. Risultati in milioni di richieste, più è meglio.

Ceneri della singolarità. Risultati in FPS, di più è meglio.

Strana Brigata. Risultati in FPS, di più è meglio.

Riassumiamo le migliori guide hardware che dovrebbero interessarti:

  • I migliori processori sul mercato Le migliori schede madri sul mercato La migliore memoria RAM sul mercato Le migliori schede grafiche sul mercato I migliori SSD sul mercato Migliori case per chassis o PC Migliori alimentatori Migliori dissipatori di calore e dispositivi di raffreddamento a liquido

Come puoi vedere, i risultati sono pari e vediamo differenze tra i programmi a favore e contro l'uno e l'altro. Questo ci lascia con la domanda su quale sia il migliore e la risposta è chiara, dipende dal programma e da come il suo sviluppatore sa o vuole approfittare dei suoi vantaggi. Ciò che resta è pensare che in ogni gioco gli sviluppatori useranno precisamente l'API che sfrutta al meglio i vantaggi della nostra grafica, anche se è chiaro che entrambe le opzioni sembrano più che competenti. Cosa ne pensi del nostro articolo su Directx 12 vs Vulkan ? Vogliamo conoscere la tua opinione!

Esercitazioni

Scelta dell'editore

Back to top button