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 |