domingo, 25 de febrero de 2018

SOLUCIÓN - BSOD y TDR en iGPU Intel HD 3000 + dGPU 6700M/7690M XT

BSOD en atikmdag.sys en "Modo Fijo".
Como se sabe, los dGPUs 6700M son antiguos para esta fecha (2018), pero muchos usuarios aún poseen portátiles con gráficos híbridos equipados con dichos dGPUs; estos GPUS fueron los más abundantes en su tiempo (2011-2012) en una época donde el "Modo Fijo" empezó a decaer, por tal motivo, más adelante (2013), estos portátiles comenzaron a generar BSODs y TDRs con ciertos drivers.
En esta publicación explicaré el por qué de esta situación y las soluciones a tener en cuenta de acuerdo a las necesidades del usuario. Sin más que decir, empecemos:
NOTA: Como es de suponer, los BSODs y TDRs relacionados a GPUs ocurren no sólo en portátiles, aquí se plantea un problema específico para portátiles equipados con un iGPU Intel HD 3000 + dGPU 6700M. La solución no funcionará en otros equipos.
NOTA: Esta publicación muestra las soluciones para el "Modo Dinámico" y "Modo Fijo", el "Modo Discreto" no presenta este problema, por tal motivo no se menciona.

I. ¿En qué consiste el problema?
El problema es la generación de un TDR y en el peor de los casos un BSOD al existir un incorrecto acoplamiento entre el iGPU Intel HD 3000 y el dGPU AMD 6700M. El BSOD ocurre al iniciar Windows, luego de un reinicio forzado puede ocurrir un TDR o incluso otro BSOD al azar; además, es seguro que ocurra un BSOD al conmutar los gráficos en el "Software de gestión gráfica" "Catalyst Control Center".
TDR generado por el driver AMD.
BSOD en atikmdag.sys en "Modo Fijo".
II. ¿En qué modo gráfico, con qué drivers y bajo qué sistema operativo se genera el problema?
El problema específico ocurre en el "Modo Fijo" (configurado en el BIOS) y con cualquier driver igual o superior al Catalyst 13.2, en otras palabras un problema del 2013 que AMD nunca solucionó.
Si hablamos de sistemas operativos, este problema es exclusivo de Windows 7/8.x; de Windows 10 no podemos hablar porque no admite "Modo Fijo".

III. ¿Por qué se generó este problema en el "Modo Fijo" y no en el "Modo Dinámico"?
Entre el año 2012 y 2013, AMD estuvo optimizando el código para "AMD Enduro", entonces se lanzó el último driver estable para ambos "Modos", el Catalyst 13.1 WHQL. A partir de allí y con el lanzamiento anterior de Windows 8.0, se sabía que AMD debía eliminar el "Modo Fijo" (tal como se anunció) y el primer paso para realizarlo era mediante la modificación de los drivers; es ahí donde se generó el problema en el "Modo Fijo" con los Catalyst 13.2.
El anuncio del final del "Modo Fijo".
Por obvias razones, el "Modo Dinámico" no se vió afectado. En la actualidad, la meta de AMD y Microsoft ya se realizó y no existe un "Modo Fijo" para "portátiles comunes".

IV. ¿La actualización KB2670838 tiene algo que ver?
La respuesta es NO.
Esta es una actualización exclusiva para Windows 7 que mejora el rendimiento y soluciona muchos glicth gráficos, yo mismo tuve que instalarla para eliminar estos errores en Resident Evil 6, Skype, HTML5, entre otros.
Este es el glitch gráfico en HTML5 que es solucionado con el KB2670838.
Aquí existe una confusión y una serie de coincidencias que el usuario malinterpreta:
La actualización KB2670838 genera BSODs y TDRs únicamente con drivers desactualizados (Catalyst inferiores al 13.1 WHQL), que generalmente son los drivers proporcionados por los fabricantes (2011), tanto en "Modo Fijo" como en "Modo Dinámico".
Los usuarios que la instalaron, obtuvieron BSODs y TDRs por poseer drivers desactualizados, por eso la desinstalaban y en algunas ocaciones afirmaban que esta era la solución al problema de esta publicación.
KB2670838 instalado en mi portátil HP Pavilion G4-2082la
RECOMENDACIÓN: Instalen el KB2670838 para obtener un rendimiento semejante a Windows 8.x/10. Además, algunos juegos mostrarán el error "Failed to create device feature level 11" si no está instalado.

V. ¿"Alter AMD Driver" y "Change TDRLevel" pueden solucionar el problema?
La respuesta es NO.
"Alter AMD Driver" es una propuesta del equipo UnifL (Leshcatlabs), donde se necesita un driver UnifL instalado y luego se reemplazan unos DLLs para solucionar BSODs y TDRs. De primera mano suena que es la solución al problema, lamentablemente esta propuesta se realizó con otros propósitos mucho antes que existiera este problema específico, por tal motivo no es una solución. Además, ya se intentó aplicar este método muchas veces y sin resultados favorables.
"Change TDRLevel" es otra propuesta del equipo UnifL (Leshcatlasb), donde se cambian unos valores del registro para dar más tiempo a que el portatil reaccione y no aparezca un TDR, lamentablemente dicha solución no funciona para este problema específico.
"Driver Issue Resolver": Conjunto de herramientas creadas por el equipo UnifL.
VI. LAS SOLUCIONES
Y por fin llegamos a la parte interesante, las soluciones. Lo normal es dividir las soluciones según las necesidades del usuario:
a) Uso de softwares ofimáticos, navegación por internet, juegos casuales.
b) Uso de softwares ofimáticos, navegación por internet, juegos exigentes, software de renderizado exigente.
Pero este es un caso especial, los usuarios (a) estarán muy cómodos con la solución para el "Modo Dinámico", pero los usuarios (b) deberían estarlo con el "Modo Fijo", el problema de (b) es que los drivers son tan antiguos que muchas aplicaciones de renderizado pueden no funcionar correctamente.
RECOMENDACIÓN: Utilizar el "Modo Dinámico" como primera opción para mayor compatibilidad de aplicaciones. Utilizar el "Modo Fijo" si el "Modo Dinámico" no da los resultados esperados.

-->SOLUCIÓN PARA EL MODO DINÁMICO:
Para este escenario, simplemente se debe cambiar el Modo gráfico a "Dinámico" en el BIOS, pero lo mejor es realizar una instalación limpia de drivers para evitar algún problema imprevisto.
Los pasos a realizar son:
1. Descargar el driver de Intel y AMD:
    Catalyst 14.8 WHQL para Windows 7/8.1 [MEJOR RENDIMIENTO]
    Catalyst 15.11.1 para Windows 7/8.1/10 [RECOMENDADO]
2. Ingresar al BIOS y activar el "Modo Dinámico".
Cambiando "Switchable Graphics Mode" a "Dynamic".

3. Realizar los preparativos y limpieza según la guía:
    "Preparativos y limpieza de drivers gráficos"
4. Instalar el driver según la guía:
    "Instalación y verificación de drivers gráficos en AMD Enduro"

    4.1. Aplicar el REG-FIX "Missing Enduro tabs Fix g4-v2" [SOLO PARA CATALYST 14.8]:
           "Solución a la Falta de menús conmutables en AMD Enduro"
5. Probar el portatil.
IMPORTANTE: Catalyst superiores al 14.4 ejecutarán exlusivamente en "Modo Dinámico" (SIN IMPORTAR LA CONFIGURACIÓN DEL BIOS), esto es beneficioso si no poseen un BIOS con la opción "Dynamic". Véase "El final del Modo Fijo".

-->SOLUCIÓN PARA EL MODO FIJO:
En este escenario se instalará el Catalyst 13.1 WHQL, pero como en ese entonces no se contaba con soporte directo por parte de AMD (véase "Soporte directo por parte de AMD - Pre-GCN y GCN"), se instalará el Catalyst 13.1 WHQL UnifL V2.1 con su respectiva "Firma digital" (probado por mi y muchos usuarios), además este es un driver híbrido (Incluye un driver de Intel), por lo que se mostrará el proceso de instalación de manera general.

IMPORTANTE: Los drivers de terceros no se instalan por instalar, primero infórmense de sus posibles efectos, ya que no todos los drivers son estables en cada equipo.
NOTA: El Catalyst 13.1 WHQL UnifL V2.1 es muy estable en "Modo Fijo" con dGPUs 6700M.

Los pasos a realizar son:
1. Descargar el Catalyst 13.1 WHQL V2.1 y su Fima digital:
   Catalyst_13.1_WHQL_UnifL_V2.1 [Driver]
   13.1_WHQL_UnifL_v2.1_Signed_Intel_2932 [Firma digital]
2. Ingresar al BIOS y activar el "Modo Fijo".
Seleccionando el "Modo Fijo".
3. Realizar los preparativos y limpieza según la guía:
   "Preparativos y limpieza de drivers gráficos"
4. Ejecutar "Catalyst_13.1_WHQL_UnifL_V2.1.exe":
   Cuando aparezca "DSE is not present!" dar clic en NO.
No es necesario activar DSE porque contamos con la "Firma digital".

Extractor del Driver Híbrido UnifL.
5. Proceder normalmente y seleccionar la versión del driver de Intel:
   "With Intel HD Graphics 9.17.10.2932 (Modern)".
Contamos con el driver Intel 2932. Este es un paquete híbrido.
6. Después que el instalador extrajo todo el contenido, ir a la siguiente ruta:
   "C:\Drivers\Catalyst_13.1_WHQL_UnifL_V2.1\Packages\Drivers\Display\W86A_INF"
   (Ruta predeterminada, puede variar)
7. Reemplazar el contenido de "13.1_WHQL_UnifL_v2.1_Signed_Intel_2932" en la ruta:
   "C:\Drivers\Catalyst_13.1_WHQL_UnifL_V2.1\Packages\Drivers\Display\W86A_INF"
   (Ruta predeterminada de paso 6)
   Verificar que los dos archivos ".cat" tengan como fecha 20/04/2013.
"C7151587.cat" y "C8151587.cat" son las "Firmas digitales" para los drivers de Windows 7 y 8 respectivamente.
8. Instalar el driver gráfico:
   Ejecutar "setup.exe" que se encuentra en:
   "C:\Drivers\Catalyst_13.1_WHQL_UnifL_V2.1"
   IMPORTANTE: Seleccionar instalación personalizada.
Seleccionar "Personalizado". En ese Entonces "DMC Devil May Cry" era uno de los juego actuales que se beneficiaban en rendimiento con este driver.
9. Durante la instalación aparecerá la siguiente imagen, dar clic en "Instalar".
Mensaje que siempre aparece para cualquier "Firma digital" que no sea WHQL.
10. Reiniciar el equipo.
11. Verificar la instalación exitosa del driver en el "Administrador de dispositivos":
      Si la instalación fue correcta, entonces deberán obtener los siguientes datos:
      -Versión del controlador AMD:  9.12.0.0
      -Versión del controlador Intel:   9.17.10.2932
      -Firmante digital:                       Nicholas Guy
Drivers instalados correctamente.
12. Desactivar la "Filtración morfológica" en el "Catalyst Control Center" [OPCIONAL]
"Filtración morfológica" desactivada.
NOTA: Oficialmente la "Filtración morfológica" está desactivada, pero en estos drivers es lo contrario porque el equipo UnifL encontró que su activación solucionaba varios bugs en ciertos juegos, actualmente es obsoleto.

13. Ajustar el FTC a F940 utilizando UBR [OPCIONAL]
Después de la instalación, es muy probable que el control del brillo en el dGPU esté bloqueado en cierto valor, pero cuando se hace el cambio al iGPU funcione sin problemas. Además, si se regula el brillo en el iGPU, al cambiar al dGPU se conservará el mismo nivel del brillo, pero sin posibilidad de regularlo.
Para solucionarlo, el mismo extractor del Catalyst 13.1 UnifL V2.1 contiene una herramienta para estos casos, simplemente seguir los pasos:
     13.1. Ejecutar "Catalyst_13.1_WHQL_UnifL_V2.1.exe"
           Ingresar a "Brightness Resolver" (UBR):
Ingresando a "Brightness Resolver"
      13.2. Presionar la tecla "A" (F940) cuando aparezca el texto:
               "Waiting for your command:"
Ventana de "Brightness/Wakeup Fix"
     13.3. Presionar la tecla "Y" cuando aparezca el texto:
              "Reboot is now required. Would you like to reboot now?[Y\N]"
Los cambios se realizaron con éxito, se debe reiniciar el equipo.
IMPORTANTE: Al presionar la tecla "Y" el sistema se reiniciará automáticamente, tomar las precauciones según el caso.
IMPORTANTE: "Brightness/Wakeup Fix" es también conocido como "UnifL Brightness Resolver" (UBR), en esta publicación se utiliza el UBR incluído en el ejecutable UnifL, si se utiliza otra versión, entonces puede que la opción "A" (F940) no sea la indicada.
IMPORTANTE: Para mayor información sobre el uso de la herramienta UBR, recomiendo revisar: "SOLUCIÓN - Brillo de pantalla bloqueado en Modo Fijo, Dinámico y Discreto".

14. Disfrutar.

REFERENCIAS:
1. "Unified Leshcat Driver Manual".
2. "[6770m/HD 3000] The best (most stable) driver!".
3. "KB2670838 - Actualización de la plataforma para Windows 7 SP1 y Windows Server 2008 R2 SP1".
4. " Tdr Manipulator V1.1 (02-23-2014)".

Palabras finales
Hola a todos, aquí quantum-phy en otra publicación.
Finalmente está adaptado el tema "Solución para usuarios con un iGPU Intel HD 3000 + dGPU 6770M o 7690M XT - BSOD's y crash gráfico" al blog.
Esta fue una de las adaptaciones más trabajosas al incluir detalles que en el Foro HP no podía escribir por el límite de caracteres. Estoy contento con la forma final de esta publicación.
No me gusta que el "Modo Fijo" este muerto, pero ya no nos queda de otra que adaptarnos al "Modo Dinámico", sobre todo porque aplicaciones de renderizado gráfico y juegos actuales no son capaces de ejecutarse de manera correcta con el Catalyst 13.1 WHQL por el simple echo de ser un driver antiguo, por tal motivo, recomiendo el "Modo Dinámico" con el Catalyst 15.11.1. Sobre el Radeon Software 16.2.1, no lo recomiendo para estos equipos simplemente porque debemos reemplazar algunos dlls para que OpenCL funcione al 100%.
Sobre qué sistema operativo es mejor para el Modo Fijo, obviamente Windows 8.1 (si eres como yo, y no te gusta el diseño del 8.1, entonces el mejor es Windows 7); para el Modo Dinámico sería Windows 10 en su build actual 1703/1709 (siempre y cuando se tenga el sistema controlado, bloqueando las actualizaciones); en otras palabras tuve un cambio de opinión porque antes recomendaba utilizar Windows 7, pero de tantas laptops que estuve reparando, y la evolución de Windows 10, puedo decir con certeza que en la actualidad controla los GPUs mucho mejor que sus predecesores.
Como mencioné hace poco, si se controlan las actualizaciones de Windows 10, este sería el mejor sistema operativo para el "Modo Dinámico"/"AMD Enduro", porque WindowsUpdate se está activando sólo aunque se desactive manualmente. Actualmente probé una solución para bloquearlo con más fuerza y parece que funciona, no diré nada más hasta que pase el tiempo y ver qué sucede xD
Y es todo, hasta la siguiente publicación.

Espero que esta información sea de ayuda.
Un saludo.

Estado

=======================================
Recomiendo este post donde se recopila mucho contenido útil y en español para jugar en Linux.
-¿Jugar en Linux?, están locos estos pingüinos

[Linux] ¿Fidelity FX Super Resolution (FSR) en cualquier juego?
- Pruebas en el canal de YouTube

[Linux] GalliumToggle publicado en GitHub.
=======================================

quantum-phy (NestorBase11)

Videos Destacados

Entradas recientes