He usado muchas variantes de Linux (principalmente derivados de Debian) durante más de una década. Un problema que no he visto resuelto satisfactoriamente es el problema del desgarro horizontal, o Vsync no se implementa correctamente.
Digo esto porque utilizo 5 distribuciones diferentes en 4 computadoras diferentes con varios monitores y tarjetas gráficas Nvidia / AMD / ATI / Intel; cada vez, ha habido un problema con el video rasgado incluso con un ligero movimiento.
Este es un gran problema, especialmente porque incluso Windows XP no tiene estos problemas en el hardware moderno. Si alguien va a usar Linux para algo, ¿por qué querrían que se muestren defectos constantes al hacer algo que no sea CLI?
Supongo que pocos desarrolladores conocen este problema o se preocupan lo suficiente como para solucionarlo. He probado casi todos los compositores, y generalmente lo mejor que pueden hacer es minimizar el problema pero no eliminarlo. ¿No debería ser tan simple como sincronizar con la frecuencia de actualización del monitor? ¿Existe alguna política entre la comunidad OSS que impida que alguien cometa código que solucione esto?
Cada vez que solicito ayuda sobre este tema en el pasado, se trata como un caso marginal (lo cual me resulta difícil de creer porque se da la cantidad de veces que he replicado el problema) u obtengo soluciones potenciales que a lo más minimiza el desgarro.
Respuestas:
Todo esto se debe al hecho de que el servidor X está desactualizado, no es adecuado para el hardware de gráficos actual y básicamente toda la comunicación directa con la tarjeta de video se realiza como una extensión ("parche") sobre el antiguo núcleo hinchado. El servidor X no proporciona medios de sincronización integrados entre el usuario que representa la ventana y la pantalla que muestra una ventana, por lo que el contenido cambia en el medio de la representación. Este es uno de los problemas más conocidos del servidor X (tiene muchos, el modelo completo de lo que el servidor hace y está desactualizado: manejo de eventos en subventanas, metadatos sobre ventanas, primitivas gráficas para dibujo directo ...). Los kits de herramientas de widgets en su mayoría quieren pasar por alto todo esto, pero el desgarro sigue siendo un problema porque no hay un mecanismo para manejar eso. Surgen problemas adicionales cuando tiene varias tarjetas que requieren controladores diferentes,
Wayland, que intenta reemplazar X sin entusiasmo, admite una sincronización pedante vsync en su núcleo, y se anuncia que tiene cada cuadro exactamente perfecto.
Si buscas rápidamente en Google "desgarro de video de Wayland", encontrarás más información sobre todo.
fuente
+1
para "X es el problema, eche un vistazo a Wayland". Muy en serio, es la respuesta correcta.wayland video tearing
: PEl desgarro de la pantalla aparece principalmente por dos razones: los controladores que aún no están allí y la falta de sincronización con ciertos administradores de ventanas.
En cuanto a los controladores, tanto los controladores gratuitos como los propietarios admiten la composición de desgarro libre (nvidia y amd). Tenga en cuenta que, por ejemplo, habilitar un escritorio sin rasgaduras en el catalizador (
fglrx
) puede provocar la caída del cuadro y los retrasos, por lo que generalmente está deshabilitado de forma predeterminada. En cuanto al controlador abierto, vsync debería estar habilitado de forma predeterminada. Por lo tanto, el problema de rotura de pantalla se puede resolver probando diferentes controladores y configurándolos.En cuanto a los administradores de ventanas, se sabe que Openbox, Awesome y otros wms livianos no son compatibles con la función de desgarro. XFCE (xfwm, para ser específicos) lo ha corregido en versiones recientes, 4.11 / 12 ahora tiene Vsync. Los principales entornos de escritorio tampoco tienen problemas con el desgarro, incluidos GNOME, KDE, Unity y Cinnamon.
Si aún experimenta el desgarro de la pantalla, su opción es probar con otro administrador de composición como Compton o Kwin. Kwin es el administrador de ventanas de KDE y tengo experiencia en el uso de kwin en XFCE cuando no era compatible con vsync y funcionaba muy bien.
Entonces, la solución aquí es la experimentación, lo que se rompe en una combinación de controlador / wm puede funcionar en otra. Creo que la situación mejorará pronto, ya que los controladores de código abierto son cada vez más avanzados y cambiar a wayland puede eliminar viejos problemas con Xorg.
fuente
Si está utilizando un controlador nvidia> = 365.20, intente habilitar la opción "Forzar tubería de composición completa" en
nvidia-settings
.fuente
TearFree
opción que puede poner en laDevice
sección correspondiente . Lo acabo de probar y da resultados muy similares a los de la tubería de composición completa de nvidia.Tuve un fuerte desgarro aquí y ahora está resuelto.
Después de leer esta ( maravillosa explicación ) de cómo funciona un servidor Xorg, me di cuenta de que el servidor X pinta las actualizaciones de la ventana directamente en la tarjeta de memoria en cualquier momento al azar, a menos que use un administrador de ventanas habilitado para la composición.
Cuando se habilita la composición, el administrador de ventanas reúne todos los cambios de los diferentes búferes de memoria de la ventana, crea una imagen resultante para toda la pantalla y la descarga en la tarjeta de visualización de una sola vez.
La mayoría de las distribuciones modernas tienen un administrador de ventanas de composición. KWin para KDE, Mutter para Gnome, Muffin para Cinnamon, Marco para Mate, xfwm para XFCE, etc. Sin embargo, la composición podría deshabilitarse para ahorrar recursos.
En mi caso, la composición estaba deshabilitada en KDE4. Una vez habilitado, el desgarro se fue. EDITAR : También necesitaba cambiar en las opciones de KWin la estrategia VSync de contenido de pantalla Automático a Reutilizar para deshacerme del desgarro tal como se explica en este informe de error específico de kwin .
Las opciones del controlador también pueden ser un factor. En mi caso, las opciones predeterminadas funcionan bien. Arch Wiki tiene una excelente documentación sobre las opciones para diferentes tarjetas de visualización, como las tarjetas Intel o NVIDIA .
Para verificar si una opción está habilitada en su configuración actual de xorg, puede verificar el registro. Por ejemplo, para verificar si DRI está habilitado:
fuente
xfwm4-tweaks-settings
comando para mostrar la aplicación tweaker y en la pestaña Compositor puede encontrar la opción anterior. Encenderlo marcó una gran diferencia, y puede verificarse aquí: vsynctester.com/index.html (active / desactive la función mientras se muestra la animación). No es perfecto, aunque faltan algunos fotogramas, pero es mucho mejor que cuando está apagado.La solución está aquí: Linux Mint 17.3 MATE ahora viene con Compton .
Simplemente vaya a
Desktop Settings
->Windows
->Window Manager
y elijaMetacity + Compton
. Eso es.Tengo una tarjeta de video AMD y funciona de fábrica para el controlador de código abierto.
Para el controlador AMD patentado, cuando los videos HTML5 se maximizan a pantalla completa, es posible que vea un color azul que llene toda la pantalla. Para solucionar esto, cree y
chmod +x
la secuencia de comandos a continuación:Ejecútelo cada vez que reinicie el sistema, pero no intente agregarlo, ya
Startup Applications
que podría interrumpir el inicio por algún motivo.fuente
En Peppermint Linux, vaya a Preferencias> Centro de control de Peppermint, seleccione Efectos de escritorio y habilite "Habilitar efectos de escritorio" y "Sincronizar dibujo en el espacio vertical".
fuente
Estoy usando Linux Mint XFCE y este problema me frustró durante bastante tiempo. Encontré la solución para mi computadora portátil con la tarjeta gráfica integrada Intel y resolvió el problema de desgarro . Para mi escritorio con tarjeta NVIDIA, ese truco no puede funcionar. Pero acabo de encontrar al culpable.
Tengo un aumento de rendimiento inmediato cuando desactivo la composición de ventanas. Aquí está cómo puedes hacer eso:
Vaya a Todos los ajustes / Ajustes del Administrador de ventanas / Compositor y desactive todo eso.
Tenga en cuenta que esto es específico de la distribución y el mío es Mint con XFCE y no tengo idea de cómo encontrar algo similar en otras distribuciones.
fuente