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를 출시했습니다:
우리는 에너지 효율을 극대화하기 위해 Constrained+ 모드와 함께 Dynamic Power States를 테스트했습니다. 이 기능들이 결합되어 메인 메뉴에서 전력 소비를 약 50–58% 줄였고, 제한 모드 중 에너지 사용량을 39–63% 절감했습니다. 롤아웃 이후 게임 플레이 품질 저하 없이 평균 에너지 소비가 눈에 띄게 감소하는 것을 확인했습니다. 예를 들어 XBOX Series X의 소비 전력은 평균 135 W에서 125 W로 낮아졌습니다. 이는 전체 플레이어 기반에서 연간 약 6.5 메가와트시 절감에 해당하며, TV를 65,000시간, 즉 거의 7.5년 동안 논스톱으로 시청하는 것과 같습니다.
Two Point Museum은 클라우드 구성을 통해 DPS를 원격으로 채택한 최초의 서드파티 스튜디오입니다.

코드 변경 없이 DPS 테스트하기(개발 전용)

빌드를 다시 하지 않고도 devkit에서 DPS를 전역으로 활성화할 수 있습니다.
1

devkit 업데이트

devkit에 최소한 2024년 8월 Recovery가 설치되어 있는지 확인하세요.
2

플래그 파일 생성

PC에서 DynamicPowerEnable이라는 이름의 빈 파일을 생성하세요.
3

콘솔의 D: 드라이브로 복사

4

실행 및 프로파일링

게임을 실행하세요. 이제 DPS가 활성화됩니다.
5

테스트 완료 후 DPS 비활성화

게임을 다시 실행하세요.

실시간으로 DPS 관찰하기

PIX 또는 XBOX Manager의 콘솔 설정에서 Title Performance Overlay를 활성화하세요.
  • DPS가 활성화된 경우 오버레이 하단 오른쪽에 빨간 선과 GPU 전력 상태 지표(0–4)가 표시됩니다. 4는 최대 속도를 의미하며, 값이 낮을수록 에너지를 절약하고 있음을 뜻합니다.
  • DPS가 비활성화된 경우 GPU 전력 상태는 N/A로 표시됩니다.
PIX의 Power Load % 지표를 사용해 게임의 특정 부분에서 GPU 에너지 사용량의 변화를 측정하세요.
타이틀은 리테일에서 DynamicPowerEnable 파일로 DPS를 활성화할 수 없습니다. 리테일 릴리스에서는 아래의 SetDriverHintX를 사용하세요.

게임에서 DPS 활성화(리테일)

그래픽 디바이스의 기존 SetDriverHintX() API를 사용합니다.

API

2024년 6월 GDK 이상에서는 다음 열거형을 사용하세요.
2024년 6월 이전의 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일