LINUX.ORG.RU

Vulkan Api как получить картинку по dma, если dri3 в Xorg не доступно?

 , , , ,


0

2

имеется арч, gtx1650, nvidia-465 driver, xcb, c++
кодирую композитный менеджер для Xorg с использованием рендера на Vulkan API

если копировать xcb_pixmap данные с хоста в ГПУ, то это занимает 95% ЦПУ в среднем от всей проги.

можно ли использовать данные xcb_pixmap из Xorg в Vulkan API без такого лютого оверхеда от копирования?

★★

Ответ на: комментарий от X512

Вы будете переделывать открытые драйвера?

Если лично вы перепишете, то я, конечно же, за.

А так, никто это не станет делать просто потому, что легче повлиять на нвидию (что сейчас и происходит).

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

Хотя NVIDIA походу решила поддерживать и GBM тоже. Для этого GBM придётся допиливать чтобы можно было динамически загружать альтернативные реализации.

https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-GBM-Mesa-Backend-Alt

https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9902

X512 ★★ ()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от fernandos

I think (and this is me speculating) is that the reason nvidia wants to use streams is because their binary driver is very userspace-heavy. On the other hand, most of the FOSS drivers have substantial kernel components that handle buffer allocation and arbitrate between clients. For a primarily userspace driver, streams makes a lot of sense because it’s all hidden in the driver and they can put it wherever they want. For a heavily userspace driver, userspace modesetting in X also makes a lot of sense…

https://mesa-dev.freedesktop.narkive.com/qq4iQ7RR/egl-streams-trying-to-gain-some-knowledge

Получается что у драйверов NVIDIA более правильная и безопасная архитектура без кучи ядерного кода.

X512 ★★ ()

Память под твои пиксмапы кто даёт? Ты или кто-то ещё? Если ты, то выдели N HOST_VISIBLE (по дефолту, по возможности DEVICE_LOCAL WC) буферов аплода и копируй через них (через vkCmdCopyBufferToTexture или что-то в этом роде), если копировать на трансферной очереди, то dma с большой вероятностью будет работать

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

у драйверов NVIDIA более правильная и безопасная архитектура без кучи ядерного кода

Ты ведь даже понятия не имеешь, какой размер у блоба NVIDIA, который крутится в режиме ядра, да?

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

А вот насчёт этого не знаю. Сейчас все сосредоточились на Wayland и Xwayland. Последний точно поддерживает dmabuf, именно благодаря этому на блобе версии 470 должно заработать аппаратное ускорение в нём. Патчи сама Nvidia присылала.

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

Сейчас эталонной реализацией X11 признан Xwayland, как бы странно это не звучало. Конечно его нельзя использовать вне экосистемы Wayland. Но он обладает всеми возможностями для реализации zero-copy рендеринга

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

у драйверов NVIDIA более правильная и безопасная архитектура без кучи ядерного кода.

Ну всё, тикай з городу. Сейчас тебе фанаты напихают полные буфера открытых реализаций.

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

в данном контексте сомнительное твое утверждение — ибо тут используется вопросительный контекст... — если бы контекст данного слова был прилагательным (определительным) — то в таком случае да — надо было бы слитно писать.
Т.е. если бы указывалось слово «недоступный» — тут слитно надо было бы писать.

По данному поводу беспокоиться вообще не стоит, поскольку даже органы государственной власти РФ в своих оффициальных изъявлениях ошибаются — нисколько их не оправдываю, но просто иногда это является незначительной мелочью.

В моем же контексте спорное слово скорее имеет контекст наречия, нежели прилагательного (определительного)

safocl ★★ ()
Последнее исправление: safocl (всего исправлений: 2)
Ответ на: комментарий от Ford_Focus

правильность - точно нет, ибо Отец Линус сказал, что out-of-tree modules sucks

In-tree drivers sucks. Из-за этого страдают разработчики железа и используют форки старых ядер.

По хорошему в дереве исходников ядра вообще не должно никаких драйверов быть.

X512 ★★ ()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от X512

Из-за этого страдают разработчики железа и используют форки старых яде

Страдают проприетарщики с проприетарными блобами

По хорошему в дереве исходников ядра вообще не должно никаких драйверов быть

И получим венду без намека на свободные драйвера, которые могут отвалиться в любой момент, ибо девайс больше не поддерживается вендором. Зачем нам ещё одна венда?

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

так если проприетарные драйвера работают отлично — в чем их недостаток по сравнению с открытыми?
предоставили возможность делать тоже чо и с открытыми — просто другим методом — не приняла часть сообщества... и кто тут виновен то ?

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

ты не приводишь ничего.. выше не на что смотреть...
ты лишь заявляешь свое субъективное мнение без какой либо объективности.
естественно я относительно недостатка связанного со страданиями имею ввиду

safocl ★★ ()
Последнее исправление: safocl (всего исправлений: 1)
Ответ на: комментарий от safocl

ок, давай значит возьмём конкретный случай.

Есть материнка для socket am3 со встройкой geforce 6150. Или ноут с core2duo и мобильной 7300gt. Вполне себе живые юзабельные железки за пределами игр.

Расскажи, как поставить на них проприетарные драйвера, если невидео их давно дропнула, новые ядра там не поддерживаются и в репо убунты их нет?

У ati/amd и intel такой проблемы нет - весь функционал карточек той эпохи реализован в открытых драйверах, которые никто дропать не собирается. А карточки vliw-эпохи от amd даже обновления получают.

Ford_Focus ★★★★★ ()
Последнее исправление: Ford_Focus (всего исправлений: 2)
Ответ на: комментарий от safocl

и второй случай - хочу собрать новое ядро с патчами на i/o-шедулеры и oom. Как ставить проприетарные драйвера на новое ядро, если оно не поддерживается проприетарными драйверами?

Ford_Focus ★★★★★ ()