¿Qué significa el código HRESULT 0x8898008E (MILERR_NEED_RECREATE_AND_PRESENT)?

 
Anterior Siguiente
MILERR_NO_HARDWARE_DEVICE MILERR_ALREADY_INITIALIZED

MILERR_NEED_RECREATE_AND_PRESENT

Qué significa MILERR_NEED_RECREATE_AND_PRESENT

MILERR_NEED_RECREATE_AND_PRESENT (-2003304306, 0x8898008E) — Se produjo un error de presentación potencialmente recuperable. El llamador debe volver a crear el destino, volver a renderizar todo el fotograma e intentar de nuevo la presentación. Entre las causas conocidas están un error interno del controlador D3D, un D3D E_FAIL, una causa raíz desconocida o un cambio de tamaño demasiado rápido que desincroniza DWM y D3D.

La composición depende de una secuencia temporal coherente y de la política de Present. Estados de queued present o un reloj que retrocede alteran scheduling aunque el contenido visual sea válido.

Qué demuestra este HRESULT

La condición específica es recursos deben recrearse antes de volver a presentar. Marca la generación actual como inválida, conserva la causa display/device y reconstruye targets/resources dependientes. Presenta solo después de completar la recreación; repetir Present sobre recursos antiguos no es recuperación.

Conserva continuidad temporal

Registra QPC, frame ID, mode de Present y eventos de display/power. Reinicia ventanas de métricas al perder continuidad y verifica que el frame loop mantiene progreso; no mezcles timestamps de épocas diferentes.

No confundir con un resultado cercano

MILERR_DISPLAYSTATEINVALID se aísla por estado de display incompatible o cambiado durante la operación. Aquí debe demostrarse recursos deben recrearse antes de volver a presentar; aunque ambos puedan aparecer en la misma fase de composición, exigen correcciones distintas.

Referencias técnicas


¿Buscas un código diferente? Buscar otro código de estado o error.