Dalla teoria... alla pratica!

Per provare le potenzialità della HD5870, non ci siamo limitati alla normale suite di test, ma abbiamo voluto sperimentare alcune delle funzionalità introdotte con le DirectX 11 sul nuovo hardware di casa ATI.

Come prima cosa è stato necessario aggiornare le librerie DirectX del nostro sistema Windows Vista SP2 di prova utilizzando la patch già citata nelle pagine precedenti. Dopo il riavvio il sistema era dotato di tutte le API necessarie per eseguire codice DirectX 11.

Attualmente non sono ancora disponibili giochi compatibili con le nuove librerie, ci siamo infatti affidati all'SDK Microsoft, collezione piuttosto nutrita di sample che ben si sono adattati ai nostri test. Per completezza dal 23 settembre è disponibile una patch per Battle Forge che oltre a risolvere alcuni bug, implementa il supporto DX11.


A questo indirizzo è disponibile il download di August 2009 DirectX SDK , risorsa indispensabile per ogni sviluppatore in ambiente Windows DirectX.


Sapphire Radeon HD 5870 1 GB GDDR5 4. DirectX 11 - Pratica 1 

Il download del SDK di Agosto 2009 pesa circa 553 MB ed include tutto il necessario per scrivere e provare applicativi basati su DirectX 9, 10 e 11.

Una volta terminata l'installazione è sufficiente lanciare il DirectX Sample Browser per avere accesso a tutta la documentazione e ai sample di codice ed eseguibili.


Tessellation

Come prima prova, non potevano che testare le funzionalità di tassellazione incluse nelle DirectX 11. Il modello fornito da Microsoft non è particolarmente evoluto, ma è sufficiente per dimostrare le differenze dell'utilizzo di questa tecnica. Abbiamo utilizzato il code sample PNTriangles11.


Sapphire Radeon HD 5870 1 GB GDDR5 4. DirectX 11 - Pratica 2 

Sapphire Radeon HD 5870 1 GB GDDR5 4. DirectX 11 - Pratica 3 

Tassellazione Disattivata

Tassellazione Attivata


L'aumento di dettaglio è evidente, i bordi hanno subito un effetto simile a quello dell'antialiasing, le superficie risultano più reali e meno “plasticose”.


Multithreaded Rendering

La seconda funzionalità che andremo a provare è il Multithreaded Rendering, ovvero la possibilità di gestire in modo autonomo i thread che si occupano della creazione della scena. Il sample code utilizzato è MultithreadedRendering11 nelle sue 5 modalità.


Sapphire Radeon HD 5870 1 GB GDDR5 4. DirectX 11 - Pratica 4 

Sapphire Radeon HD 5870 1 GB GDDR5 4. DirectX 11 - Pratica 5 


Le modalità ST sono a solo scopo dimostrativo e prevedono l'utilizzo di un solo thread per gestire il rendering dei singoli frame, nella modalità scene questa operazione avviene in modo sequenziale, in modalità chunk i frame vengono renderizzati in contesti differenti.

La modalità Immediate non prevede la gestione di alcun thread aggiuntivo, ma i dati sono direttamente processati dalla GPU.

Le modalità MT sono invece quelle più interessanti e sfruttabili all'interno di applicativi reali, utilizzano infatti il nuovo motore multithread. MT Def/chunk è la versione più scalabile in relazione al numero dei core della CPU di sistema, MT Def/scene prevede l'utilizzo di thread separati per i vari tipi di operazione (riflessi, ombre, etc.).


ComputeShader 11

L'ultima prova è un confronto tra i nuovi Computer Shader 11 e quelli della generazione passata (Direct3D 10 Pixel Shader e Geometry Shader). Il test prevede l'esecuzione a pari condizioni di due programmi che svolgono la stessa simulazione (interazioni tra particelle) scritte nei due differenti linguaggi.


Sapphire Radeon HD 5870 1 GB GDDR5 4. DirectX 11 - Pratica 6 

NbodyGravity (DX10) : 182 FPS

NbodyGravityCS11 (DX11) : 336 FPS



+ 84%