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 |