LINUX.ORG.RU

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

 , ,


0

1

Как и было сказано ранее, 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)
Ответ на: комментарий от Merionet

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

LongLiveUbuntu ★★★★★
() автор топика

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

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

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

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

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

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

LongLiveUbuntu ★★★★★
() автор топика
Ответ на: комментарий от 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 ★★★★★
() автор топика
Ответ на: комментарий от 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
()
Ответ на: комментарий от LongLiveUbuntu

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

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

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

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

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

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

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

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

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

Merionet ★★
()
Ответ на: комментарий от 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 ★★
()
Ответ на: комментарий от paulbych

ну воз пока там же. Оно летает - если пользоваться сторонними утилитами.

В общем не работает power-management-daemon и mate-sacrensaver. Скринсейвер заменяется swaylock + swayide, power-manager-daemon - маппингом клавиш громкости и яркости в самом wayfire - через light (яркость) и pactl или amixer (громкость).

Не работает автохайд панели (и вообще любой хайд панели) - не сделали пока. И не работает мультимониторность панели - то есть панель будет только на первом мониторе.

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

Не работает управление железом - ни мониторами, ни вводом. Это ушло в композитор. Предлагал в mate-contol-center впилить вызов wcm на данные функции если используется вейланд-сессия, но не стали делать. Для себя просто использую обе конфигурашки - но в матешной по сути только переключаю темы оформления, шрифты и иконки. Все остальное уехало в wcm

Не работает управление воркспейсами из МАТЕ - ни апплет-переключалка, ни возможность отображать на панели в списка только окон текущего воркспейса. Список окон хотелось бы починить, но тут либо колхозить либо ждать реализации протокола workspace-management который в вяленый уже прилетел а в wlroots еще нет. Видимо решили ждать ибо кривых костылей и так выше крыши. Ну а само управление воркспейсами и переключение между задачами и перетаскивания окон между ними шикарно реализовано в самом wayfire. Я соответственно только им и пользуюсь сейчас - недели две тосковал по привычному бару с кнопочками в панели а сейчас как-то и не замечаю оного.

В caja - отображение десктопа с иконками у меня выключено. Оно работает - но загаживать десктоп иконками нет желания более никакого, поэтому caja у меня обоину не рисутет, а этим занимается background плугин из wf-shell. Там ему папку кидаешь с картинками в настройку и интервал задаешь - отлично ротирует картинки. Увы на каждый воркспейс свою не умеет, был сторонний плугин но давно и не факт что соберется со свежим wayfire. Поменяли там сильно, 0.9 wayfire работал на EGL движке а 0.10 может рендерить через вулкан - правда с потерей львиной доли эффектов.

Сессии - не сохраняет и не восстанавливает. Это уже природа вяленого - такую штуку потенциально можно реализовать только в композиторе. Wayfire сейчас дает достаточно мощный IPC и python либу для него - так что в принципе при желании можно написать сохранялку сессии и ее восстановление так как у твоего юзерспесного питонового приложения есть возможность собрать информацию про то где и какого размера окошки и потом это распихать в то же место и тот же размер. Мне правда не нужно такое - и на иксах то всегда отключал - а то грохнется мате, включаешь - и он у тебя все то говно которое открыто было опять вытаскивает. Но есть товарищи которым сохранение сессии через рестарт просто очень как надо. Если набор приложений стандартный и тебе надо настроитьь чтобы одни и те же приложения открывались в одних и тех же местах - то можно прописать их в автостарт и window rules в самом конфиге wayfire.

Резюмируя - роль самого DE исполняет wayfire, а мате просто предоставляет набор удобных компонентов, которые вполне себе работают.

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

Ну Марио из АМД с тобой не согласен. Тут как раз кто-то с ЛОРа открыл баг на амдшников что райзеновская встройка адски жрет батарею в vaapi. АМДшники протестили и выяснили что vaapi блок жрет смешные копейки чуть ли не 0.2 ватта, а вот 3д движок который делает 2 вещи - пекодирует NV12 в RGB и масштабирует кадр - проглатывает ватт 5. При этом ужор этого 3д движка не сильно зависит от разрешения видоса - поэтому получалось что видео 4К+ выгоднее декодировать на видеокарте, FHD то на то , а низкое разрешение выгоднее в софте. И сказали что поскольку SFC у нас нет - ничего мы более сделать не можем.

Понятно что как тма оно на самом деле реализовано внутри - вопрос темный, но факт что новый фокс при декодировании видео существенно меньше грузит шейдеры. Вернее он их вообще не грузит, их немного грузит композитор. Но если до изменений было 10-15% фокс, 10-15% композитор - то теперь имеем 3-5% композитор. То есть что-то очень неплохо оптимизировали. АМД машинки сейчас нет в доступе так что не могу сказать это благодаря запуску SFC на интеле или там какая-то иная оптимизация. Если есть у кого 6000-7000 райзен и возможность прогнать старый фокс и новый фокс с включенным HDR композитингом то можно было бы понять.

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

было 10-15% фокс, 10-15% композитор - то теперь имеем 3-5% композитор.

А, вот ещё про это хотел сказать. Тут проценты надо на частоты множить.

Про остальное ничего не могу добавить. Я очень давно уже ничего не тестил, да и из AMD на руках только стимдек.

i-rinat ★★★★★
()