Tenía la impresión de que toda la pantalla se reenvía, sin importar lo que esté sucediendo. Entonces el reenvío X11 debe ser independiente de la aplicación.
No, en realidad es lo contrario. La razón por la cual el reenvío X11 se llama "reenvío X11" es porque transporta los mensajes de protocolo X reales utilizados por las aplicaciones para representar sus ventanas en el "servidor X" (generalmente Xorg). Esos mensajes son comandos para crear / mover ventanas, dibujar texto y primitivas gráficas (líneas / rectángulos), dibujar mapas de bits, etc.
Se podría decir que es conceptualmente lo contrario de los protocolos de "imagen de pantalla completa" como VNC / RFB. Creo que es algo comparable al RDP de Windows, que también se hizo para transportar comandos de dibujo GDI.
Entonces, las razones por las que ve diferencias entre programas son:
Para citar la publicación a la que ha hecho referencia, originalmente la mayoría de los programas basados en X funcionaban así:
Básicamente, X11 no envía la pantalla a su computadora, pero envía las instrucciones de visualización para que el servidor X en su computadora local pueda volver a crear la pantalla en su sistema local.
Entonces, cuando un programa quería mostrar un botón, solo enviaba algunos comandos breves: "dibujar un rectángulo", "dibujar texto" y quizás algunas líneas para que se vea en 3D.
Con el tiempo, esto cambió, los programas comenzaron a hacer el renderizado por sí mismos, y muchas de esas instrucciones se convirtieron en "aquí hay un mapa de bits que ya rendericé, póngalo en la pantalla", muy rápido localmente, pero muy lento en la red debido a que X11 carece de Compresión de imagen.
Esto significa que los programas creados con kits de herramientas modernos son mucho más lentos en X11 en red, incluso si es algo tan básico como las fuentes antialias.
(Por el contrario, RDP se ha adaptado con el tiempo e incluye varias formas de compresión de imágenes, como JPEG e incluso H.264; a menudo puede observar los artefactos de compresión mientras se carga la imagen completa).
Afortunadamente, la mayoría de los kits de herramientas de IU, como GTK, implementan el seguimiento de daños, por lo que solo se reenvían las regiones actualizadas. Sin embargo, algunos programas (como varias versiones de Firefox / Thunderbird) no admiten esto y solicitan una nueva representación completa de toda la ventana, incluso si realmente no se ha actualizado.
Esa es otra diferencia entre los programas: los que se comportan bien todavía son bastante utilizables en la red, pero los defectuosos pueden saturar un enlace de 100 Mbps sin hacer absolutamente nada útil.