История изменений
Исправление mittorn, (текущая версия) :
Я может быть возьмусь когда-нибудь за вулкановую замену glamor. В целом я знаю, как её реализовать, но это нужно много времени, а пока что я другими задачами занят.
Насчёт wayland - мне пока что не нравится ни один композитор. wlroots более менее юзабельный, но там какой-то stable api nonsense, даже не хочется лезть в код. Остальное какое-то нишевое совсем. есть mutter/kwin более-менее полноценные, но прибитые к DE, есть ещё weston, в заброшенном состоянии - какой код из него ни возьму - оказывается нерабочим совсем. Сам протокол сложный (с чем боролись - на то и напоролись) и с нуля реализовывать - наверно полгода минимум угробить - спасти иксы явно будет проще. А реально надо смотреть, каких протоколов не хватает и добавлять. Например без какого-нибудь простого draw протокола с ним работать в принципе не удобно.
У иксов тоже всё не очень хорошо.
Их текущая архитектура в виде невовместимых ddx драйверов устарела. Ты не можешь на одном screen использовать 2 разных драйвера, так что единственный способ подружить 2 несвязанных GPU - modesetting. И это притом, что в ядре для этого всего давно есть dri prime и dmabuf. Мало того, в драйвере nvidia с какой-то версии это реализовали и nvidia через dri prime может подхватывать kms дисплеи других видеокарт под иксами.
А с modesetting ты лишаешься 2д ускорения.
То есть чтобы «починить» архитектуру иксов, нужно разделить реализацию dri2/dri3/uxa и ddx драйвер, тем самым позволив modesetting использовать на каждом мониторе его драйвер. А сам modesetting будет скорее композитором, который будет читать поверхности с разных GPU и перенаправлять в эти реализации - напрямую, если они на том же GPU выполняются или же через копирование доступным способом (если копирование prime поверхности невозможно - софтовый fallback через ram буффер)
Исходная версия mittorn, :
Я может быть возьмусь когда-нибудь за вулкановую замену glamor. В целом я знаю, как её реализовать, но это нужно много времени, а пока что я другими задачами занят.
Насчёт wayland - мне пока что не нравится ни один композитор. wlroots более менее юзабельный, но там какой-то stable api nonsense, даже не хочется лезть в код. Остальное какое-то нишевое совсем. есть mutter/kwin более-менее полноценные, но прибитые к DE, есть ещё weston, в заброшенном состоянии - какой код из него ни возьму - оказывается нерабочим совсем. Сам протокол сложный (с чем боролись - на то и напоролись) и с нуля реализовывать - наверно полгода минимум угробить - спасти иксы явно будет проще. А реально надо смотреть, каких протоколов не хватает и добавлять. Например без какого-нибудь простого draw протокола с ним работать в принципе не удобно.
У иксов тоже всё не очень хорошо.
Их текущая архитектура в виде невовместимых ddx драйверов устарела. Ты не можешь на одном screen использовать 2 разных драйвера, так что единственный способ подружить 2 несвязанных GPU - modesetting.
А с modesetting ты лишаешься 2д ускорения.
То есть чтобы «починить» архитектуру иксов, нужно разделить реализацию dri2/dri3/uxa и ddx драйвер, тем самым позволив modesetting использовать на каждом мониторе его драйвер. А сам modesetting будет скорее композитором, который будет читать поверхности с разных GPU и перенаправлять в эти реализации - напрямую, если они на том же GPU выполняются или же через копирование доступным способом (если копирование prime поверхности невозможно - софтовый fallback через ram буффер)