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 ★★★★★
()