DirectStorage alla prova su Forkspoken: primi test incoraggianti ma diverse incognite

L'uscita di Forspoken, videogioco action RPG sviluppato da Luminous Productions e pubblicato da Square Enix, segna l'approdo della tecnologia DirectStorage su PC. Abbiamo svolto qualche test per vedere se effettivamente migliora i tempi di caricamento dei giochi come promette, usando un SSD PCIe 4.0, uno 3.0, un SATA e un hard disk.
di Manolo De Agostini pubblicato il 13 Febbraio 2023 nel canale StorageMicrosoftWindows 11
Forspoken è il primo gioco su PC a integrare la tecnologia DirectStorage, già disponibile sulle console Xbox Series X|S. La nuova API messa a punto da Microsoft nasce per rivoluzionare la gestione dei dati all'interno del sistema operativo ed è supportata da tutti i principali produttori di hardware, da NVIDIA ad AMD per arrivare a Intel. Tra i requisiti c'è infatti quello di una GPU DirectX 12 con supporto Shader Model 6.0.
Microsoft afferma che l'API è compatibile con Windows 11 e Windows 10, ma è sull'ultimo sistema operativo che dovrebbe dare il meglio. Inoltre, sempre secondo la casa di Redmond, oltre agli SSD NVMe, sono supportati anche gli SSD SATA e persino gli HDD SATA.
DirectStorage nasce per mandare in pensione la vecchia architettura di storage di Windows, Win32, nata all'epoca degli hard disk, per sfruttare al meglio gli SSD moderni, avvalendosi della GPU per la decompressione degli asset di gioco e sgravare la CPU da alcune operazioni al fine di velocizzare e ridurre la frequenza dei caricamenti degli scenari di gioco.
Si tratta di un obiettivo importante, specie se si pensa ai futuri giochi basati su Unreal Engine 5 che promettono mondi sempre più vasti e complessi. Ridurre al minimo e nella frequenza i caricamenti è quindi di fondamentale importante per un'esperienza fluida e coerente.
Tutto ruota attorno alla compressione degli asset di gioco e della loro decompressione da parte della GPU. Poiché oggigiorno sono necessari centinaia di gigabyte di dati per creare un gioco moderno, gli sviluppatori si affidano alla compressione per contenerne le dimensioni complessive.
Quando giochiamo, gli asset vengono trasferiti alla memoria di sistema, dove la CPU li decomprime prima di copiarli nella memoria della GPU. Il trasferimento e la decompressione degli asset contribuiscono in modo importante ai tempi di caricamento e ciò impedisce agli sviluppatori di creare scene open world più vaste e dettagliate.
Con DirectStorage la decompressione degli asset viene spostata sulla GPU, tipicamente molto efficiente e veloce nella gestione di operazioni ripetibili in parallelo, abbinando il tutto all'elevata bandwidth degli SSD NVMe.
Quindi, per ricapitolare: tempi di caricamento più veloci, uso maggiore dell'enorme bandwidth degli SSD, carico minore sulla CPU e un impiego maggiore della GPU. Questo almeno nell'implementazione ideale. Abbiamo fatto qualche test per verificare se allo stato attuale DirectStorage apporta benefici e in quale misura, ma prima di procedere abbiamo chiesto a NVIDIA se questo uso della GPU potrebbe andare a inficiare le prestazioni di rendering. Ecco la risposta:
"L'obiettivo di DirectStorage accelerato dalla GPU è quello di velocizzare le opzioni di Input/Output per caricare gli asset di gioco. I giocatori sperimenteranno il beneficio di DirectStorage come tempi di caricamento di giochi e livelli più rapidi e meno spazio su disco richiesto per le installazioni di giochi. Dato che il carico di lavoro è principalmente svolto durante il caricamento del gioco/livello e non durante il gameplay, ci aspettiamo che qualsiasi impatto sul rendering/FPS sia trascurabile".
Testare DirectStorage con Forspoken
Forspoken non ha un menu con una voce "DirectStorage" che permette di attivare o disattivare l'uso della nuova API facilmente, tuttavia è possibile inserire il parametro "-noDirectStorage" (senza virgolette) nelle opzioni di avvio per eseguire le varie prove. Inoltre, Forspoken integra un benchmark con sette scene in cui vengono registrati non solo gli FPS ma anche i tempi di caricamento, il che è utile per lo scopo della nostra prova. Prima di procedere, suggeriamo di riavviare il gioco dopo ogni test perché i risultati potrebbero essere falsati, probabilmente a causa degli asset che rimangono in cache.
La prima prova è stata svolta sulla nostra piattaforma di prova con Windows 11, una GeForce RTX 4080, un Ryzen 9 7950X, 32 GB di memoria DDR5-6000 e un SSD PCI Express 4.0 KIOXIA Exceria Pro da 2 TB. L'unità del produttore nipponico è in grado, da specifica, di toccare 7300 e 6400 MB/s con carichi sequenziali in lettura e scrittura, mentre i valori casuali sono rispettivamente pari a 800.000 IOPS e 1,3 milioni di IOPS.
SSD PCIe 4.0 | DirectStorage disattivato | DirectStorage attivato | Riduzione tempo di caricamento |
Scena 1 | 0,87 secondi | 0,64 secondi | -26,44% |
Scena 2 | 2,41 secondi | 2,31 secondi | -4,15% |
Scena 3 | 2,23 secondi | 2,01 secondi | -9,87% |
Scena 4 | 1,94 secondi | 1,27 secondi | -34,54% |
Scena 5 | 1,78 secondi | 1,1 secondi | -38,20% |
Scena 6 | 1,34 secondi | 1 secondo | -25,37% |
Scena 7 | 1,78 secondi | 1,07 secondi | -26,44% |
Come potete vedere, in termini di tempo di caricamento in senso assoluto, non cambia la vita, almeno non in questo tipo di prova. Passare da 2 secondi a 1,3 non è qualcosa che francamente si nota in termini reali, ma per i crudi numeri osserviamo una riduzione del tempo di caricamento fino al 40% circa, il che non è certo poco in percentuale.
Cosa succede se passiamo a un SSD PCI Express 3.0? Su un altro PC con Ryzen 5 2600, 16 GB di RAM DDR4-3000 e RX 6800 XT, avevamo un 970 EVO Plus da 512 GB. La prova è stata svolta con Windows 10. Ecco i risultati:
SSD PCIe 3.0 Windows 10 | DirectStorage disattivato | DirectStorage attivato | Riduzione tempo di caricamento |
Scena 1 | 1,73 secondi | 1,56 secondi | -9,83% |
Scena 2 | 4,12 secondi | 3,82 secondi | -7,28% |
Scena 3 | 4,6 secondi | 3,6 secondi | -21,74% |
Scena 4 | 3,86 secondi | 3,23 secondi | -16,32% |
Scena 5 | 3,44 secondi | 2,93 secondi | -14,83% |
Scena 6 | 3,34 secondi | 2,85 secondo | -14,67% |
Scena 7 | 3,48 secondi | 3,24 secondi | -6,90% |
Con l'SSD PCIe 3.0 e Windows 10, il calo nel tempo di caricamento che osserviamo è meno marcato rispetto a quanto visto sull'altro sistema con SSD PCIe 4.0 e Windows 11, e si ferma a un massimo del 22% circa. Non è chiaro se questo sia effettivamente addebitabile alle minori ottimizzazioni lato "stack I/O" di cui parla Microsoft. Per fare una prova ulteriore, abbiamo installato Windows 11 sullo stesso sistema e SSD:
SSD PCIe 3.0 Windows 11 | DirectStorage disattivato | DirectStorage attivato | Riduzione tempo di caricamento |
Scena 1 | 1,72 secondi | 1,34 secondi | -22,09% |
Scena 2 | 4,38 secondi | 4,16 secondi | -5,02% |
Scena 3 | 4,15 secondi | 4,06 secondi | -2,17% |
Scena 4 | 3,82 secondi | 3,25 secondi | -14,92% |
Scena 5 | 3,11 secondi | 3,19 secondi | +2,57% |
Scena 6 | 3,01 secondi | 2,9 secondi | -3,65% |
Scena 7 | 4,3 secondi | 3,37 secondi | -21,63% |
Il passaggio a Windows 11 non ha giovato ai tempi di caricamento di Forspoken sul nostro sistema, almeno con l'SSD PCIe 3.0. Il miglioramento massimo rimane simile a Windows 10, ma il calo del tempo di caricamento rimane inferiore a quanto ravvisato con Windows 10 e, soprattutto, più basso di quanto visto con l'SSD PCIe 4.0.
Il passo successivo è stato quello di prendere un SSD SATA. In redazione non avevamo moltissima scelta, perciò abbiamo pescato un OCZ Trion 150 (che rimane sempre un SATA 6 Gbps) da 480 GB. Ecco i risultati registrati su Windows 11:
SSD SATA 6 Gbps | DirectStorage disattivato | DirectStorage attivato | Riduzione tempo di caricamento |
Scena 1 | 2,74 secondi | 2,56 secondi | -6,85% |
Scena 2 | 5,69 secondi | 5,69 secondi | +0,12% |
Scena 3 | 7,60 secondi | 6,31 secondi | -17,05% |
Scena 4 | 6,97 secondi | 6,15 secondi | -11,81% |
Scena 5 | 6,50 secondi | 5,12 secondi | -21,31% |
Scena 6 | 5,32 secondi | 4,97 secondo | -6,55% |
Scena 7 | 7,69 secondi | 6,04 secondi | -21,42% |
Anche in questo caso l'attivazione di DirectStorage sembra incidere fino a circa il 22%, ma questa è l'istantanea di un singolo confronto. Dobbiamo dire che testando molteplici volte, su diversi supporti, abbiamo ravvisato una certa variabilità nelle prove, ed è anche per questo motivo che non riteniamo del tutto esaustivo e conclusivo questo primo approccio con DirectStorage.
L'ultima prova ha coinvolto Windows 11 e un hard disk SATA. Inutile dire che non usavamo un hard disk su una piattaforma di gioco da una vita e il solo averci a che fare ci ha confermato quanto benefici siano stati gli SSD per il mondo dei PC, la vera rivoluzione degli ultimi 15 anni. Anche in questo caso, non avendo un HDD recente, ci siamo dovuti accontentare di un vecchio Samsung SpinPoint F1 HD103UJ da 1 TB, un SATA II (3 Gbps) con piatti a 7200 RPM.
L'obiettivo era capire se DirectStorage è in grado di restituire benefici su dischi meccanici. Come vedete nella tabella, i tempi di caricamento sono decisamente più alti rispetto a qualsiasi SSD provato:
HDD 7200 RPM, SATA 3 Gbps | DirectStorage disattivato | DirectStorage attivato | Riduzione tempo di caricamento |
Scena 1 | 33,39 secondi | 34,65 secondi | +6,96% |
Scena 2 | 64,62 secondi | 63,4 secondi | -1,89% |
Scena 3 | 76,63 secondi | 60,7 secondi | -20,78% |
Scena 4 | 63,02 secondi | 91,57 secondi | +45,3% |
Scena 5 | 79,55 secondi | 43,75 secondi | -45,01% |
Scena 6 | 37,12 secondi | 53,94 secondi | +45,29% |
Scena 7 | 54,75 secondi | 43,71 secondi | -20,1% |
Quello che vediamo, e lo abbiamo ravvisato con diverse run, sono risultati altalenanti che non ci lasciano la sensazione di essere imputabili effettivamente a DirectStorage. Il disco è molto vecchio, probabilmente con un HDD moderno i tempi di caricamento sarebbero molto inferiori, tali da restituirci una migliore comprensione dell'eventuale impatto di DirectStorage su un disco meccanico. Abbiamo dato uno sguardo anche a test svolti da colleghi all'estero, e ci sembra che si possa dire che l'impatto è minimo o nullo sui dischi meccanici. DirectStorage nasce per gli SSD moderni, quindi non c'è nulla di cui lamentarsi.
Forkspoken usa DirectStorage al massimo? Forse no
Uscendo dalle considerazioni realizzate sfruttando il benchmark integrato nel gioco, va detto che Forspoken presenta tempi di caricamento molto rapidi, immediati praticamente, quando si va a lanciare un savegame dalla schermata iniziale. Il gioco sembra essere stato particolarmente curato sotto quel punto di vista, ma non abbiamo visto cambiamenti tangibili con e senza DirectStorage.
Abbiamo cercato di capire se effettivamente il gioco sfruttasse DirectStorage 1.1, ovvero la versione dell'API che introduce la decompressione degli asset tramite la GPU. Spulciando tra i file di gioco si possono rintracciare delle .dll che indicano la versione 1.1.0, ma osservando i vari caricamenti non sembra che la GPU venga chiamata effettivamente in causa.
In definitiva…
Questo primo approccio con DirectStorage ci ha convinto in parte. Abbiamo la sensazione che vi sia ancora da fare per ottimizzare l'esperienza. Con le unità NVMe abbiamo osservato miglioramenti nel tempo di caricamento, a volte convincenti altre un po' meno, ma si tratta di un progresso che nell'ottica di andare a ottimizzare ogni elemento di un gioco è qualcosa di importante. Windows necessitava di uno svecchiamento dell'impalcatura legata alla gestione dell'archiviazione e DirectStorage va nella giusta direzione.
Tralasciando i test "sintetici", durante l'esperienza di gioco DirectStorage ha abbreviato il caricamento di alcuni segmenti, a volte in modo più marcato altre meno. Più che la generazione di SSD, sembra che l'impatto maggiore lo abbia la CPU: se il processore è di ultima generazione e ha un buon numero di core, il passo avanti è meno più palpabile. Se invece si ha un sistema un po' più datato, con CPU con meno core, si possono osservare miglioramenti a tratti superiori.
Rimane però una singola prova, e soprattutto bisogna capire - ma al momento pare di no - se il gioco implementi la tecnologia al suo massimo attuale, ovvero in versione 1.1 con decompressione degli asset da parte della GPU.
Un altro elemento d'interesse per il futuro riguarda l'arrivo di firmware ottimizzati per gli SSD in grado di spremere qualche prestazione in più: Sabrent si è impegnata in tal senso e altri potrebbero seguirla, anche se poi bisognerà appurare quanto facciano la differenza quei firmware o quanto siano una trovata pubblicitaria.
In ultimo, se volete controllare che il vostro sistema sia pronto per DirectStorage, avviate la Xbox Game Bar premendo i tasti Windows+G, andate nelle impostazioni e in Funzionalità di gioco vedrete se GPU e SSD sono pronti per la nuova API.
15 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infosarà interessante vedere implementata questa feature in un gioco che nativamente richiede es 10s
L'idea era di Epic,ovvero chi progettò questa specie di Amiga portatile (la cosa fu nascosta molto bene per non fare fare brutta figura ai Tramiel che rilevarono Atari dopo aver venduto la Commodore).
Diciamo che era una specie di direct storage rudimentale come tecnica e la cosa permetteva di creare mondi molto più grandi rispetto a quello che si poteva fare a quei tempi o passare da una stanza all'altra senza caricamenti.
Più che una consolle è stato un laboratorio sperimentale il Lynx.
... Antani, blinda la supercazzola prematurata a tratti!
Scusate, non ho resisistito!
... Antani, blinda la supercazzola prematurata a tratti!
... Antani, blinda la supercazzola prematurata a tratti!
Scusate, non ho resisistito!
Fra l'altro, nei giochi moderni spesso un processore di punta (come ad esempio il 7950X) sarà utilizzato ben al di sotto delle sue capacità reali. Mentre la GPU di solito è sfruttata al 100%. Mi viene da pensare che, in ambito di streaming degli asset durante il gioco, sarebbe addirittura meglio che ci pensi la CPU piuttosto...
I titoli più pesanti mi partono in un paio di secondi...
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".