米Microsoftは4月18日(現地時間)、「DirectStorage 1.2 SDK」をリリースした。ゲーム開発者がレガシーなHDDをサポートしながらDirectStorageを利用しやすくする改善が含まれており、DirectStorageに対応するゲームの増加につながると期待されている。
DirectStorageはストレージの高速化技術だ。高速なNVMe対応SSDのパフォーマンスを活かせるように、ファイルシステムやボリュームマネージャーなどにアクセスせずにストレージのデータを読み出してデータ転送を高速化(Bypass I/O)。圧縮データの展開にGPUを活用することでCPUのオーバーヘッドを減らし、ゲームのロード時間を短縮する。その際に不要なコピーを避け、高速にデータをGPUにロードするためにバッファリングされていない状態(unbuffered mode)でファイルを開いている。
ストレージがHDDの場合、シーク時間の長さをカバーするためにバッファリングIOが必要になる。SSDがPCに搭載されるようになって久しいものの、HDD搭載PCがまだ数多く残されており、プレイヤー規模を狭めないように多くのゲーム開発者がHDDを切り捨てられずにいる。そのため従来のHDD向けとは別に、NVMe対応SSD向けにDirectStorageをサポートする必要があり、その負担から昨年3月にWindowsでDirectStorageの提供が始まったものの、対応しているゲームはまだ少ない。しかし、DirectStorageに関心を持つ開発者は多く、DirectStorageでのHDDのサポートを求める声が上がっていたという。
そこでDirectStorage 1.2で、バッファードモードでファイルを開くように設定できるオプションを用意した。バッファリングされたIOはBypassIOと互換性がないため、そのオプションを使用する際にはDisableBypassIOをTRUEに設定しなければならない。ファイルバッファリングの恩恵を受ける低速のHDDドライブに対してのみ有効にする必要があり、どこで使用するかは開発者の判断になる。そうした未知数な部分はあるが、DirectStorageによる速度向上とファイルバッファリングの両方をサポートしやすくなると期待されている。
他にはバージョン1.2で、「GetCompressionSupport API」が追加された。DirectStorageは圧縮フォーマットの解凍パスをGPUのサポートされた機能に基づいて選択し、CPUのフォールバックパスが選択されることもある。同APIは使用される解凍パスを開発者が把握できるようにし、デフォルトのテクスチャ解像度を適切に設定できるようにする。