Microsoft が Xbox Series X/S で導入した高速ストレージ API を PC 版 DirectX に統合した技術の第 2 世代。GPU 直接ロード、BCPack 圧縮をサポートし、ゲームのロード時間を劇的に短縮。
DirectStorage 2.0 は、Microsoft が 2022 年に PC 向けに公開した高速ストレージ API「DirectStorage」の第 2 世代です。Xbox Series X/S で採用されている高速ロード技術を Windows 11(後に Windows 10 も一部)に統合し、GPU による直接データデコード、NVMe SSD の並列 I/O、BCPack 圧縮により、ゲームの起動・ロード時間を大幅に短縮します。
SSD → メインメモリ(圧縮データ) → CPU 展開 → メインメモリ(展開データ) → GPU メモリ
SSD → GPU メモリ → GPU 展開
| ゲーム | 従来(SATA SSD) | DirectStorage(NVMe) | |--------|-----------------|---------------------| | Forspoken | 25 秒 | 2 秒 | | Ratchet & Clank | 20 秒 | 1.5 秒 | | CP2077 | 30 秒 | 8 秒 |
// DirectStorage キュー作成
DSTORAGE_QUEUE_DESC queueDesc = {};
queueDesc.Capacity = 1024;
queueDesc.Priority = DSTORAGE_PRIORITY_NORMAL;
queueDesc.SourceType = DSTORAGE_REQUEST_SOURCE_FILE;
IDStorageQueue* queue;
factory->CreateQueue(&queueDesc, IID_PPV_ARGS(&queue));
// リクエスト送信
DSTORAGE_REQUEST request = {};
request.Options.CompressionFormat = DSTORAGE_COMPRESSION_FORMAT_GDEFLATE;
request.Source.File.Source = file;
request.Destination.Buffer.Resource = gpuResource;
queue->EnqueueRequest(&request);