Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Rimozione del dispositivo
Se si verifica un errore irreversibile, il dispositivo DirectML potrebbe entrare in uno stato "device-removed". Gli errori irreversibili che causano la rimozione del dispositivo includono l'utilizzo di API non valide (per i metodi che non restituiscono un HRESULT), l'errore del driver, l'errore hardware o le condizioni di memoria insufficiente.
Quando un dispositivo DirectML viene rimosso, tutte le chiamate ai metodi su tale dispositivo e ogni oggetto creato da esso diventano operazioni nulle. Per i metodi che restituiscono un HRESULT, viene restituito un codice di errore DXGI_ERROR_DEVICE_REMOVED . È possibile usare il metodo IDMLDevice::GetDeviceRemovedReason per verificare se il dispositivo DirectML è stato rimosso e recuperare un codice di errore più dettagliato.
Non è possibile eseguire il ripristino dalla rimozione del dispositivo, se non rilasciando il dispositivo coinvolto e tutti i relativi elementi figlio, poi ricreando il dispositivo DirectML da zero.
La rimozione del dispositivo sottostante Direct3D 12 comporta anche la rimozione del dispositivo DirectML. Non è tuttavia consentito il contrario. La rimozione del dispositivo DirectML potrebbe non necessariamente causare la rimozione del dispositivo Direct3D 12 sottostante.
Risoluzione dei problemi di rimozione di dispositivi DirectML e altri errori
La causa più comune degli errori di DirectML è l'utilizzo non valido dell'API. L'utilizzo dell'API non valido potrebbe generare un codice di errore HRESULT E_INVALIDARG oppure potrebbe comportare la rimozione del dispositivo.
È consigliabile abilitare il livello di debug DirectML durante lo sviluppo per rilevare ed eseguire il debug di tali errori. Il livello di debug DirectML esegue una convalida completa dei parametri del metodo e dell'utilizzo dell'API e genera messaggi di output di debug per facilitare il debug.