DirectX 12 e Ray Tracing, le novità che vedremo su Windows nel 2020

DirectX Raytracing Tier 1.1, DirectX Mesh Shader e DirectX Mesh Shader Pipeline sono le novità che vedremo nelle API DirectX 12 con Windows 10 20H1.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Tra le novità di Windows 10 20H1, versione del sistema operativo Microsoft che vedremo nella prima metà del prossimo anno, ci saranno anche nuove funzionalità legate alle librerie DirectX 12. Microsoft ne ha parlato in post sul proprio blog, rivolgendosi agli sviluppatori.

Sono tre le caratteristiche introdotte: DirectX Raytracing Tier 1.1, DirectX Mesh Shader e DirectX Mesh Shader Pipeline. DirectX Raytracing Tier 1.1 è il frutto del lavoro della casa di Redmond con sviluppatori di giochi e produttori di GPU per “esporre al meglio le capacità dell’hardware”.

DirectX Raytracing Tier 1.1 è un “superset” della specifica 1.0 con alcune funzionalità che dovrebbero garantire maggiori prestazioni ed efficienza tra cui spiccano ExecuteIndirect”, che consente l’esecuzione di algoritmi adattivi dove il numero di raggi è deciso in base alla sequenza temporale di esecuzione della GPU e “Inline Raytracing”, che dà maggiore controllo aprendo nuovi casi d’uso, specie sul fronte del calcolo (culling, physics, occlusion queries e così via).

DirectX Mesh Shader è legata a “mesh shader e amplification shader, la prossima generazione delle capacità di calcolo geometrico della GPU”, secondo quanto affermato da Microsoft. Mesh e amplification shader rimpiazzano “gli attuali stadi input assembler, vertex shader, hull shader, tessellator, domain shader e geometry shader”.

I mesh shader, supportati dalle GPU Nvidia Turing, dovrebbero migliorare notevolmente la qualità dell’immagine garantendo allo stesso tempo ottime prestazioni. Nel dettaglio, il mesh shading consiste in una pipeline grafica di shading geometrico programmabile, che usa ciò che Nvidia definisce “gruppi di thread cooperativi” per creare dei mesh compatti sul chip.

Con mesh s’intendono i mesh poligonali, reticoli che definiscono un oggetto nello spazio, composto da vertici, spigoli e facce. L’obiettivo principale del mesh shading è di alleggerire la CPU facendosi carico di alcune delle operazioni di calcolo più complesse e pesanti, in modo da sfruttare al massimo le grandi capacità di calcolo parallelo delle GPU.

La flessibilità e le alte prestazioni garantite dal modello di programmazione mesh shader “consentiranno agli sviluppatori di aumentare il dettaglio geometrico e renderizzare scene più complesse senza sacrificare il frame rate”.

Infine ecco DirectX Sampler Feedback, una funzionalità hardware che registra a quali aree di una texture si è fatto accesso durante il sampling al fine di migliorare l’efficienza dell’elaborazione, specie nei casi dove si ha a che fare con carichi elevati, come mondi di gioco sempre più grandi, e titoli che che calcolo e archiviano dinamicamente valori shader intermedi in una texture. Questo migliora enormemente l’efficienza ed evita della ridondanza nel calcolare parti di una texture non effettivamente necessarie.