Ao discutir um erro relacionado ao consumo de energia relativamente alto em comparação com o Windows em APUs AMD com suporte para decodificação de vídeo por hardware, o engenheiro da AMD, Alex Deucher (principais desenvolvedor do driver amdgpu), reconheceu que a reprodução de vídeo no Linux é, em princípio, ineficiente.
Atualmente, a saída de vídeo no Linux utiliza a seguinte cadeia:
- Fluxo de vídeo comprimido
- VCN (módulo de decodificação de vídeo por hardware para GPUs AMD)
- Dados YUV brutos
- Conversão de paleta, escalonamento no módulo GFX (basicamente, um acelerador 3D na GPU, que faz com que as frequências do núcleo e da VRAM aumentem)
- Dados RGB
- Saída para o display.
Como deveria funcionar:
- Fluxo de vídeo comprimido
- VCN
- Dados YUV brutos
- Controlador de display que irá converter a paleta, escalonar e exibir.
Isso pode ser resolvido de forma mais eficiente em compositores Wayland, mas atualmente não existe uma implementação. Este problema foi resolvido no Microsoft Windows e no Google Android, pois lá existem compositores de sessão completa que oferecem as capacidades e APIs necessárias — algo que ainda não existe no Linux, pois nem o X.org nem o Wayland podem trabalhar com fluxos YUV diretamente.
Fonte: opennet.ru
