Microsoft は新しい DirectStorage 1.2 で低速の HDD でもパフォーマンスを向上させます

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 の計算キューにコピーを移動します。

詳細については、こちらの公式ブログ投稿を参照してください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です