Skip to main content

DirectCapture

DirectCapture は、互換性のあるフレームのサーバー レイテンシーを自動的に最小化する XBOX Game Streaming プラットフォームの機能です。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
  • サポートされるゲーム レンダリング解像度
  • サポートされるスワップチェーン フォーマット
    • 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 は、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 で 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 の遷移のシーケンスを教えてくれます。

詳細なフレーム情報

  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 をご覧ください。

関連項目

カスタム解像度の概要
最終更新日 2026年8月24日