Microsoft は新しい DirectStorage 1.2 で低速の HDD でもパフォーマンスを向上させます
Microsoft は DirectStorage API の最新バージョンをリリースしました。新しいバージョン 1.2 には、いくつかの新機能とバグ修正が含まれています。いくつかの変更が行われたおかげで、ストアのパフォーマンスも向上しました。
Microsoft は、DirectStorage 1.2 でバッファー IO モードを導入しています。同社によると、これは開発者がソリッド ステート ドライブ (SSD) とハード ディスク ドライブ (HDD) の両方で同じコード パスを使用したいと考えているためです。HDD は、シーク時間がはるかに長いため、バッファー IO モードで動作します。同社は次のように書いています。
DirectStorage は現在、バッファなしモードでファイルを開きます。これにより、不必要なコピーを回避し、可能な限り迅速にデータを GPU に取り込むことができます。ただし、一部の開発者からは、高速 SSD と従来のハード ドライブの両方で同じコードを使用できるようにしたいとの声がありました。従来のハード ドライブでは、長いシーク時間をマスクするためにバッファリングされた IO が必要です。このため、バッファー モードでファイルを開くように DirectStorage を構成する機能を追加しました。
バッファリングされた IO とは別に、新しいGetCompressionSupport API が導入されました。これにより、GPU であるかフォールバック CPU パスであるかにかかわらず、使用される解凍パスをクエリする機能が追加されます。DirectStorage 1.2 の完全な変更ログを以下に示します。
新機能
- OS のファイル キャッシング動作の恩恵を受ける可能性のある HDD で使用するために、バッファリングされたファイル IO を有効にするためのサポートを追加します。
- IDStorageQueue2::GetCompressionSupport APIを追加して、サポートされている GPU 解凍形式を解凍するときに DirectStorage ランタイムがたどるパスを示します。
- dstorage.h と dstorageerr.h を MIT ライセンスの対象になるように更新します。
- Microsoft.Direct3D.DirectStorage.winmdを追加して、API への非 C++ バインディングの生成を容易にします。
バグの修正
- DSTORAGE_REQUEST_OPTIONS に「Reserved1」フィールドを追加します。これにより、構造体のメモリ内レイアウトがより明確になりますが、実際には以前のバージョンからレイアウトが変更されることはありません。
- 3D テクスチャの DSTORAGE_REQUEST_DESTINATION_TEXTURE_REGION を修正しました。
- 非圧縮データをメモリからバッファに転送するときに発生したスケジューリングの問題を修正
パフォーマンスの向上
- GPU 解凍後に、より高速な GPU の計算キューにコピーを移動します。
詳細については、こちらの公式ブログ投稿を参照してください。
コメントを残す