LINUX.ORG.RU

Firefox падает в Wayfire при включенном vaapi

 , ,


0

2

Как и было сказано ранее, Firefox падает при попытке воспроизведения видео в вяленом сеансе с композитором Wayfire. Сначала грешил на pipewire, теперь удалось запустить это дело в нормальном эмуляторе терминала, допускающем копирование, и вот что вышло:

libva info: VA-API version 1.22.0
libva info: User environment variable requested driver 'nvidia'
libva info: Trying to open /usr/lib64/va/drivers/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_1_0
libva info: va_openDriver() returns 0
Exiting due to channel error.
Exiting due to channel error.
Exiting due to channel error.
Crash Annotation GraphicsCriticalError: |[C0][GFX1-]: CompositorBridgeChild receives IPC close with reason=AbnormalShutdown (t=11.7815) Exiting due to channel error.
. vainfo отрабатывает штатно, ни на что не жалуется, а вот когда браузер хочет его запустить - падает. Версии подозреваемых: Firefox - 144.0.1, VA-API с бэкендом NVidia - 1.22, драйвер Nvidia - 570.195.03, ядро - gentoo-kernel-bin 6.12.47, . Wayfire - 0.10.0. Можно, конечно, отключить vaapi в браузере, но какой тогда толк?

★★★★★

Последнее исправление: LongLiveUbuntu (всего исправлений: 1)

Есть ли вообще смысл в этой vaapi обёртке над блобами нвидии? Где-то слышал, что это всё не очень эффективно.

Merionet
()
Ответ на: комментарий от Merionet

В X11 оно таки работает, только напрягает саму видеокарту порядочно. Я от товарища Qui-Gon слышал, что в вяленом научились по-минимуму использовать и то и то для декодирования видео в браузере. Решил попробовать, а тут такой облом. Притом в kwin оно работает, всё ок, а в wayfire вот такая дребедень.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Лучше всего тестировать всю эту магию быстрого вывода на mpv. Он и nvdec поддерживает, только не знаю, работает ли он с выводом dmabuf-wayland.

Merionet
()

Пустил в wayfire огнелиса с видео, не упал, на vaapi не жаловался. Но у меня интел, поэтому предполагаю, что проблема в энвидиа.

imul ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Сейчас погуглил, реально что-то делают, неужели у зелёных на линуксе начнётся жизнь. По запросу nvk video decoding выдало статьи с патчами ядра.

Merionet
()

Нвидия - говно! (с) палец Линуса.

Под интелом-амд все работает. (ну не совсем - есть еще неприятный баг с падением при скроллинге проигрываемого видео с включенным HDR)

Собсвенно еще коммент в тему - если у тебя ноутбук то помимо говновидии у тебя есть встройка от синих или красных в которой декодирование видео сделано на порядок лучше говновидии. А если у тебя десктоп - то во первых зачем вообще тебе крохобориться и экономит какие-то 5 ватт на декодировании? Ну а во вторых не факт что нвидия эти ватты сэкономит в принципе, сдается мне что она сожрет еще 5 ватт сверху в сравнении с декодированием на проце.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Не, на ноутбуке дискреточка и там kwin и норм, а вот на десктопе у меня сейчас wayfire подопытный, vaapi фронтэнд для nvenc.

Из дополнительных гадостей: мерцание и подергивание экрана при открытых Хромо производных. Скейл тоже надо руками выставлять руками через wlr-randr: в файле конфигурации wayfire не понимает чего я от него хочу. В общем, пока сыро, очень сыро.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от Qui-Gon

Зачем мне dma-buf на десктопе? Посмотреть как оно работает с конкретным композитным менеджером, возможно накачу позже на ноутбук Mate с сабжем.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от Qui-Gon

На десктопе тоже приятно, нагрузка ниже. Просто не так критично.

Merionet
()
Ответ на: комментарий от LongLiveUbuntu

Насколько я помню в wayfire есть где-то галка в wcm управлять аутпутами (то есть мониторами ) из Wayfire или передать на внешнее управление (wlr-randr).

Сам не пробовал - ибо дробное масштабирование с его мылом и тормозами органически не приемлю. Да - читал куча рассказов а я вот хочу к 4К ноутбуку прицепить дедушкин ЭЛТ монитор 1024х786 и чтобы все было красиво - но уж извини это ИМХО либо патологическое жмотство либо патологическая же тупость. При нормальном подборе железа под себя масштабирование - адовое ненужно. Ну а если это какое-то эпизодическое действо - когда нужно подключиться к чужому дисплею-проектору презентацию провести - тут как раз wlr-randr самое оно, в данном случае запоминать это не сильно важно.

Ну а все подергивания похрюкивания и пр. - исключительно козни нвидии. На интеле все отлично, на амд тоже. Сырое - согласен, не хватает нескольких важных ИМХО протоколов, типа workspace management. Но это пока wlroots тормозит, надеюсь в версии 0.20 приземлятся.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

У меня есть нормальный HD-монитор 23 дюйма, там всё нормально. А этот 4К выдали на работе и никуда от него не деться. Винда норм масштабирует, а Mate может или как есть или масштаб 200%, от которого некоторые контролы за пределы экрана уезжают, приходится фиксить средствами randr/wlr-randr.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

какого он размера то этот 4к? У меня на ноуте 3К 14.6" - никакого масштабирования не нужно. А тут целый мониторище, ну явно не меньше 23.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Bfgeshka

Это древнее говно мамонта уже никто не поддерживает. Кроме нвидии. Так что vdpau - пример эталонного ненужно. Повторюсь но это логично - десктопу ускорение декодирования не сдалось нафиг, тем более нвидиевское. Оно там древнее глючное и говенное.А в ноутах нвидия никогда не ставится без встройки, и даже видеомонтажники очень активно рекомендуют не отключать в ноутах встройку а использовать ее как раз для кодирования-декодирования, ибо ничего лучше интеловской встройки в этом направлении не сделали.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Acer Nitro игровой, там крайний режим 3840х2160 пикселей, оно, конечно, тут же похватывается, а при таком разрешении контролы страшно мелкие, надо масштабировать до 1080 с коэффициентом 1.25. Сам не рад, предлагал начальству свой монитор, не хотят.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от Qui-Gon

Беда в том, что без ускорения декодирования процессор готов улететь на кулере выше Эвереста, а меня это бесит, поэтому Фуррифокс и декодирование на видимокарте. Сейчас вот захотел через dma-buf еще чуть-чуть и ее разгрузить, а заодно экзотику и свой родной Mate на вяленом пощупать. А тут такое.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

чтобы еще чуть-чуть разгрузить нужен модуль зардверного масштабирования декодированного буфера. Он есть у интела с древних времен, у амд появился в последних ryzen AI , а в нвидии его нет не было и никогда не будет. Поэтому все эти ноутбучные энергосберегающие феньки на нвидии дескопной неприменимы.

Qui-Gon ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

А куда деваться. Та же нвидия которая очень долго клепала дрова под икс и упорно саботировавшая вяленд в скором времени выпилит икс и будет делать только под вяленд. И какбы все - X на этом умрет.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Там какая-то инсайдерская информация есть или догадаться можно? Это после новой полуоткрытой архитектуры драйвера такой вывод? Типа теперь его можно с чем угодно использовать.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

это просто исходя из общей логики. Нвидия поддерживает то что используется и не очень то старается поддержать то что является экзотикой. Вяленый был экзотикой иксы мейнстримом. Теперь шапкообразы на вяленом, и как только на вяленый передут убунты то всякой мелочью пузатой можно будет пренебречь и закопать иксы. Что и будет сделано.

новой полуоткрытой архитектуры драйвера

Откуда вот это бред про полуоткрытую архитектуру??? Вы код то смотрели???? Там тупо в HEX массиве тот же самый блоб, и кусочек сишного кода там где блоб должен вызывать или вызываться функциями ядра. По сути нвидия слила на меинтенеров ядра и коммьюнити работу по адаптации этой ничего не значащей прослойки интерфейса обмена блоба с ядром, абсолютно ничего не открыв и просто сократив свои расходы на разработку. А шума и вони при этом подняли какбудто внесли титаничесий вклад в свободное ПО. В общем палец Линуса им в глаз.

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Что за чушь, что десктопу не нужно ускорение декодирования видео? Никаких проблем с декодированием видео у нвидии нет, есть NVDEC, который декодирует всё, что GPU железно умеет, начиная с Паскалей есть ещё Vulkan Video: https://developer.nvidia.com/vulkan/video/get-started

rbh-17m
()

Прописал в конфиге mpv hwdec=vaapi, открыл им первое попавшееся видео - ничего не упало. Вывод: проблема где-то в Firefox, надо параметры видеоускорения в нем глянуть.

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от LongLiveUbuntu

Прописал в конфиге mpv hwdec=vaapi, открыл им первое попавшееся видео - ничего не упало

У mpv всё происходит в одном процессе. Там код декодера и код орисовщика могут, скажем, в одной и той же GL текстуре уживаться. Адресное пространство то же, поток один. Сначала один код пишет, потом другой код использует.

У Firefox декодер, контент и интерфейс пользователя могут быть в разных процессах. Поэтому у них хитрый код, который передаёт объекты между процессами и синхронизирует их использование. Косяк может быть в этом коде, какая-нибудь гонка, которую сразу не видно. И косяк может быть в коде драйверов, которые могут выдать какой-нибудь dmabuf, который в одном процессе работает, а в другом — нет. Во втором случае в mpv такой проблемы видно не будет.

i-rinat ★★★★★
()
Ответ на: комментарий от Qui-Gon

чтобы еще чуть-чуть разгрузить нужен модуль зардверного масштабирования декодированного буфера. Он есть у интела с древних времен, у амд появился в последних ryzen AI , а в нвидии его нет не было и никогда не будет.

3d-движка для масштабирования достаточно.

Тот сверхэкономичный аппаратный скейлер, про который ты говоришь, нужен только для специфичных применений, для коробочек с прошивкой без ОС общего назначения. Все популярные Wayland-композиторы всё равно будут использовать 3д-движок для рисования, так что какой-то пользы из этого скейлера вряд ли получится извлечь. Ты больше Ватт потратишь на доставку в него и из него картинки, чем он сэкономит.

i-rinat ★★★★★
()

А если?

NVD_BACKEND=direct

У меня прописан в cat /etc/environment.

Skullnet ★★★★★
()
Ответ на: комментарий от i-rinat

Точно нет, задействование 3д намного более ресурсозатратно, а 3д композитора никак не затормаживает вывод видео. Во многом из-за доставки этот вывод и эффективен, он выполняется без лишнего копирования. Даже софтверно декодированное видео можно более эффективно пихнуть в хардверные фильтры, udmabuf называется, если не ошибаюсь.

Merionet
()
Ответ на: комментарий от Merionet

задействование 3д намного более ресурсозатратно

Насколько именно? Особенно с учётом того, что 3д движок уже всё равно запущен.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Зависит от видеофайла, наверное, ещё от железа. Нужно замерять индивидуально. Композитор особо много не жрёт, особенно, когда на экране не происходит движения. Даже композитор андроида переключается в определённых случаях в 3д, чтобы сэкономить батарейку.

Merionet
()
Ответ на: комментарий от Merionet

Нужно замерять индивидуально

Если ты собираешься опровергать тезис о том, что 3д-движка для масштабирования достаточно, нужны эти самые индивидуальные замеры.

И ещё мне очень интересно, как ты будешь это замерять. Я вот не слышал ни о каком Wayland-композиторе, построенном вокруг SFC. Но если ты вдруг заморочишься, на результаты интересно взглянуть будет.

Даже композитор андроида переключается в определённых случаях в 3д, чтобы сэкономить батарейку.

?

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Я не сравнивал потребление, только производительность. На слабых SoC невозможно воспроизводить видео нормального разрешения без dmabuf-wayland или подобных технологий. Во всяких сетевых обсуждениях можно найти замеры, я вот ещё презентацию нашёл https://indico.freedesktop.org/event/9/contributions/354/attachments/188/262/20240912%20VPE%20v0.8%20-%20final.pdf . Про андроид читал тут https://source.android.com/docs/core/graphics/hwc

Merionet
()
Ответ на: комментарий от Merionet

Речь не про VPE (VEBOX в терминологии Intel), а про SFC, специальный скейлер, который позволяет масштабировать картинки без включения шейдерных блоков. Этот блок нужен, чтобы всё потребление SoC при проигрывании видео увести в область до 1 Ватта. Не 1 Ватт экономии, а менее 1 Ватта общего потребления SoC.

Если тебе нужно экономить доли Ватта, то там да, SFC будет иметь смысл. Но там ты точно будешь держать шейдерные блоки выключенными. На десктопе такого контроля в линуксе добиться не получится. У тебя они уже в постоянной готовности.

Некоторое время назад в драйвере i915 даже был баг, который просто тупо добавлял 1 Вт к потреблению, как только какое-нибудь приложение создавало контекст OpenGL. Соответственно, любой Wayland-композитор тупо жрал больше в простое.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Не самый удачный пример, но даже так экономятся Ватты. Я подразумевал все фильтры, и цветовые, и скейлящие. На моём SoC точно был скейлер. Работать над графикой в линуксе стали гораздо активнее в последнее время, недавно в квин добавили оверлеи, чтобы выводить софт в оконном режиме напрямую. Неприятный баг, а wayland композитор с рендером pixman тоже его триггерил? Сложно представить десктоп без контекстов опенгл, только tty или xorg с софтверно рисующим софтом и ddx intel драйвером, с которым у меня был не лучший опыт, фпсы в играх у меня воровал.

Merionet
()
Ответ на: комментарий от i-rinat

Насколько я понял из амдшного бага этот движок как раз и обеспечивает то что в венде мы имеем 12+ часов проигрывания видео а в лине если повезет 6- а то и меньше. А если подключается 3d движок - то как раз получаем адовый ужор когда AMD при аппаратном декодировании жрет сравнимо а иногда и больше чем при софтовом.

Из того что наблюдаю на свежем фоксе в gputop - нагрузка 3d движка снизилась с 25+ процентов (они делились между фоксом и композитором гдето как 10 + 15) lj 3-5% на композиторе, фокс же вообще 3d движок при проигрывании видоса не теребит. Как они этого добились - ХЗ. Единственное мое предположение что это реализовано как раз в этом движке работа с которым скорее всего зашита где-то в недрах intel-media-driver

Qui-Gon ★★★★★
()
Ответ на: комментарий от Qui-Gon

Я очень сильно сомневаюсь, что SFC это серебряная пуля. Если построить всю систему вокруг намерения экономить энергию, то использование SFC может и даст какой-то эффект, но уже на выжимании последних крох. Для этого нужно вместо композитинга через 3д использовать переключение на 2d-only. Это же весь софт придётся переделывать. Изменениями только в композиторе или только в браузере не обойдёшься.

i-rinat ★★★★★
()
Ответ на: комментарий от Merionet

Сложно представить десктоп без контекстов опенгл, только tty или xorg с софтверно рисующим софтом и ddx intel драйвером

В иксах драйверы с EXA/SNA поддерживали 2д-ускорение. Этого хватало. Теперь старые драйвера заброшены, и есть только modesetting, который всегда всё делает через 3д.

а wayland композитор с рендером pixman тоже его триггерил?

Не проверял. Но не звучит хорошо. Всё-таки скейлить всё на CPU накладно было ещё во времена 720p экранов.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Как в видеокартах появились 3д ускорители, люди не захотели ограничивать себя 2д. Даже андроид использует вулкан для ускорения своих интерфейсов, на 2д перекладывают некоторые штуки, вроде обоев и панельки. 3д ест побольше, но даёт больше свободы, позволяя реализовывать сложные графические эффекты, а ещё он быстрый. Я тоже думаю, что лучше переводить определённые штуки на 2д, не отказываясь от 3д. Не уверен, насколько современные десктопные видюхи богаты 2д ускорением, но медиапроцессоры точно стоит задействовать.

Merionet
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.