Software

AMD aggiunge quattro nuovi strumenti grafici alla suite open FidelityFX

AMD rilancia il progetto GPUOpen con un nuovo sito e mettendo a disposizione degli sviluppatori nuovi e potenziati strumenti, continuando il suo impegno per l’innovazione e la promozione di standard aperti. L’iniziativa coinvolge la suite di strumenti FidelityFX, un toolkit open source che permette agli sviluppatori di aggiungere ai videogiochi effetti di post processo di alta qualità, ovvero maggior realismo, e che da questa settimana può contare oltre che su CAS anche su SSSR, CACAO, SPD ed LPM.

Il primo passo è stato fatto con l’introduzione nel 2019 del Contrast Adaptive Sharpening (CAS) in concomitanza al lancio dell’architettura RDNA con le schede grafiche della serie RX 5700: l’obiettivo era di migliorare la nitidezza visiva limitando il più possibile gli artefatti dopo l’intervento dell’antialiasing TTA, oltre che a supportare il Dynamic Resolution Scaling (DSR). Ora AMD mette a disposizione quattro nuove funzionalità aggiuntive per migliorare la qualità e le prestazioni di rendering.

Stochastic Screen Space Reflections (SSSR) è usata per ricreare riflessi il più realistici possibili e grazie ad un algoritmo ultra-ottimizzato il sovraccarico di lavoro che ne deriva è drasticamente limitato, permettendo migliori prestazioni e migliore qualità delle immagini riuscendo ad utilizzare informazioni già presenti e quindi già elaborate nella scena stessa. Manipolando le riflessioni, SSSR riesce anche a riprodurre con fedeltà la rugosità variabile delle superfici. L’architettura RDNA si avvantaggia di un filtro antirumore per ridurre gli artefatti causati dalla generazione della rugosità superficiale.

Combined Adaptive Compute Ambient Occlusion (CACAO) è una tecnica di occlusione ambientale derivante dalla Adaptive Screen Space Ambient Occlusion di Intel, su cui è stato fatto un profondo lavoro di ottimizzazione. Chi sviluppa videogiochi, o meglio chi elabora un codice che viene interpretato da una tipologia variabile di GPU per elaborare una determinata scena e quindi restituire a video un’immagine, compila una serie di istruzioni che vengono poi eseguite dall’elaboratore, ma non tutte insieme. L’elaboratore le gestisce attraverso le cosidette “code”, in maniera molto simile alla coda in cassa che facciamo al supermercato: qui noi siamo abituati a finalizzare l’acquisto dando per scontato che in ogni cassa possiamo usare qualsiasi taglio di valuta corrente per il saldo in contanti e qualsiasi tipo di carta (di credito o debito) per quello elettronico.

L’elaboratore invece non ha le “casse” tutte uguali e non tutti gli elaboratori hanno ugual numero e tipologia delle stesse. Lo sviluppatore allora compila il codice tenendo conto il più possibile di queste code e di come possono essere raggruppate tra loro per poter essere processate dagli adeguati e preposti elementi dell’elaboratore. Senza andare troppo nello specifico, le code sono gestite in famiglie, e ogni famiglia può gestire un numero variabile di n-tipi di code per m-elementi dello stesso tipo di coda. Per esempio, può esserci la famiglia di code che gestisce 10 istruzioni di calcolo in sequenza, quella che gestisce una sola istruzione di trasferimento o quella che gestisce 50 istruzioni con 6 diverse tipologie di calcolo. Generare un’immagine non è semplicissimo, è un’insieme complesso di istruzioni. Il grande lavoro svolto da AMD sull’ASSAO di Intel è stato di dare l’opzione allo sviluppatore di scegliere più di un tipo di coda a cui affidare il calcolo dell’occlusione ambientale, permettendo tra l’altro l’esecuzione di CACAO con diverse impostazioni per rispondere ad altrettanti diversi requisiti bilanciando prestazioni e qualità, con lo scopo principe di essere eseguito su una vasta gamma hardware. Un potente strumento a disposizione di tutte le software house. Anche qui ovviamente l’ottimizzazione con l’architettura RDNA di AMD è ai massimi livelli.

Il Single Pass Downsampler (SPD) è una semplice quanto efficace tecnica per eseguire sottocampionamenti a singolo passaggio con MIP multilivello (fino a 12), che può essere sfruttata sia per creare la texture stessa sia per aggiungere effetti di post-processo come Bloom e Screen Space Reflection. La caratteristica più interessante è che dal metodo tradizionale di generazione dei livelli piramidali che avviene uno dopo l’altro con relativa sincronizzazione ad ogni step, SPD permette la gestione del mipmapping con il sottocampionamento di tutti i livelli in un unico passaggio senza la sincronizzazione intermedia. Lo scopo è di riuscire ad eseguire calcoli asincroni dove prima la necessità imponeva calcoli sincroni. Come i precedenti, anche se il target hardware è il quanto più possibile vario, SPD è stato ottimizzato per RDNA.

Il Luminance Preserving Mapper permette di utilizzare una libreria open source per integrare facilmente e velocemente l’HDR, con un’ampia gamma colori e mapping. Anche qui lo sforzo di AMD si è concentrato nello sviluppare una soluzione basata su ALU e non su LUT, così da eseguire l’elaborazione in modo asincrono ed evitare influenze negative dalla congestione con altri carichi di lavoro “strozzati” da limiti hardware. È una tecnica perfettamente compatibile e anzi ottimizzata per i monitor FreeSync Premium Pro, la tecnologia open di AMD per la sinconizzazione adattiva del monitor con compensazione dei bassi frame LFC e supporto avanzato all’HDR.

La suite FidelityFX quindi offre un pacchetto software potente a disposizione di tutti gli sviluppatori, senza che questi debbano optare per altre tecnologie decisamente meno aperte. L’estrema ottimizzazione dell’architettura RDNA è un invito ulteriore per poter sviluppare videogiochi orientati alle console next generation di prossima uscita, basate su RDNA2, con l’ausilio degli strumenti open di FidelityFX di AMD.

Archiviazione esterna iperveloce da 10Gb/s con interfaccia USB 3.2 Type-C e memoria SSD PCIe? Unisci questo box CSL in alluminio con questo SSD M.2 Sabrent Rocket Q da 1TB. Mai più come prima!