다음을 통해 공유


ID3D12Device6::SetBackgroundProcessingMode 메서드(d3d12.h)

드라이버 백그라운드 처리 최적화 모드를 설정합니다.

구문

HRESULT SetBackgroundProcessingMode(
  [in]  D3D12_BACKGROUND_PROCESSING_MODE Mode,
  [in]  D3D12_MEASUREMENTS_ACTION        MeasurementsAction,
  [in]  HANDLE                           hEventToSignalUponCompletion,
  [out] BOOL                             *pbFurtherMeasurementsDesired
);

매개 변수

[in] Mode

형식: D3D12_BACKGROUND_PROCESSING_MODE

이후에 제출되는 GPU 작업에 적용할 동적 최적화 수준입니다.

[in] MeasurementsAction

형식: D3D12_MEASUREMENTS_ACTION

이전 워크로드 계측의 결과와 함께 수행할 작업입니다.

[in] hEventToSignalUponCompletion

형식: HANDLE

함수가 완료된 시점을 알리는 선택적 핸들입니다. 예를 들어 MeasurementsActionD3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS 설정된 경우 결과 컴파일이 모두 완료되면 hEventToSignalUponCompletion 이 신호를 보냅니다.

[out] pbFurtherMeasurementsDesired

형식: BOOL*

부울 값에 대한 선택적 포인터입니다. 함수는 프로파일링을 계속해야 함을 나타내도록 값을 로 true 설정합니다. 그렇지 않으면 false입니다.

설명

그래픽 드라이버는 유휴 우선 순위 백그라운드 CPU 스레드를 사용하여 셰이더 프로그램을 동적으로 다시 컴파일할 수 있습니다. 따라서 실행 중인 하드웨어의 세부 정보 및/또는 사용 중인 컨텍스트와 더 잘 일치하도록 셰이더 코드를 특수화하여 GPU 성능을 향상시킬 수 있습니다.

개발자는 이 기능을 활용하기 위해 아무 작업도 수행할 필요가 없습니다(시간이 지남에 따라 드라이버가 백그라운드 처리 최적화를 채택하므로 기존 셰이더가 자동으로 더 효율적으로 조정됨). 그러나 코드를 프로파일링할 때 타이밍 측정을 수행하기 전에 SetBackgroundProcessingMode 를 호출하여 드라이버 백그라운드 처리 최적화가 수행되었는지 확인하는 것이 좋습니다. 예제는 다음과 같습니다.

SetBackgroundProcessingMode(
    D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS,
    D3D_MEASUREMENTS_ACTION_KEEP_ALL,
    nullptr, nullptr);
 
// Here, prime the system by rendering some typical content.
// For example, a level flythrough.
 
SetBackgroundProcessingMode(
    D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED,
    D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS,
    nullptr, nullptr);
 
// Here, continue rendering. This time with dynamic optimizations applied.
// And then take your measurements.

PIXSetBackgroundProcessingMode를 자동으로 사용합니다. 먼저 시스템을 초기화한 다음 분석 중간에 추가 변경이 발생하지 않도록 합니다. PIX는 측정을 시작하기 전에 이벤트를 대기합니다(모든 백그라운드 셰이더 다시 컴파일이 완료되었는지 확인).

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 빌드 20348
지원되는 최소 서버 Windows 10 빌드 20348
대상 플랫폼 Windows
헤더 d3d12.h
라이브러리 d3d12.lib
DLL d3d12.dll