DXGKDDI_SUSPENDCONTEXT 콜백 함수(d3dkmddi.h)

GPU에 컨텍스트를 일시 중단하도록 지시합니다. GPU가 TDR(시간 제한 검색 및 복구) 시간 제한 내에서 일시 중단 완료를 승인하지 않으면 OS는 엔진 시간 제한을 검색하고 엔진 재설정을 수행합니다.

구문

DXGKDDI_SUSPENDCONTEXT DxgkddiSuspendcontext;

NTSTATUS DxgkddiSuspendcontext(
  IN_CONST_HANDLE hAdapter,
  IN_CONST_PDXGKARG_SUSPENDCONTEXT pSuspendContext
)
{...}

매개 변수

hAdapter

선점되고 일시 중단된 것으로 표시할 하드웨어 컨텍스트입니다. 이러한 유형의 선점 요청은 유예 기간이 없으며 가능한 한 빨리 GPU에서 적용될 것으로 예상됩니다.

pSuspendContext

선점 요청이 완료되면 GPU 컨텍스트 일시 중단 인터럽트에서 보고할 단조롭게 증가하는 컨텍스트별 값이 포함된 DXGKARG_SUSPENDCONTEXT 구조체에 대한 포인터입니다. 펜스가 신호를 보낼 때까지 OS는 GPU가 일시 중단되었다고 가정할 수 없습니다.

반환 값

이 호출 시 컨텍스트가 이미 일시 중단된 경우 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 값이 STATUS_PENDING 설정되고 contextSuspendFence가 인터럽트를 통해 신호를 받으면 일시 중단 작업이 완료됩니다.

설명

DXGKARG_SUSPENDCONTEXT 적절한 멤버를 설정한 다음 DxgkddiSuspendContext를 호출하여 이 콜백 함수의 구현을 등록합니다.

GPU에서 라운드 로빈 선점이 시작될 수 있지만 OS는 할당을 이동하거나 GPU 전원 전환을 수행해야 하는 경우와 같은 다른 이유로 컨텍스트를 선점하는 방법이 여전히 필요합니다.

컨텍스트 일시 중단 값은 OS가 컨텍스트를 일시 중단하고, 일시 중단 승인을 기다리지 않고, 다시 시작하고, 컨텍스트를 다시 일시 중단하는 경우를 처리하는 데 필요합니다. 일시 중단 값을 사용하면 OS가 이전 일시 중단 승인과 최신 일시 중단 승인을 구분할 수 있습니다.

컨텍스트가 일시 중단되면 해당 컨텍스트에 대한 모든 참조가 GPU에서 사라지고 OS가 컨텍스트를 삭제하거나 메모리를 이동할 수 있는 자유가 있다고 가정합니다. WDDM 2.3 이하와 달리 DdiSuspendContext가 이 작업을 수행해야 하므로 WDDM 2.4 예약 모드에는 별도의 NULL 컨텍스트 스위치 명령(이전에 DdiSubmitCommandVirtual의 ContextSwitch 플래그로 표시됨)이 없습니다.

요구 사항

요구 사항
헤더 d3dkmddi.h