Perché le GPU richiedono driver specifici del gioco?


31

Gli aggiornamenti del driver GPU per PC spesso citano miglioramenti apportati alle prestazioni di giochi specifici rilasciati di recente. Perché è necessario questo aggiornamento specifico del gioco? In che modo le modifiche specifiche del gioco interagiscono con il codice del gioco?

Risposte:


31

Come qualcuno con alcuni anni di sviluppo del driver, vedo questo come due problemi separati.

Un driver grafico è una bestia molto complicata. Implementare tutto in modo ottimale sarebbe un compito semplicemente impossibile; è un ostacolo abbastanza grande solo per creare un driver che segua effettivamente le specifiche - e le specifiche continuano a diventare sempre più complesse. Quindi, sviluppi il tuo driver in base alle specifiche e una manciata di applicazioni di test (poiché, in molti casi, non esiste ancora un vero software).

Arriva un vero gioco (o benchmark, o qualche altro caso d'uso per il driver, come la decodifica video) che espone un collo di bottiglia nel driver. A te, capendo come appianare le cose e rendere più veloce quel caso d'uso. Puoi facilmente riferire che il gioco XYZ è più veloce del 27,3%, ma in realtà ogni applicazione che ha detto caso d'uso (diciamo, aggiornamento dinamico della trama) diventa più veloce.

Poi c'è il lato brutto, ottimizzazioni reali per applicazione, in cui il driver rileva quale applicazione viene eseguita (o quale shader viene compilato) e fa qualcosa di non generico. Ci sono stati molti casi pubblicizzati di questo, in cui, ad esempio, la ridenominazione dell'eseguibile 3dmark modifica improvvisamente i risultati.

Ritengo che questo tipo di ottimizzazioni sia una perdita di tempo per tutti: mentite ai vostri clienti nel caso dei benchmark e potreste cambiare il modo in cui uno shader si comporta da ciò che lo sviluppatore vuole realmente. Ricordo un caso in cui uno shader è stato cambiato da una ricerca di texture a un calcolo in-shader (che ha funzionato solo per l'hardware del produttore) che era vicino, ma non esattamente lo stesso risultato, e lo sviluppatore si è opposto che questo non fosse legale ottimizzazione.


2
+1 e questa dovrebbe essere la risposta accettata; fa un ottimo lavoro nel descrivere la situazione esatta e da una prospettiva interna. Penso di conoscere quel caso che hai citato - calcolo speculare, forse? ;)
Maximus Minimus,

14

In un mondo ideale non lo farebbero.

Tuttavia, questo non è un mondo ideale, quindi i miglioramenti delle prestazioni specifici del gioco possono derivare da uno o più dei seguenti (non inteso come un elenco esaustivo):

  • Il gioco sta eseguendo una combinazione di operazioni A, B e C con gli stati X, Y e Z impostati. Il driver può fare ipotesi basate su questo e spingere le cose verso un percorso del codice più ottimale.

  • Il gioco non esegue mai operazioni I, J o K. Anche in questo caso, il driver potrebbe essere in grado di scegliere un percorso di codice più ottimale in base alla possibilità di presumere che tali operazioni non vengano mai eseguite.

  • Il gioco fa alcune cose in modo leggermente (o non leggermente) non ottimale. L'autista lo sa, intercetta le chiamate e le converte in qualcosa (si spera!) Equivalente che funzionerà meglio con esso.

  • È possibile effettuare compromessi specifici del gioco; ad es. va bene se questa combinazione di stati di rendering diventa lenta perché è più importante che quella combinazione vada più veloce, quindi ottimizziamo di conseguenza.

È importante notare qui che nessuno di questi dovrebbe effettivamente essere "richiesto". Finché il driver e l'utilizzo dell'API del gioco sono conformi, le cose dovrebbero funzionare. A volte, tuttavia, si possono ritenere opportuni compromessi per casi speciali per essere in grado di estrarre le massime prestazioni. Mi trattengo dal commentare se questa è una cosa positiva.


1
Mi è stato detto che gli scrittori di driver GPU a volte danno anche un'occhiata agli shader per i giochi popolari e scrivono le proprie versioni ottimizzate per il loro hardware, che il driver sostituirà silenziosamente agli shader originali.
Nathan Reed,

9
@NathanReed C'era una volta, è andato ben oltre. Ai tempi in cui il filtro anisotropico e la compressione delle trame erano costosi, le società GPU si facevano in quattro per ridurre la qualità visiva del prodotto finale, quando veniva eseguita in tempo reale, per renderla più veloce senza avvisare nessuno con un monitor economico che il gioco sembrava molto peggio. Intercettavano persino le chiamate a PrintScreen e facevano un rendering di alta qualità per l'immagine.
Norguard,

8
Ai produttori di GPU piace anche imbrogliare a benchmark popolari. Ricordo un benchmark comparativo di una rivista per PC in cui hanno eseguito lo stesso benchmark due volte con le stesse impostazioni sullo stesso sistema. Ma una volta hanno ribattezzato l'eseguibile del benchmark in modo che il conducente non lo riconoscesse. Curiosamente, il punteggio sull'eseguibile rinominato era notevolmente peggiore - sia per le schede ATI che per le schede nvidia.
Philipp,

8

Gli sviluppatori di giochi spingono i limiti delle GPU. Possiamo fare un'analogia con un gioco e un motore di gioco. Più sono avanzati i requisiti del gioco, più deve essere avanzato il motore di gioco per supportarlo. Questo è lo stesso con le schede grafiche.

I giochi per computer e i produttori di GPU sono buoni compagni di letto. È nel loro interesse lavorare insieme per migliorare la GPU, migliorando così il gioco. Questo è il classico software ragazzi che lavorano con la relazione hardware ragazzi. Entrambe le parti hanno qualcosa da aggiungere quando si tratta di progettare l'interfaccia tra software e hardware. Quell'interfaccia è il driver.

Questi aggiornamenti possono includere correzioni di bug rilevate dai ragazzi del software o miglioramenti apportati dai ragazzi dell'hardware per supportare i requisiti dei ragazzi del software. Troverai questa relazione ovunque.

Probabilmente il ragionamento alla base dell'inclusione dei giochi specifici nelle note di rilascio dell'aggiornamento del driver è PR. Non solo mostra che il produttore di carte X funzionerà davvero bene con il gioco Y, ma mostra che il gioco Y sarà persino migliore di prima.


6

E 'plausibile che il team di sviluppo del gioco corse in un driver di bug GPU che causerebbe il gioco non funziona correttamente se il bug driver non è stato risolto.

A volte è anche un espediente di marketing . Ad esempio, ATI / AMD ha recentemente impacchettato una copia di Dirt 3 con le sue GPU più recenti e ha spinto l'idea di giocare con Eyefinity con 3 monitor in questo gioco.

Quindi è un po 'di simbiosi lì.

Venditore di GPU: Ehi! Questa nuova funzionalità! Nessuno lo sta usando!

Sviluppatore del gioco: abbiamo potuto usarlo! Unisci il nostro gioco alla tua GPU che utilizza questa funzione?

Venditore di GPU: Hell ya!


1

La verità è che le GPU non richiedono driver specifici del gioco.

I driver specifici del gioco fanno parte delle attività di marketing dei produttori di GPU per cercare di ottenere un vantaggio rispetto ad altri produttori di GPU. Se riescono a mostrare prestazioni migliori nei giochi popolari avendo messo a punto i loro driver per quei giochi specifici, allora (la teoria dice) attirano più giocatori di quei giochi.

È praticamente tutto quello che c'è da fare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.