運作方式
- 遊戲啟用 GPU 動態電源狀態。
- GPU 計算標準化的畫面統計資料,並將其儲存為歷史資料。
- GPU 根據目前需求與歷史資料自動變更電源狀態,以節省能源。
遊戲可以透過採用 XBOX 永續性工具組 的其他部分,進一步降低能源消耗。
案例研究
Call of Duty: Black Ops 6
Call of Duty 技術資深總監 Rulon Raymond:我們花了幾天時間試驗 DPS,結果相當令人振奮。具體來說,在我們使用 XBOX 永續性工具組所導入的節能措施之外,我們還能看到額外 10–15% 的電力節省。我們原本就已在遊戲引擎的某些部分進行降速 (例如在選單或前端畫面中),而玩家的畫面播放速率完全沒有變化,這為我們節省了大量電力,但 DPS 讓我們不費吹灰之力就獲得了額外的節省。在發行時,Black Ops 6 團隊的計畫如下:
- 在所有已套用節能措施的區域啟用 DPS。
- 提供一個隨時啟用 DPS 的旗標 (預設為關閉),同時持續進行為期多天的效能測試。
Two Point Museum
Two Point Studios 技術總監暨共同創辦人 Ben Hymers 透過 XBOX 團隊管理的雲端設定推出 DPS,完全不需要變更程式碼:我們將動態電源狀態與 Constrained+ 模式搭配測試,以將能源效率最大化。這些功能結合起來,在主選單中將耗電量降低了約 50–58%,並在受限模式期間減少了 39–63% 的能源使用量。自推出以來,我們觀察到平均能源消耗明顯下降,且未降低遊戲的畫面品質。例如,XBOX Series X 的耗電量已從平均 135 W 降至 125 W。以我們的整體玩家群計算,這相當於每年節省約 6.5 百萬瓦時的能源,等同於連續不停看電視 65,000 小時,也就是將近 7.5 年。Two Point Museum 是第一家透過雲端設定遠端採用 DPS 的第三方工作室。
在不變更程式碼的情況下測試 DPS (僅限開發)
您可以在開發套件上全域啟用 DPS,而不需要重新建置您的遊戲:1
更新您的開發套件
確定您的開發套件至少已安裝 August 2024 Recovery。
2
建立旗標檔案
在您的電腦上建立名為
DynamicPowerEnable 的空白檔案。3
將其複製到主機的 D: 磁碟機
4
啟動並進行分析
啟動您的遊戲。DPS 現在已啟用。
5
完成後停用 DPS
即時觀察 DPS
透過 PIX 或 XBOX Manager 中的主機設定啟用 Title Performance Overlay。- 如果已啟用 DPS,覆疊畫面右下角會包含一條紅線以及 GPU 電源狀態計量 (0–4)。4 表示全速運作;數值越低表示越節能。
- 如果已停用 DPS,GPU 電源狀態會顯示
N/A。
在您的遊戲中啟用 DPS (零售版)
在圖形裝置上使用現有的SetDriverHintX() API。
API
啟用 DPS
停用 DPS
使用畫面統計資料在執行階段偵測 DPS
遊戲可以查詢畫面統計資料,根據 DPS 的行為做出轉譯決策 (例如動態解析度等)。GetFrameStatisticsX
新增了一種畫面統計資料類型:D3D12XBOX_RENDER_STATISTICS 會傳回 GPUBusyDuration:
GPUBusyDuration 是標準化的值,它假設 GPU 時脈處於 P4,且不受目前電源狀態影響。電源調整畫面統計資料會受到電源狀態變更的影響,因此會與 GPUBusyDuration 不同。
範例
在 P4 下需要 8 毫秒的 GPU 工作負載,在 P2 (較低時脈) 下會延長至 12 毫秒:之所以保留標準化的
GPUBusyDuration,是因為遊戲引擎會使用它來計算動態解析度。將標準化與調整後的測量值分開,可避免產生回饋迴圈,也就是較低的電源狀態導致動態解析度不斷下降,直到降到最低為止。