ID3D12Device5::RemoveDevice 메서드(d3d12.h)

RemoveDevice를 호출하여 GPU 디바이스에 문제가 발생하여 더 이상 사용할 수 없음을 Direct3D 12 런타임에 나타낼 수 있습니다. 이렇게 하면 모든 디바이스의 모니터링된 울타리가 신호를 받게 됩니다. 애플리케이션은 일반적으로 RemoveDevice를 명시적으로 호출할 필요가 없습니다.

구문

void RemoveDevice();

반환 값

없음

설명

디바이스 제거는 에 신호를 보낼 모든 펜스를 트리거하므로 UINT64_MAX이벤트를 사용하여 디바이스 제거를 위한 콜백을 만들 수 있습니다.

HANDLE deviceRemovedEvent = CreateEventW(NULL, FALSE, FALSE, NULL);
assert(deviceRemovedEvent != NULL);
_deviceFence->SetEventOnCompletion(UINT64_MAX, deviceRemoved);

HANDLE waitHandle;
RegisterWaitForSingleObject(
  &waitHandle,
  deviceRemovedEvent,
  OnDeviceRemoved,
  _device.Get(), // Pass the device as our context
  INFINITE, // No timeout
  0 // No flags
);

void OnDeviceRemoved(PVOID context, BOOLEAN)
{
  ID3D12Device* removedDevice = (ID3D12Device*)context;
  HRESULT removedReason = removedDevice->GetDeviceRemovedReason();
  // Perform app-specific device removed operation, such as logging or inspecting DRED output
}

요구 사항

   
지원되는 최소 클라이언트 Windows 10 빌드 20348
지원되는 최소 서버 Windows 10 빌드 20348
대상 플랫폼 Windows
헤더 d3d12.h