¿Cuál es la diferencia entre un framebuffer de Linux o controlado por software y una memoria GPU? ¿Existe alguna buena guía ilustrada para explicar cómo funciona el framebuffer de Linux? En una placa integrada con GPU, ¿normalmente usamos framebuffer o GPU para procesar una transmisión de video en vivo?
Respuesta1
Abúfer de cuadrosEs un área de la memoria cuyo contenido está listo para ser mostrado. Puede haber varios framebuffers en la memoria al mismo tiempo: uno (para cada monitor) que se muestra actualmente (buffer frontal) y otros que se están preparando (buffers posteriores o buffers de trabajo).
Un framebuffer puede ser llenado por cualquier parte del sistema: porfirmwareejecutándose en la GPU, por el kernel que se ejecuta en la CPU, por elservidor x, mediante una aplicación…
Una GPU ofrece una funcionalidad de dibujo que es más rápida que tener un software ejecutándose en la CPU principal para calcular los píxeles uno por uno. Esta funcionalidad puede incluir cosas como "rellenar este rectángulo con un color uniforme", "copiar este rectángulo en esta posición", "reducir este rectángulo en 1,5", "aplicar esta máscara de color", "calcular una perspectiva de este objeto 3D", “descomprimir estoMPEGarroyo", …
La renderización de un vídeo normalmente se realiza en la GPU siempre que sea posible. El hardware especializado de la GPU es mejor (más rápido, utiliza menos energía y utiliza menos ancho de banda de memoria) que una CPU de uso general.