Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Eliminación de dispositivos
Si se produce un error irrecuperable, el dispositivo DirectML puede especificar un estado "quitado del dispositivo". Los errores irrecuperables que provocan la eliminación de dispositivos incluyen un uso de API no válido (para los métodos que no devuelven un HRESULT), el error del controlador, el error de hardware o las condiciones de memoria insuficiente (OOM).
Cuando se quita un dispositivo DirectML, todas las llamadas de método en el dispositivo y todos los objetos creados por ese dispositivo se vuelven inoperantes. Para los métodos que devuelven un HRESULT, se devuelve un código de error DXGI_ERROR_DEVICE_REMOVED . Puede usar el método IDMLDevice::GetDeviceRemovedReason para comprobar si se ha quitado el dispositivo DirectML y para recuperar un código de error más detallado.
No se puede recuperar de la eliminación del dispositivo, excepto si libera el dispositivo afectado y todos sus elementos secundarios y, a continuación, vuelve a crear el dispositivo DirectML desde cero.
La eliminación del dispositivo de Direct3D 12 subyacente también hace que se quite el dispositivo DirectML. Sin embargo, esto no es aplicable a la inversa. La eliminación de dispositivos DirectML puede no provocar necesariamente que el dispositivo Direct3D 12 subyacente se quite.
Depuración de la eliminación de dispositivos DirectML y otros errores
La causa más común de los errores de DirectML es el uso de API no válido. El uso de API no válido podría dar lugar a un E_INVALIDARG código de error HRESULT, o podría dar lugar a la eliminación del dispositivo.
Se recomienda encarecidamente habilitar la capa de depuración de DirectML durante el desarrollo para detectar y depurar estos errores. La capa de depuración de DirectML realiza una validación exhaustiva de los parámetros de método y el uso de la API, y emitirá mensajes de salida de depuración para ayudarle a depurar.