При обсъждането на грешка, свързана с относително високото потребление на електрическа енергия на APU AMD с поддръжка на хардуерно декодиране на видео в сравнение с Windows, инженерът от AMD, Алекс Дойкер (Alex Deucher, главен разработчик на драйвера amdgpu), призна, че възпроизвеждането на видео в Linux по принцип е неефективно.
В момента за възпроизвеждане на видео в Linux се използва следната верига:
- Сжат поток от видео
- VCN (модул за хардуерно декодиране на видео за GPU AMD)
- Сурови YUV данни
- Конвертиране на палитра, мащабиране на модула GFX (всъщност 3D ускорител в GPU, който го принуждава да увеличава честотите на работа на ядрото и VRAM)
- RGB данни
- Изход на дисплея.
Как трябва да работи:
- Сжат поток от видео
- VCN
- Сурови YUV данни
- Контролер на дисплея, който ще преобразува палитра, мащабира и възпроизвежда.
По-ефективно това може да бъде решено в композиторите на Wayland, но в момента не съществува реализация. Този проблем е решен в Microsoft Windows и Google Android, тъй като там има пълноценни самостоятелни композитори, които предоставят съответните възможности и API — нещо, което в момента липсва в Linux, защото нито X.org, нито Wayland могат да работят с YUV потоци директно.
Източник: opennet.ru
