> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DirectCapture の概要

> DirectCapture は、互換性のあるフレームをディスプレイ ハードウェア経由ではなくソフトウェアでキャプチャすることで、XBOX Game Streaming サーバーのレイテンシーを最大 72ms 削減します。

## DirectCapture

DirectCapture は、互換性のあるフレームのサーバー レイテンシーを自動的に最小化する XBOX Game Streaming プラットフォームの機能です。[XGameStreamingGetDisplayDetails](/reference/system/xgamestreaming/functions/xgamestreaminggetdisplaydetails) API を使用すると、互換性のあるフレームの要件を問い合わせて、ゲームが DirectCapture を活用できるようにすることができます。互換性のあるフレームの要件を以下に説明します。

XBOX Game Streaming は、提示されたフレームをキャプチャ (コピー) し、そのフレームをエンコードしてストリーミングします。DirectCapture がない場合、フレームは表示ハードウェアを使用して、入力の提示パラメーターからエンコード用のフォーマットへ変換されます。Present Queue でフレームは 0 〜 66ms のレイテンシーが発生し、その後、フレームをキャプチャするために Display Writeback (DWB) を通過する際にさらに 8.3ms のレイテンシーが発生します。Present Queue にかかる時間は、ゲームのフレームレートやダブル バッファリング / トリプル バッファリングの使用有無などに依存します。8.3ms の Display Writeback 時間は HDMI クロックに結び付けられているため、8.3ms に固定されています。

しかし、XBOX Game Streaming サーバーには HDMI ディスプレイが接続されていないため、DirectCapture は表示ハードウェアを使用する代わりに、ソフトウェア実装によってこの時間を短縮します。DirectCapture は、VSync の待機やダブル / トリプル バッファリングのフリップの待機などを排除することで、約 2 〜 12ms でフレームをキャプチャします。これによりレイテンシーが最大 72ms 削減されます。

低いレイテンシーを実現するには、ゲームが DirectCapture と互換性のあるパラメーターで提示する必要があります。

* サポートされるコンソール モード
  * Lockhart Profiling Mode
* サポートされるゲーム レンダリング解像度
  * 任意、[カスタム解像度](/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview) を含む
* サポートされるスワップチェーン フォーマット
  * DXGI\_FORMAT\_R8G8B8A8\_UNORM
  * DXGI\_FORMAT\_B8G8R8A8\_UNORM
  * DXGI\_FORMAT\_R8G8B8A8\_UNORM\_SRGB
  * DXGI\_FORMAT\_B8G8R8A8\_UNORM\_SRGB
  * DXGI\_FORMAT\_R10G10B10A2\_UNORM
  * DXGI\_FORMAT\_R9G9B9E5\_SHAREDEXP
* サポートされる色空間
  * DXGI\_COLOR\_SPACE\_RGB\_FULL\_G22\_NONE\_P709

上記に記載されていない提示パラメーターは、現在 DirectCapture ではサポートされていません。たとえば、以下はサポートされていません。

* ゲーム レンダリング解像度: XDK ゲームの 3840x2160
* HDR
* 複数の提示プレーン

[XGameStreamingGetDisplayDetails](/reference/system/xgamestreaming/functions/xgamestreaminggetdisplaydetails) は、DirectCapture と互換性のあるものを提示するために何を提示すべきかを判断するのに役立ちます。また、PIX サポートは今後リリース予定です。

## タイトルが DirectCapture でストリーミングされていることの検証

タイトルが DirectCapture で実行されていることを、ストリーミング ログ ファイルを確認することで検証できます。

### ログ ファイルの収集

ストリーミング ログ ファイルを収集するには:

1. ゲームの実行を開始します
2. ストリーミングを開始し、いずれかの Content Test App (CTA) で接続します
3. ゲームの短いセクションをプレイします
4. ゲームを終了します
5. CTA を切断します
6. ログの書き込みが完了するまで 30 秒待ちます
7. C:\temp などのローカル ディレクトリにログをコピーします
   1. `xbcp xt:\XStreamLogs\XStreamManagementService.etl c:\temp`
   2. `xbcp xt:\XStreamLogs\nanotrace.etl c:\temp`

### 遷移メッセージの表示

1. [Windows Performance Analyzer](https://apps.microsoft.com/store/detail/windows-performance-analyzer/9N0W1B2BXGNZ) で XStreamManagementService.etl を開きます
2. 左ペインで System Activity を右クリックし、「Add graph to Analysis View」を選択します
3. 下のペインで、Microsoft.Xbox.StreamManagementService を展開します
4. Microsoft.Xbox.HostStreamingAgent プロバイダーを探し、必要に応じて展開します。これがない場合は、上記のログ ファイル収集の手順を繰り返してください。
5. DirectCaptureLog タスクを選択し、必要に応じて Unknown Process を展開します
6. 右にスクロールし、0\_Message、1\_Message などの列を探します。それぞれが DirectCapture からのメッセージで、順序どおりに並んでいます。複数の行がある場合は、時刻順に並べ替えられます。
7. 各メッセージの意味については、以下の表を参照してください。これらのメッセージは、DirectCapture が無効化されるケースの理由とともに、DirectCapture の遷移のシーケンスを教えてくれます。

| Message ID | メッセージ                                                                                                  |
| ---------- | ------------------------------------------------------------------------------------------------------ |
| 1          | DirectCapture に切り替え                                                                                    |
| 2          | DWB に切り替え (DirectCapture は無効)                                                                          |
| 3          | サポートされていないレンダー プレーンの構成。これは、ゲーム内のレンダー プレーンによるか、システムがタイトル上にオーバーレイをレンダリング (例: システム通知) することによるものかもしれません    |
| 4          | サポートされていないピクセル フォーマット。当時のゲームのピクセル フォーマットについては、関連する PixelFormat を参照してください                               |
| 5          | サポートされていないタイル モード。当時のゲームのタイル モードについては、関連する TileMode を参照してください                                          |
| 6          | サポートされていないゲーム解像度。当時ゲームがレンダリングしていた解像度を確認するには、関連する GameResolutionWidth と GameResolutionHeight を参照してください。 |
| 8          | 非ゲーム フレームが画面上にあります                                                                                     |
| 12         | DirectCapture が有効ではありません (おそらくサポートされていないコンソール モードによるものです)                                              |
| 18         | サポートされていないソース矩形サイズ                                                                                     |
| 19         | サポートされていない Present パラメーター フラグ                                                                          |
| 21         | サポートされていない宛先矩形サイズ                                                                                      |

### 詳細なフレーム情報

1. Windows Performance Analyzer で nanotrace.etl を開きます
2. 「Microsoft.Xbox.CloudStreaming」プロバイダーに移動し、「VideoFrameCaptureSourceChanged」タスクを選択し、プロセス「ApplicationClipService.exe」を展開して、すべての「VideoFrameCaptureSourceChanged」イベントを表示します。
3. 「NewCaptureSource」フィールドを確認します
   * その値が「DCap」で始まる場合、タイトルは DirectCapture のより低いレイテンシーでストリーミングされています
   * 「DWB」の値は、DirectCapture が使用されていないことを意味し、既定のキャプチャ メカニズムが使用されます。これは次の場合に発生します:
     * タイトルが DirectCapture と互換性のないフレームを出力する
     * システムがタイトル上にオーバーレイをレンダリングする (例: システム通知)

## 注意事項

* nanotrace.etl は限られた履歴しか持たないため、「VideoFrameCaptureSourceChanged」が表示されない場合、セッションが長すぎた可能性があります。検証するには、より短いセッションを実行し、ETL を確認してください。
* 開発キットでの DirectCapture サポートは、XBOX Series X 開発キットに限定されています
* 詳細については、[XBOX Game Streaming: Reducing Latency and Optimizing for the Best Mobile Experiences](https://www.youtube.com/watch?v=-WIXftoHCl4) をご覧ください。

## 関連項目

[カスタム解像度の概要](/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview)


## Related topics

- [ゲーム ストリーミングにおけるカスタム解像度のベスト プラクティス](/ja-jp/build/core-features/common/game-streaming/game-streaming-custom-resolution-best-practices.md)
- [XBOX Game Streaming 向けにゲームを最適化する](/ja-jp/build/core-features/common/game-streaming/game-streaming-optimizing-your-game.md)
- [DirectStorage の概要](/ja-jp/build/console-features/storage/directstorage/directstorage-overview.md)
- [カスタム解像度の概要](/ja-jp/build/core-features/common/game-streaming/game-streaming-custom-resolution-overview.md)
- [Multiplayer Session Directory の概要](/ja-jp/services/xbox-services/multiplayer/mpsd/live-mpsd-overview.md)
