DirectX un freno per i giochi PC, vanno eliminate

In un'intervista un manager di AMD svela come molti sviluppatori di giochi desiderino veder sparire le DirectX a favore di una programmazione diretta sull'hardware a basso livello.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Senza le DirectX e con una programmazione diretta al cuore dell'hardware, i giochi potrebbero sfruttare meglio l'hardware ed essere visivamente più appaganti. Richard Huddy, manager per le relazioni con gli sviluppatori della divisione GPU di AMD, svela in un'intervista a Bit-tech alcuni lati nascosti del mondo dei videogiochi.

"È divertente. Spesso con le schede video di fascia alta abbiamo almeno dieci volte la potenza di una Xbox 360 o una PS3, tuttavia è chiaro che i giochi non appaiono dieci volte migliori. In misura rilevante questo dipende dal fatto, in un modo o nell'altro, per buone o cattive ragioni - la maggior parte buone - le DirectX sono d'intralcio".

Tra le richieste più comuni fatte dagli sviluppatori c'è quella di eliminare le API. "Penso che gli sviluppatori fossero attratti da Larrabee (il progetto di GPGPU Intel, abbandonato) non per l'hardware - caldo, lento e poco potente - ma per il software, in altre parole la possibilità di avere il controllo totale su un sistema. Offrendo l'accesso all'hardware a un livello molto basso, si dà agli sviluppatori di giochi la possibilità di innovare e questo mette pressione su Microsoft, non ci sono dubbi".

Le API 3D non sono, però, il male totale. Hanno i loro vantaggi, come la possibilità di far funzionare i giochi su una vasta gamma di hardware oppure consentire l'accesso a nuove tecnologie con maggiore facilità. Il problema è l'overhead prestazionale delle DirectX, che "deprime gli sviluppatori".

"Un layer software offre sicurezza, ma sfortunatamente tende a sottrarre un bel po' di prestazioni e soprattutto la possibilità d'innovare", ha aggiunto Huddy. L'introduzione degli shader, nel 2002, non ha portato grande varietà grafica.

"Le persone usano gli shader nelle modalità più scontate. Ciò significa che hanno usato gli shader per una convergenza grafica e molti giochi offrono lo stesso di look and feel. Togliendo le API le persone possono renderizzare realmente tutto ciò che immaginano e probabilmente in questo tipo di situazione vedremo più innovazione".

L'impatto prestazionale delle DirectX è variabile, secondo Huddy. Su console si possono disegnare 10 o 20 mila parti geometriche in frame, a 30 o 60 fps. Su PC non se ne possono disegnare più di 2/3 mila senza avere problemi prestazionali. Le DirectX, con l'ultima versione, sono possono gestire più chiamate, ma ancora non basta.

La possibilità di programmare direttamente sull'hardware, senza passare tramite API intermedie, consente soprattutto nel ciclo finale della vita di una console di sfruttare al meglio le risorse hardware. Tutto è facilitato dal fatto che le console hanno un hardware ben definito, mentre su PC ci sono differenti architetture grafiche, che lavorano in modo diverso. Questo potrebbe essere un grande problema per gli sviluppatori.

"Il problema con il PC è che idealmente si vuole che non vada troppo in crash, e se uno sviluppatore di giochi è troppo entusiasta del modo in cui programma direttamente sull'hardware, questo si può tradurre in molte difficoltà per noi che, come azienda di hardware, cerchiamo di mantenere il PC stabile".

Michael Glueck, direttore tecnico per la ricerca e sviluppo, ha espresso interesse per le parole di Huddy. Glueck rileva inoltre che alcuni anni fa, tutte le operazioni critiche per le prestazioni della CPU erano fatte dal programmatore, a partire dalle ottimizzazioni assembly a basso livello fino ad arrivare thread di alto livello e alla gestione della memoria.

###old741###old

"Ora che il mondo del computing fonde CPU e GPU, si perde un sacco di tempo, usando strati di API ai livelli più alti - come OpenCL, CUDA o Direct Compute - per eseguire algoritmi meno intelligenti sulle GPU, perché sono gestiti più rapidamente che su una CPU".

"Ha senso avere una struttura standardizzata, ma preferiremmo anche che questa API fosse il più sottile possibile per consentirci un accesso a un più basso livello dell'hardware. Questo non solo migliorerà le prestazioni, ma permetterà anche un uso migliore delle funzionalità hardware disponibili".

Glueck concorda sul fatto che le API potrebbero diventare sempre meno importanti per gli sviluppatori di videogiochi nei prossimi anni. "Le API sono fatte per soddisfare un particolare design hardware. Quando sempre più GPU diventeranno general purpose, dubito che saranno aggiunte unità a funzione fissa".