LINUX.ORG.RU

Избранные сообщения a1ba

Нужно чинить иксы

Форум — Development

X11 robustness: DRI3 без аппаратного ускорения (комментарий)

Сабж

Судя по всему последний раз проблема поднималась в 2018, потом все как-то забыли - да и решения там были весьма сомнительные предлагались - копмозитинг предлагается вынести в иксы, тем самым прибив модульность

В общем, без композитинга всё работает как надо, present через damage вызывает fbCopyNtoN на экранную поверхность, present отрабатывает, пусть и с тирингом.

С композитингом же всё сильно хуже - present делает такое же копирование, но в поверхность окна, для которой работает composite redirect.

Без изменений в композиторе ничего сделать не выйдет - сейчас в протоколе composite композитор получает пиксмапу окна и ожидает что после damage event в ней будут актуальные данные. Это совершенно несовместимос с подходом dri3/present, который привязвает несколько пиксмап к окну и требует лишнего копирования.

Изначальная идея в present предполагала отправлять Notify в композитор. Вероятно от неё отказались т.к это неэффективно - иксы здесь занимаются перессылкой событий и fence между процессами.

В здесь целом напрашивается получение дескриптора для отправки событий композитору напрямую, но это тоже выглядит как какой-то костыль. Но в принципе, dri3 передаёт файловые дескрипторы текстур - почему он не может так же передавать дескрипторы некоего канала с композитором? Звучит как вполне разумное решение, которое будет полезно и для xwayland т.к можно будет передать контроль wayland-композитору напрямую, минуя процесс Xwayland

VK_KHR_swapchain помимо fence оперирует с семафорами. Может можно вообще timeline semaphore задействовать? Но в любом случае надо как-то передавать индекс буфера. Расширение протокола позволит задействовать все возможности Vulkan при условии поддержки композитором. Так же vulkan’овые объекты доступны и в opengl

В общем интересно, остались ли тут разбирающиеся в устройстве иксов и vulkan люди, может кто-нибудь может подкинуть идеи

Возможная идея, что можно пересылать в композитор: https://github.com/notpeelz/monado/blob/main/src/xrt/ipc/client/ipc_client_compositor.c#L737 (freedesktop gitlab опять лежит) Здесь есть 2 варианта функции - с семафорой (включая timeline) и просто с fence. Причём создаётся семафора довольно просто - в vulkan queue отправляется пустой Submit с семафорой, которая ожидается уже другим процессом. То есть даже какая-то дополнительная поддержка со стороны приложения не нужна - дальше вся синхронизация присходит прямо в gpu.

P.S дополнение, всем фанатам и просто пользователям Вяленного, набежавишим в тред. Современный графический стек, предполагающий на каждый чих использовать opengl на клиенте немного несовместим с современными GPU, которые могут потерять все контексты в любой момент на любой чих в шейдере в любом приоложении. И даже если сделать перезапуск композитора с переподключением - это нифига не поможет от падения всего десктопного софта, который вынужден рисоваться через opengl. Почему-то на windows есть GDI и там нет этой проблемы. В иксах же есть свой аналог GDI и потенциальная возможность свести все эти отказы к единой точке, которую устранить. Достаточно избавиться от glamor в сервере, можно даже попытаться переписать его на vulkan, добавив обработку потери контекста. Я сейчас категорически не могу рассматривать рендеринг всех десктопных приложений на клиентах через opengl т.к это создаёт огромные неудобства при gpu reset. Да, можно сделать софтовый wayland композитор и нечто похожее на мой костыльный патч в modesetting, но нормально решить проблему потери контекстов просто нельзя - в архитектуре это просто не предусмотренно. Так что можно хвалить wayland, он прекрасно справляется с медиазадачами вроде 3д десктопа в виртуальной реальности, но превращается в тыкву, когда GPU не может работать

 , , , ,

mittorn
()

Nobara Linux 41

Новости — Linux General
Nobara Linux 41
Группа Linux General

Nobara — это мо­ди­фи­ци­ро­ван­ная вер­сия ди­стри­бу­ти­ва Fedora, вклю­ча­ющая в се­бя испра­вле­ния, пред­наз­на­чен­ные для по­вы­ше­ния дру­же­люб­но­сти к поль­зо­ва­те­лю. Ди­стри­бу­тив ста­вит пе­ред со­бой цель пре­до­ста­влять улуч­шен­ный опыт гей­мин­га, стри­мин­га и кон­тент­мей­кин­га пря­мо «из ко­роб­ки».

В этом вы­пу­ске:

  • ба­за об­но­вле­на до Fedora 41;

  • улуч­шен уста­нов­щик Calamares:

    • пе­ре­ба­зи­ро­ван на форк KaOS;
    • до­ба­влен пе­ре­клю­ча­тель для экран­ной кла­ви­ату­ры, са­ма эта кла­ви­ату­ра боль­ше не за­ни­ма­ет по­ло­ви­ну экра­на;
    • убра­на про­вер­ка под­клю­че­ния к Ин­тер­не­ту — Nobara те­перь мо­жет быть уста­но­вле­на аб­со­лют­но авто­ном­но;
  • по умол­ча­нию по­ста­вля­ет­ся откры­тый драй­вер NVIDIA;

  • сде­ла­но не­сколь­ко улуч­ше­ний в от­но­ше­нии Mesa;

  • па­кет­ный ме­нед­жер Nobara те­перь лег­ко и без проб­лем мо­жет искать/уста­на­вли­вать/уда­лять/упра­влять па­ке­та­ми flatpak;

  • улуч­шен Nobara-Updater:

( читать дальше... )

>>> Подробности

 , ,

MrCookie
()

Выложил исходники своего буллет хелла H.P.W

Статьи — Игры
Выложил исходники своего буллет хелла H.P.W

Я делаю игру на C++, в ней надо управлять НЛО-бумерангом и уворачиваться от пуль. Недавно я добавил в неё возможность создавать вырвиглазые графические плагины на Си и Цпп:

[ ! ] ЭПИЛЕПСИ ВОРНИНГ [ ! ]
Видео демонстрация эффектов

Теперь игру можно скачать на гитхабе и собрать в Линуксе, для этого найдите пакеты GCC/Clang, GLEW, GLFW3, OpenAL-soft и YAML-cpp, они есть в apt и pacman. Всё собирается - чекал на Арче, Манжаре и Убунте. Если будут какие-то ошибки можете писать тут в комменты, игра ещё в разработке.

Инфа как создавать плагины и делать палитры написана на странице проекта. В целом, можете дождаться релиза через сто лет и ничего не собирать, я сделаю билды в appimage.

 , , , ,

HPW-dev
()

Как кушать вилкой. ... или о fork() в двух словах

Статьи — Разработка

Статья о создании процессов в Linux

( читать дальше... )

 

PPP328
()

Arch Linux Openbox, Glava

Галерея — Скриншоты

Всем привет! Demo Видео.

  • Панели: tint2.
  • Gtk тема: Arc+Fantome.
  • Openbox тема: Pelangi.
  • Иконки панели: ttf-font-awesome.
  • Иконки ls: ls_extended.
  • Visualiser: Glava.
  • Лаунчер: Rofi.
  • Окна в мозайку): skippy-xd.
  • betterlockscreen.
  • Скрипт открытия termite, после отрисовки мышью: drawterm.

Обоина www.deviantart.com.

 , ,

stupid
()