DirectX 12 su Windows 7, colpo di scena!

World of Warcraft: Battle for Azeroth è il primo gioco a supportare le API DirectX 12 su Windows 7. Annuncio del tutto inatteso da parte di Microsoft.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

DirectX 12 su Windows 7. Sì avete letto bene, le API DirectX 12 arrivano anche su Windows 7, il vecchio sistema operativo di casa Microsoft che nel 2009 pose rimedio al passo falso chiamato Windows Vista e che è ancora oggi è molto usato, con Net Applications che indica una quota di mercato superiore al 40%, più del 37,3% di Windows 10.

Il gradimento verso Windows 7 è elevato, malgrado Microsoft abbia comunicato la fine del supporto esteso, fissata per il 14 gennaio 2020. Dopodiché stop agli aggiornamenti di sicurezza e ai fix, con le aziende che se lo vorranno dovranno pagare alla casa di Redmond un abbonamento per ricevere supporto per altri tre anni, sino al 2023. La scelta di "migliorare Windows 7" è quindi quantomeno bizzarra per la tempistica.

Il colpo di scena del tutto inaspettato dell'arrivo delle API DirectX 12 su Windows 7 lo dobbiamo a Blizzard. O meglio, è quanto riferisce Microsoft in un post. "Blizzard ha aggiunto il supporto DirectX 12 a World of Warcraft su Windows 10 nel tardo 2018. L'aggiornamento è stato accolto calorosamente dai giocatori: grazie alle caratteristiche delle DirectX 12 come il multi-threading, i giocatori di WoW hanno sperimentato un sostanziale miglioramento del framerate (WoW è molto sensibile alle prestazioni della CPU). Dopo aver preso atto di tale vittoria prestazionale per i loro giocatori che usano le DirectX 12 su Windows 10, Blizzard voleva estenderla a chi era rimasto su Windows 7, dove le DirectX 12 non erano disponibili".

"In Microsoft facciamo ogni sforzo per rispondere al feedback dei clienti, così quando abbiamo ricevuto questo feedback da Blizzard e da altri sviluppatori, abbiamo deciso di agire. Microsoft è lieta di annunciare che abbiamo portato il runtime D3D12 user mode su Windows 7. Questo consente agli sviluppatori di trarre il massimo vantaggio dagli ultimi miglioramenti di D3D12 continuando a supportare i clienti su sistemi operativi più datati".

La patch 8.1.5 di World of Warcraft: Battle for Azeroth fa sì che Blizzard sia il primo sviluppatore a usare le DirectX 12 su Windows 7. I giocatori dovrebbero sperimentare un miglioramento delle prestazioni, anche se Microsoft sottolinea come "le migliori prestazioni saranno sempre su Windows 10, dato che contiene diverse ottimizzazioni pensate per rendere le DirectX 12 ancora più veloci".

Microsoft ha assicurato che sta lavorando con altri sviluppatori per portare giochi DirectX 12 su Windows 7 e seguiranno annunci in futuro. Al momento questo supporto DirectX 12 in Windows 7 è legato esclusivamente a World of Warcraft, non potete scaricare le API DirectX 12 e installarle manualmente su Windows 7. Microsoft non ha rilasciato il runtime completo delle API su Windows 7.

Cosa offrono le DirectX 12 in più delle DirectX 11? Le ultime API DirectX consentono di parallelizzare e distribuire in modo molto più efficiente il carico tra i differenti core della CPU. In particolare danno agli sviluppatori un controllo diretto su risorse e GPU affinché ottimizzino meglio a seconda delle loro necessità.

Fornendo un livello di astrazione hardware molto più basso è possibile avvantaggiarsi in modo più completo delle capacità multithreading delle CPU, dei molti core all'interno delle GPU e potenzialmente delle diverse GPU e schede video presenti in un computer.

Le nuove librerie consentono agli sviluppatori di svolgere operazioni in parallelo sfruttando GPU separate. Di solito tutti i giochi 3D integrano una fase di post processing per il rendering delle immagini. Con le DX 12 è possibile affidare il compito a una seconda GPU liberando la prima GPU, che può così iniziare a calcolare il frame successivo, per un rendering più veloce (Asynchronous Shaders).

Una delle caratteristiche più originali delle DirectX 12 (purtroppo non utilizzata) è che l'elaborazione parallela può essere svolta su GPU differenti (DirectX 12 Multiadapter). Molti portatili hanno due GPU, una integrata nel processore (spesso una Intel HD Graphics) per l'uso in modalità batteria e un'altra GPU specializzata (AMD o Nvidia) per compiti più esigenti.

Con le DX12 gli sviluppatori possono usare le GPU dedicate per il rendering della scena e le GPU integrate per il post processing. Come scritto più sopra però questa possibilità, sebbene dimostrata pubblicamente da Microsoft e da qualche sviluppatore, non ha mai preso piede - o meglio, il sentore è che sia stata osteggiata dai produttori di hardware.

Le DirectX12 migliorano anche la gestione della memoria e riducono gli effetti della frammentazione. Soprattutto, tendono a offrire un frame rate più costante grazie a un nuovo meccanismo di caching. Infine le DirectX 12 introducono nuove funzioni e ottimizzazioni per il rendering. Nella pipeline di generazione delle scene 3D c'è spazio per miglioramenti molti ampi con gli algoritmi di rilevamento delle collisioni, la gestione delle trasparenze e l'ottimizzazione sul fronte della geometria (backface culling, occlusion culling, frustum culling, contribution culling).