In queste ore si sta assistendo ad un'incredibile opera di disinformazione riguardo le funzionalità supportate dalle diverse GPU in commercio di AMD e NVIDIA. Personalmente non sappiamo se questa sia orchestrata da una casa in particolare o semplicemente da qualche giornalista un po’ ignorante in materia.
Quello che è certo, è che bisogna fare un po' di chiarezza. Prima di tutto va detto che Direct3D 12 è API pensata per girare sull’hardware grafico attualmente in commercio, purché vi sia il supporto alla memoria virtuale e alle tiled resource.
La nuova API è stata in gran parte plasmata attorno ad un nuovo modello di binding delle risorse, ovvero il modello che definisce come texture e buffer vengono gestiti nella memoria fisica e virtuale (dedicato o di sistema) dell’hardware grafico.
Per far sì che Direct3D 12 supportasse la più ampia gamma di hardware possibile senza dover scendere a compromessi significativi in grado di limitare la longevità dell’API, Microsoft assieme ai suoi partner hardware hanno stabilito di suddividere in tre tier (livelli) il grado di supporto al nuovo modello di binding delle risorse.
Ogni tier è il soprainsieme del suo predecessore, l’hardware di categoria tier 1 è quello con più limitazioni riguardo al modello di binding delle risorse, il tier 3 al contrario indica un supporto privo di limitazioni dovuti all’architettura della GPU ed il tier 2 rappresenta un livello intermedio.
Volendo considerare l’hardware attualmente in commercio, la situazione riguardante il supporto al binding delle risorse è la seguente:
Tier 1: INTEL Haswell e Broadwell, NVIDIA Fermi
Tier 2: NVIDIA Kepler, Maxwell 1.0 e Maxwell 2.0
Tier 3: AMD GCN 1.0, GCN 1.1 e GCN 1.2
Per quanto riguarda quindi il binding delle risorse, attualmente solo le GPU di casa AMD hanno quello che si potrebbe definire erroneamente come un “supporto completo”, mentre in realtà si tratta di un supporto privo di limitazioni hardware.
Oltre ai tre tier del modello di binding delle risorse Direct3D 12 propone quattro feature level, ovvero quattro livelli di funzionalità che vanno ad indicare un insieme ben definito di funzionalità di rendering.
Un’importante precisazione è che i feature level non sono direttamente legati ai tre tier del modello del binding delle risorse, inoltre coprono solo alcune delle funzionalità di rendering supportate o introdotte con Direct3D 12.
Se alcune di queste funzionalità non sono minimamente coperte nemmeno dal feature level più alto, le altre possono essere supportate singolarmente dall’hardware grafico (qualora l’architettura ed il driver lo consentano) indipendentemente dal feature level supportato.
Volendo ancora considerare l’hardware attualmente in commercio, la situazione riguardante il supporto ai vari feature level è la seguente:
Feature level 11.0: NVIDIA Fermi, Kepler, Maxwell 1.0
Feature level 11.1: AMD GCN 1.0, INTEL Haswell e Broadwell
Feature level 12.0: AMD GCN 1.1 e GCN 1.2
Feature level 12.1: NVIDIA Maxwell 2.0
Se i primi due corrispondono grosso modo ai feature level omonimi delle DirectX 11 (vi sono delle differenze dovuto proprio al nuovo modello di binding delle risorse), il 12.0 ed il 12.1 sono stati introdotti con la nuova API.
Pur di essere pleonastici, è altresì opportuno ribadire che il feature level 12.1 non coincide affatto con un fantomatico “pieno/completo supporto alle DirectX 12” in quanto non copre diverse funzionalità tutt’altro che poco importanti o di secondo piano.
A leggere i vari “scoop” che si trovano in rete, ulteriore confusione è stata fatta proprio con le singole funzionalità: alcune di esse sono raggruppate sempre in gruppi di due o tre tier, ma è bene precisare che ognuno di essi è del tutto autonomo dall’altro, dai tre tier del binding delle risorse e ovviamente dai quattro feature level.
Per quanto concerne infine il supporto a tutte le singole funzionalità al momento non è possibile né opportuno stilare una tabella completa e ben definita raffigurante il supporto dell’hardware attualmente in commercio.
A meno che non vi chiamate AMD, INTEL o NVIDIA infatti non è possibile presentare un tale resoconto con i driver attualmente disponibili sui canali pubblici o con documentazione che tutt’ora non sia sotto NDA, pertanto tutto il resto è solo da considerare come puri vaneggiamenti.