PDA

View Full Version : [Hardware] La fine delle DirectX?


Tommo
18-09-2008, 13:58
Salve,
oggi mi sono imbattuto in questa intervista a Tim Sweeney, che è il capo dello sviluppo di tutte le Unreal Engines: insomma, quello che decide come farle e cosa metterci, definendo le loro future capacità spesso anni prima che esista un PC in grado di farle girare...

http://arstechnica.com/articles/paedia/gpu-sweeney-interview.ars

Per chi non gli andasse di leggerselo tutto, Sweeney profetizza che ci si renderà progressivamente conto della limitatezza delle API 3D quali DirectX e OpenGL, e che il futuro è nelle mani dei processori general purpose many-core come Larrabee, oppure come CUDA, o Fusion.
A suo parere, in futuro si bypasseranno i linguaggi di shading, i drivers, la stessa DirectX, per scrivere un Software Render in un linguaggio C++like, ottimizzato per processori super paralleli... e ci potrebbe essere una nuova primavera delle tecniche di rendering alternative come Voxel e Raytracing, grazie alla libertà che lascia il futuro hardware.

In sostanza, secondo lui (e pure secondo me ma vabè) le DirectX 9 saranno le ultime a contare davvero. Le future versioni perderano il monopolio e diverranno solamente "un altro software render", necessario solo a chi volesse impiegare meno tempo.

A me la prospettiva piace... dato che limitare le GPU nell'ambito videogiochi mi pare sempre di più uno spreco di corrente, date le performance che se ne possono tirare fuori... ma credo che ci vorrà enormemente più dei 5 anni che profetizza, dato che oggi una scheda GPGPU è roba per pochi.
Tuttavia, se le prossime consoles fossero GPGPU, il passaggio sarà probabilmente decisamente rapido...:sofico:

Che ne pensate?:stordita:

71104
18-09-2008, 17:54
a dire il vero non ho letto l'articolo, ma ho letto tutto il post; non capisco come mai tutta questa inimicizia verso le DirectX (e anche le OpenGL, 'si sa mai che la gente pensasse che siamo anti-Microsoft :muro: ): i programmi non interagiscono più con l'hardware in maniera diretta da decenni; un programma che non usa interfacce API è un programma che può solamente leggere e scrivere in memoria principale. l'hardware si evolverà come ti pare, ma ad interfacciare con l'hardware continueranno ad essere le DirectX ed in generale le API del sistema ancora per un bel po'.

cdimauro
18-09-2008, 21:01
Questo è sicuramente vero: ci sarà bisogno sempre bisogno di API non foss'altro per astrarre e regolare l'accesso all'hardware.

Per il resto Sweeney dice delle ovvietà.

Tommo
19-09-2008, 09:43
Questo è sicuramente vero: ci sarà bisogno sempre bisogno di API non foss'altro per astrarre e regolare l'accesso all'hardware.

Per il resto Sweeney dice delle ovvietà.

Bhe, il punto è che non c'è più nulla da astrarre, perchè ci sarebbe uno standard di elaborazione GPU comparabile all'x86 delle CPU... in questa maniera si potrebbe compilare codice GPU che funzionerebbe uguale su tutte quelle standard.
Ovviamente io parlo di quando ci sarà questo standard, cioè non prima di 5 anni.

In pratica, il cambio di punto di vista è che la GPU non è "hardware", inteso come periferica, ma una CPU many-core vettoriale generica, magari parte della CPU principale stessa (Fusion).

Boh, a me piace l'idea di dovermi solo focalizzare sugli algoritmi indipendentemente dal drivers e dalle API, ma in effetti moltissime persone sono scettiche... :stordita:

cdimauro
19-09-2008, 10:19
Ma guarda che oggi è già così. Semplicemente il lavoro che dovranno fare le GPU sarà diverso da quello che faranno oggi, ma servirà sempre uno standard a cui appoggiarsi. ;)

Tommo
19-09-2008, 17:16
Ma guarda che oggi è già così. Semplicemente il lavoro che dovranno fare le GPU sarà diverso da quello che faranno oggi, ma servirà sempre uno standard a cui appoggiarsi. ;)

Bhe non credo che oggi puoi programmare la GPU in C++ e linkare la libreria direttamente all'eseguibile principale :D

Oggi è assolutamente assurdo provare a piegare la GPU al general purpose... figurarsi usarla come secondo processore.

cdimauro
19-09-2008, 21:09
Direi proprio di no: già da tempo lo si fa, e CUDA è soltanto l'ultimo esempio. ;)

Avere uno standard è necessario perché non si devono vincolare i produttori di schede video a progettare le GPU tutte uguali: ognuno, poi, implementerà a modo suo le specifiche.