ID3D12Device5::RemoveDevice, méthode (d3d12.h)
Vous pouvez appeler RemoveDevice pour indiquer au runtime Direct3D 12 que l’appareil GPU a rencontré un problème et ne peut plus être utilisé. Ainsi, les clôtures surveillées de tous les appareils seront signalées. En général, votre application n’a pas besoin d’appeler explicitement RemoveDevice.
Syntaxe
void RemoveDevice();
Valeur de retour
None
Notes
Étant donné que la suppression de l’appareil déclenche la signalisation de toutes les clôtures à UINT64_MAX
, vous pouvez créer un rappel pour la suppression d’appareil à l’aide d’un événement.
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
}
Spécifications
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
Plateforme cible | Windows |
En-tête | d3d12.h |