martes, 23 abril 2024

Intel, Microsoft y el DWM: Un problema del que nadie se responsabiliza

Windows es un sistema operativo que ha tenido sus luces y sombras. Microsoft normalmente ha sido rápida encontrando problemas y dando soluciones, aunque no siempre han funcionado. Con el despido del equipo de QA (Quality Assurance) en 2014 la calidad de las actualizaciones de Windows ha disminuido, lo que provoca un aumento considerable de los fallos que está sufriendo actualmente.

Sin embargo hoy vengo a hablar de un problema bastante preocupante, que afecta a miles de equipos que lleven procesadores Intel de 6º generación en adelante y utilizan los gráficos integrados. Y al parecer a parecer a Intel y a Microsoft no les importa lo suficiente. O al menos es lo que parece.

DWM… ¿Qué?

Muchos preguntaréis que significan estas siglas. DWM (Desktop Window Manager) se conoce como el gestor de ventanas de Windows que se encarga de dibujar la interfaz de las aplicaciones y el sistema operativo. Debutó en Windows Vista por primera vez sustituyendo al antiguo DCE (Desktop Composition Engine), que se encontraba en Windows XP y anteriores.

La principal novedad con respecto al DCE, es que DWM podía hacer el uso de la aceleración gráfica por hardware para la interfaz de usuario de Windows y sus programas. Este ha estado en constante evolución en versiones posteriores de Windows… hasta la llegada de Windows 10.

¿Y a partir de Windows 10, que sucedió? Como hemos comentado, debido a la pérdida del departamento de QA, Windows ya no es tan profundamente testeado. Y durante el desarrollo Windows 10 y en especial en la implementación de Acrylic, Microsoft ha estropeado severamente el funcionamiento del DWM. Esto ha provocado que el rendimiento de Acrylic sea notablemente peor que el de su familiar lejano, Aero Glass. También ha ocasionado diferentes problemas gráficos y fugas de memoria en el proceso. Esto último es de lo que vamos a tratar en este artículo.

Un bug importante, con más de 1 año de antigüedad

El bug del que os hablo es más sencillo de lo que parece. Con un uso normal del ordenador pasadas unas horas, se observa como el DWM comienza a consumir grandes cantidades de memoria RAM llegando a superar el GB. Un consumo completamente fuera de lo normal. En el caso de no detectarse seguirá consumiendo hasta que el ordenador se quede sin memoria y lo cierre de manera forzada. Pero sin antes sufrir una importante regresión en el rendimiento del equipo mientras la fuga se produce.

Una captura de pantalla de mi equipo principal, con los últimos drivers de Intel. Si bien en esta foto consume 2’5GB de RAM aprox, hay casos donde ha llegado a consumir hasta más de 20GB.

Este problema comenzó a producirse en la versión 27.20.100.8587 del driver para la GPU de Intel publicado en Agosto de 2020. Y poco más de un año después no se ha publicado una solución totalmente funcional. En casos normales tanto Intel como Microsoft (o alguna de las partes) revisarían el problema, harían una profunda investigación y lo arreglarían en un tiempo estimado. Pero este caso es un poco diferente.

Intel y Microsoft no lo tiene ni en sus listas de problemas conocidos, ¿falta de interés por arreglarlo?

Considero a Microsoft como la peor en este caso. Este bug se ha reportado en numerosas ocasiones por Twitter y en especial en el Centro de opiniones con más de 1000 votaciones. Solo ha habido una respuesta de un ingeniero de Windows hace 4 meses agradeciendo el reporte y sugiriendo publicar métodos para recrear el problema. Después de eso, un silencio absoluto. 

Normalmente cuando hay un bug de Windows o un bug causado por drivers en Windows, se suele informar en la lista de cambios de compilaciones Insider o de acumulativas de Windows. Por ejemplo en Windows 10 (20H1) hubo un problema con los drivers de audio de Conexant y Microsoft lo documentó en su lista de errores conocidos. También hicieron lo mismo hace un tiempo cuando hubo un problema con los lectores de tarjetas SD de Realtek, presentes en muchos equipos.

Pero en este caso no encontrarás ninguna mención del bug en lista de errores conocidos de compilaciones Insider o en acumulativas a canales estables. Hay algunas menciones sobre fugas de memorias en el DWM pero no están relacionadas con esto puesto que son fugas a nivel general, no especificas en gráficos de Intel. Es como si Microsoft no considerara que el bug es importante, como si no existiera.

Hay más de 1000 votaciones de usuarios que sufren este bug. No aparece en la lista de bugs conocidos de las compilaciones de Windows Insider, ni en las acumulativas de Windows 10 y Windows 11.

Por la parte de Intel también considero que no han actuado como deberían, aunque al menos tenemos información más específica de que están trabajando para solucionar el problema. Pero también hay un silencio parcial ya que si bien comunican el avance en el foro, en su lista de errores conocidos no hay ni una sola mención.

Este problema se reportó en el foro de Intel un 23 de agosto de 2020 por un usuario alegando que sufría fugas de memoria en su DWM con la última actualización del driver de GPU. Rápidamente comenzó a llenarse de interacciones de múltiples usuarios que sufrían el mismo problema e Intel comenzó a investigar el origen del problema.

Al principio comenzaron a dar largas con respecto al problema. Acusaban al problema el uso de compilaciones Insider Preview o a algún problema en la instalación de Windows ya que no conseguían reproducir el problema. Pasados unos meses terminaron reconociendo el problema, pero con un matiz: culpaban a Microsoft del problema sugiriendo reportar el problema a ellos. Además no lo consideraban de gran importancia ya que según Intel, afectaba a unas pocas configuraciones/usuarios.

Mensaje de uno de los trabajadores de Intel, recomendando reportar el problema a Microsoft y reduciendo su importancia debido al «pequeño» porcentaje de usuarios/configuraciones con este problema.

La realidad es que no era una cantidad pequeña de usuarios. Conforme ha pasado el tiempo el foro ha recibido a mas usuarios reportando el mismo fallo. También en redes sociales como Reddit se han hecho eco del problema. Y a fecha de hoy Intel sigue sin añadir este bug en sus lista de errores conocidos que publica junto a la lista de cambios del driver de GPU.

Después de reportar durante meses consecutivos en el foro, finalmente se consiguió que un trabajador de Intel consiguiera reproducir el problema. Parecía que esto acababa de una vez, ya que a principios de Septiembre se comunicaba que se estaba probando una solución y parecía que funcionaba. Parecía. Y finalmente lanzan la version 30.0.100.9922 con el problema solucionado.

Al final resultó que no arregló nada. Y solo arregló nada, sino que empeoró las cosas. En mi caso, la fuga de memoria sucedía mas a menudo que antes. Otros usuarios sufrían cierres forzados del DWM y algunos directamente dejaban sus equipos en estado inutilizable, teniendo que forzar el apagado.

Actualmente Intel está probando otra solución para arreglar todos los problemas activos con el DWM, pidiendo paciencia. No sabemos si este será el definitivo, y acabará este problema de una vez, o en cambio volverán a empeorar las cosas aún mas. También hay que aclarar que las gráficas más potentes de Intel como las Iris Plus o la actual Iris Xe, no están afectadas por este problema.

¿Quién tiene la culpa de todo esto?

Windows
Un caso más severo de fuga de memoria del DWM. Fuente: Intel Forums

Puede parecer que la culpa es totalmente de Intel, aún viendo la reacción mínima por parte de Microsoft. Pero en este caso no es todo blanco y negro, ya que no sabemos exactamente las condiciones que tiene Intel en este caso. Observando todo el historial de problemas de Microsoft con el DWM no descartaría que compartiera parte de la culpa.

No sería la primera vez que un fabricante de drivers tiene que lidiar con algún problema de Microsoft. Drivers que funcionan correctamente dejan de funcionar con una actualización de Windows, y el fabricante tiene que aplicar un workaround para solucionar. Vamos, que el problema lo había ocasionado Microsoft pero el fabricante lo ha tenido que solucionar de la mejor forma posible.

También podría ser culpa de Intel ya que solo les sucede esto a ellos. Pero esto tiene que ver con una tecnología que Intel utiliza en sus tarjetas integradas que AMD y NVIDIA no utilizan. Se trata de DVMT.

DVMT (Dynamic Video Memory Technology) es una tecnología de Intel que permite adaptar dinámicamente la memoria RAM que utiliza la gráfica integrada para usarla como memoria de vídeo. De esta manera aseguran un mejor rendimiento en tarjetas integradas. En el caso de AMD reserva una cantidad fija de memoria RAM en sus gráficas integradas. Y en el caso de NVIDIA optan por utilizar la VRAM que integra la tarjeta gráfica.

No es la primera vez que Microsoft ha provocado fallos a esta tecnología de memoria dinámica a la vez que han hecho modificaciones en el DWM. Con esto no quiere decir que Microsoft solo sea la culpable. Prefiero hablar de una culpa mixta entre ambos: en el caso de Microsoft por tener un entorno muy poco favorable, y en el caso de Intel por reaccionar tarde y mal a un bug importante.

Un problema que puede provocar una mala imagen a Windows 11

Windows

¿Este bug afecta solo a Windows 11? Al contrario. Este bug afecta a numerosas versiones de Windows 10, en concreto a 20H1 y superiores. Pero también afecta a Windows 11, y puede suceder una situación un poco desafortunada.

Los fabricantes comenzarán a actualizar los drivers de los equipos compatibles con Windows 11 incluyendo el de la gráfica. Cuando los usuarios actualicen a Windows 11, en algún momento se encontrarán con este molesto bug. Y hay una gran posibilidad de que culpen a Windows 11 de esto alegando que esto no sucedía antes de actualizar. Y realmente no es un problema de Windows 11, pero los usuarios se quedarán con esa sensación y volverán a Windows 10.

Concluyendo con el artículo, Intel y Microsoft deben demostrar más que nunca ante la amenaza de los nuevos Mac basados en ARM y Chromebook. Y por parte de Microsoft, el objetivo es que la gente vuelva a amar Windows. Pero sinceramente con estos problemas, se nos hace bastante complicado por parte de los usuarios amarlo ya que estropean la experiencia, y especialmente cuando estos se ignoran durante demasiado tiempo. 

Sergio Fernández-Pacheco Rico
Sergio Fernández-Pacheco Rico
¡Hola! Soy Sergio, un estudiante de Desarrollo de aplicaciones web (DAW), además de amante de la tecnología y la música. Actualmente como redactor en Microsofters.
Suscríbete
Notificar de
guest

0 Comentarios
Opinión Inline
Ver todos los comentarios

Últimas noticias