Рейтинг:1

Как включить аппаратное ускорение графики в веб-браузере Chromium, работающем на Ubuntu MATE 21.10 на RPi 4 (armhf)?

флаг zw

Я только что установил Ubuntu MATE 21.10 (32-разрядная версия, armhf) на свой Raspberry Pi 4 с 4 ГБ оперативной памяти. Примечание. Мне нужна 32-битная версия, чтобы иметь Доступен компилятор Modelica. Все настройки по умолчанию. Информация о видеодрайвере ниже:

$ lsmod | grep дрм
drm_kms_helper 282624 3 vc4
cec 65536 2 vc4, drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
drm 540672 12 v3d,vc4,gpu_sched,drm_kms_helper

$ grep -E "^dtoverlay|^max_framebuffers|^gpu_mem|^hdmi" /boot/firmware/config.txt 
max_framebuffers=2
dtoverlay = vc4-fkms-v3d
gpu_mem=128

$ cat /proc/device-tree/soc/firmwarekms@7e600000/status
Ладно

$ cat /proc/device-tree/v3dbus/v3d@7ec04000/status
Ладно

$ glxinfo | grep -i opengl
Строка поставщика OpenGL: Broadcom
Строка рендерера OpenGL: V3D 4.2
Строка версии OpenGL: 2.1 Mesa 21.2.2
Строка версии языка затенения OpenGL: 1.20
Расширения OpenGL:
Строка версии профиля OpenGL ES: OpenGL ES 3.1 Mesa 21.2.2
Строка версии языка затенения профиля OpenGL ES: OpenGL ES GLSL ES 3.10
Расширения профиля OpenGL ES:

Затем я установил браузер Chromium так же просто, как sudo apt-get установить хром-браузер, запустил его в первый раз, чтобы включить следующие параметры на хром://флаги:

  • Переопределить список рендеринга программного обеспечения он же #ignore-gpu-блоклист;
  • растеризация графическим процессором он же #enable-gpu-растеризация;
  • Растеризатор с нулевым копированием он же #включить-нулевое копирование;
  • Позволяет Display Compositor использовать новый поток графического процессора. он же #включить-drdc;
  • Внепроцессная растеризация 2D-холста. он же #холст-уп-растеризация.

затем перезапустил его, используя chromium --enable-features=VaapiVideoDecoder команда.

Несмотря на все эти шаги, на хром://гпу Chromium говорит, что ускорение графического процессора не включено:

Статус графических функций

  • Холст: Только программное обеспечение. Аппаратное ускорение отключено
  • Растеризация холста вне процесса: Неполноценный
  • Композитинг: Только программное обеспечение. Аппаратное ускорение отключено
  • Несколько растровых потоков: Неполноценный
  • Внепроцессная растеризация: Неполноценный
  • OpenGL: Неполноценный
  • Растеризация: Только программное обеспечение. Аппаратное ускорение отключено
  • Сырой розыгрыш: Неполноценный
  • Рендерер Skia: включен
  • Декодирование видео: Только программное обеспечение. Аппаратное ускорение отключено
  • Вулкан: Неполноценный
  • WebGL: Неполноценный
  • WebGL2: Неполноценный

Так что вопрос в заголовке.

Рейтинг:1
флаг zw

Основная проблема здесь в том, что Chromium поставляется как Snap, поэтому VA-API недоступен, поскольку мы работаем на ARM.

Итак, первый шаг очевиден — удалите Snap-версию Chromium с помощью sudo snap удалить хром.

Второй шаг — установка Chromium в виде deb-пакета из репозитория ОС RaspberryPi с помощью следующих команд:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 82B129927FA3303E
sudo apt-add-repository "deb http://archive.raspberrypi.org/debian/bulseye main"

кошка <<ЕОФ | sudo tee /etc/apt/preferences.d/pin-chromium
Упаковка: *
Пин: выпуск o=Raspberry Pi Foundation
PIN-приоритет: -1

Пакет: хром*
Пин: выпуск o=Raspberry Pi Foundation
Пин-приоритет: 1000
EOF

sudo apt-получить обновление
sudo apt-get установить хром-браузер

Затем запустите Chromium, чтобы настроить его как обычно — включите следующие параметры на хром://флаги:

  • Переопределить список рендеринга программного обеспечения он же #ignore-gpu-блоклист;
  • растеризация графическим процессором он же #enable-gpu-растеризация;
  • Растеризатор с нулевым копированием он же #включить-нулевое копирование;
  • Позволяет Display Compositor использовать новый поток графического процессора. он же #включить-drdc;
  • Внепроцессная растеризация 2D-холста. он же #холст-уп-растеризация.

Перезапустите его, используя chromium-browser --enable-features=VaapiVideoDecoder, посетить хром://гпу чтобы убедиться, что у вас включены все (кроме Vulkan) опции:

Статус графических функций

  • Холст: Аппаратное ускорение
  • Внепроцессная растеризация холста: включена
  • Композитинг: Аппаратное ускорение
  • Несколько растровых потоков: включено
  • Внепроцессная растеризация: аппаратное ускорение
  • OpenGL: включен
  • Растеризация: Аппаратное ускорение на всех страницах
  • Рендерер Skia: включен
  • Декодирование видео: Аппаратное ускорение
  • Вулкан: отключен
  • WebGL: аппаратное ускорение
  • WebGL2: Аппаратное ускорение

Сделать --enable-features=VaapiVideoDecoder флаг постоянный, следует программно отредактировать соответствующий конфигурационный файл, как показано ниже:

echo 'CHROMIUM_FLAGS="${CHROMIUM_FLAGS} --enable-features=VaapiVideoDecoder"' | sudo tee /etc/chromium.d/92-vaapi-hardware-decoding

В результате все веб-плееры будут воспроизводить 1080p без лагов и разрывов.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.