Skip to main content
DPS は XBOX Series コンソールでのみ利用可能です。以前の XBOX コンソールでは効果がありません。
Dynamic Power States (DPS) は、レンダリング ワークロードに基づいて GPU の電力レベルを動的に調整します。GPU が十分に活用されていないとき、DPS は電力状態を引き下げ、パフォーマンスを損なうことなくエネルギーを節約します。グラフィックス ドライバーが直近のフレーム時間履歴に基づき、この調整を自動的に行います。 DPS を使用しない場合、GPU は電力状態 P4 に固定されます。つまり、アイドル状態の GPU でも必要以上の電力を消費します。DPS は、ワークロードが許す限り、より低い電力状態(P0〜P3)を解放します。

仕組み

  1. ゲームが GPU ダイナミック電力状態を有効にします。
  2. GPU が正規化されたフレーム統計を計算し、履歴データとして保存します。
  3. GPU が現在の需要と履歴に基づいて自動的に電力状態を変更し、エネルギーを節約します。
ゲームは XBOX Sustainability Toolkit の他の項目を採用することで、エネルギー消費をさらに削減できます。

ケース スタディ

Call of Duty: Black Ops 6

Call of Duty のシニア ディレクター オブ テクノロジー Rulon Raymond 氏:
DPS で数日間実験を行ったところ、結果は有望なものでした。具体的には、XBOX Sustainability Toolkit を用いて導入した部分 以外 の領域で、追加の 10〜15% の電力削減 が確認できました。私たちはすでに(メニューやフロントエンド画面などで)ゲーム エンジンの一部をスロットリングしており、プレイヤーのフレームレートは変えずに多くの電力を節約していましたが、DPS は労力ゼロでさらなる削減を可能にしました。
出荷時点での Black Ops 6 チームの計画:
  • すでに電力削減策が適用されているすべての領域で DPS を有効化する。
  • 数日間にわたるパフォーマンス テストを続ける間、DPS を常に有効化するフラグをデフォルト オフで公開する。

Two Point Museum

Two Point Studios の共同創設者兼テクニカル ディレクター Ben Hymers 氏は、XBOX チームが管理するクラウド設定を通じ、コード変更なしで DPS を出荷しました。
エネルギー効率を最大化するため、Dynamic Power States を Constrained+ モードと併せてテストしました。これらの機能により、メイン メニューで約 50〜58% の消費電力削減、constrained モード中で 39〜63% のエネルギー使用量削減が実現しました。ロールアウト以降、ゲームプレイの忠実度を損なうことなく、平均エネルギー消費量に顕著な減少が見られました。たとえば、XBOX Series X の消費電力は平均 135 W から 125 W に減少しました。プレイヤー全体では、これは年間 約 6.5 メガワット時 のエネルギー削減に相当し、テレビを 65,000 時間、つまり約 7.5 年間ぶっ通しで視聴するのと同等のエネルギー量です。
Two Point Museum は、クラウド構成を通じてリモートで DPS を採用した最初のサード パーティ スタジオです。

コードを変更せずに DPS をテストする(開発時のみ)

タイトルをリビルドすることなく、devkit で DPS をグローバルに有効化できます:
1

devkit をアップデートする

devkit に少なくとも August 2024 Recovery がインストールされていることを確認してください。
2

フラグ ファイルを作成する

PC 上に DynamicPowerEnable という名前の空ファイルを作成します。
3

コンソールの D: ドライブにコピーする

4

起動してプロファイリングする

ゲームを起動します。DPS が有効になっています。
5

完了後に DPS を無効化する

ゲームを再起動します。

DPS をリアルタイムで確認する

PIX または XBOX Manager のコンソール設定から Title Performance Overlay を有効にします。
  • DPS が有効になっている場合、オーバーレイの右下に赤い線と GPU power state メトリック(0〜4)が表示されます。4 はフル スピード、それより低い値はエネルギー節約を示します。
  • DPS が無効の場合、GPU power state は N/A と表示されます。
PIX の Power Load % メトリックを使用して、ゲームの特定部分における GPU エネルギー使用量の変化を測定できます。
タイトルは、DynamicPowerEnable ファイルを用いてリテールで DPS を有効化することは できません。リテール リリースには、下記の SetDriverHintX を使用してください。

ゲームで DPS を有効にする(リテール)

グラフィックス デバイス上の既存 API SetDriverHintX() を使用します。

API

June 2024 GDK 以降では、次の列挙型を使用します。
June 2024 より前の GDK(または古い XDK タイトル)では、値を直接使用します。

DPS を有効化する

DPS を無効化する

DPS はゲームプレイ中に切り替えることもできますが、常に有効のままにしておくと最大の削減効果が得られます。
ゲームで DPS を切り替える場合は、PLM の Resume() ハンドラーで目的の値をリセットしてください。DPS の状態は Suspend/Resume をまたいで保持されません。

フレーム統計で DPS を実行時に検出する

ゲームはフレーム統計を照会することで、DPS の挙動に基づいてレンダリングの判断(動的解像度など)を行うことができます。

GetFrameStatisticsX

新しいフレーム統計タイプが利用できます。
および関連する構造体:
既存の D3D12XBOX_RENDER_STATISTICSGPUBusyDuration を返します。
GPUBusyDuration正規化された 値です — GPU クロックが P4 にあると仮定し、現在の電力状態に依存しません。パワー スケーリング フレーム統計は電力状態の変化 を受けます — したがって GPUBusyDuration とは異なる値になります。

P4 で 8 ms かかる GPU ワークロードは、P2(クロックが低い)では 12 ms に伸びます:
正規化された GPUBusyDuration は、ゲーム エンジンが動的解像度の計算に使用するため保持されます。正規化スケール後 の測定値を分離することで、低い電力状態が動的解像度を最下限まで下げ続けるようなフィードバック ループを回避します。

次のステップ

最終更新日 2026年8月13日