Bug 43839

Summary: firefox-esr: использует программную эмуляцую GL ES при наличии GPU и работоспосбных драйверов
Product: Branch p10 Reporter: Alexey Sheplyakov <asheplyakov>
Component: firefox-esrAssignee: qa-team <qa-team>
Status: CLOSED WORKSFORME QA Contact: qa-p10 <qa-p10>
Severity: normal    
Priority: P5 CC: asheplyakov, jqt4, nir, qwetwe, sin
Version: не указана   
Hardware: aarch64   
OS: Linux   
Attachments:
Description Flags
общесистемный профайл (flamegraph)
none
воспроизведение того же видео в ffplay, общесистемный профайл none

Description Alexey Sheplyakov 2022-09-21 15:13:59 MSK
Created attachment 11547 [details]
общесистемный профайл (flamegraph)

(перенесено из https://bugzilla.altlinux.org/show_bug.cgi?id=41486#c11)

Воспроизведение HD видео с youtube тормозит и спотыкается.
Дело не в сети - проблема проявляется и при воспроизведении локального видео (скачанного с помощью youtube-dl).
ffplay нормально воспроизводит это же видео на этом же компьютере.
Проверял на raspberry pi 4b, разных платах на Байкал-М, rock pi 4c.

firefox НЕ задействует GPU для преобразования YUV в ARGB.
А именно, ~20% собранных стеков содержат функцию linear_row_yuv<false>, которая определена в файле gfx/wr/swgl/src/composite.h [1].
В файле gfx/wr/swgl/README.md зелёным по терминалу написано:

This is a relatively simple single threaded software rasterizer designed for use by WebRender.

Понятно, что это обречено тормозить. Тем более на архитектурах, где производительность достигается числом ядер (т.е. всё, кроме x86_64). А вот почему firefox вместо GL ES (как это делает ffplay) делает какую-то неведомую фигню - совершенно не ясно.

[1] http://git.altlinux.org/gears/f/firefox-esr.git?p=firefox-esr.git;a=blob;f=mozilla/gfx/wr/swgl/src/composite.h;h=1a74d6aef5441288487655b9fcfdc00ac2cea17a;hb=1587622310e4b957293342baeceb646d78f9a776#l847

[2] http://git.altlinux.org/gears/f/firefox-esr.git?p=firefox-esr.git;a=blob;f=mozilla/gfx/wr/swgl/README.md;h=2c43ed881957398548ce9658f018a9ea7eb8855f;hb=1587622310e4b957293342baeceb646d78f9a776#l6
Comment 1 Alexey Sheplyakov 2022-09-21 15:24:08 MSK
Профайл, конечно, не первой свежести. Но чтобы получить свежий, надо сначала разобраться с #43836
Comment 2 Alexey Sheplyakov 2022-09-21 19:59:07 MSK
Created attachment 11548 [details]
воспроизведение того же видео в ffplay,  общесистемный профайл
Comment 3 Alexey Sheplyakov 2022-09-21 20:03:29 MSK
(Ответ для Alexey Sheplyakov на комментарий #2)
> Создано вложение 11548 [details] [подробности]
> воспроизведение того же видео в ffplay,  общесистемный профайл

ffplay отображает декодированные кадры с помощью текстур (см. GL_UpdateTextureYUV и выше по стеку). Также видно работу драйвера GPU (ядерный поток pan_js).
Comment 4 Ivan Alekseev 2023-01-30 17:51:01 MSK
По указанным шагам ошибка не воспроизвелась. Подтормаживаний нет.

Стенд: Baikal-M TF307-MB-S-D с системой из образа slinux-10.1-aarch64.iso.
Версия пакета: firefox-esr-102.6.0-alt1.aarch64
Видео: https://www.youtube.com/watch?v=ayWd44asH4U (1080p HD)