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 без такого лютого оверхеда от копирования?

★★

Последнее исправление: safocl (всего исправлений: 1)

ты разве не в курсе, что давно идёт срач насчёт отсутствия gbm на блобе хуанга?

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

ты разве не в курсе, что давно идёт срач насчёт отсутствия gbm на блобе хуанга?

Может оно и не нужно и в остальных драйверах надо тоже сделать через EGLStreams?

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

тоесть в настоящий момент никаким образом то, что я хочу сделать не реализоватьс nvidia проприетарными драйверами?

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

так в том то и дело, что я получаю pixmap из xorg — которые получаются от других приложений.

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

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

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

тоесть на данный момент нормальный композитный менеджер с vulkan-рендерером возможен только на свободных драйверах, в которых реализована возможность dri3?

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

Открытые драйверы можно переделать, а закрытые – нет.

драйверы v4l2 тоже переделать потому что ?

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

Да. Именно поэтому OpenGL'ные композиторы на Nvidia дают дичайшую задержку, что выражается даже в перетаскивании окна будто через желе.

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

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

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

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

печальная грустня...
надо переделывать реализацию xorg полностью, что бы можно было делать модно молодежно?

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

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

Sunderland93 ★★★★★
()

как думаете — VK_EXT_external_memory_host расширение способно решить мою задачу?
вроде тут можно любую память с {HOST_VISIBLE} связать с поинтером хоста.

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

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

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

Но он обладает всеми возможностями для реализации zero-copy рендеринга

думаю это из-за использования EGL вместо прямого использования openGL* API

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

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

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

devl547 ★★★★★
()

Начнём с того, что недоступно пишется слитно. Проведите, пожалуйста работу над ошибками, чтобы впредь так откровенно не лажать.

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

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

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

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

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

он тебе про архитектуру, а не про мнение нулёвого в вопросе лецензие-пердоли линуса

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

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

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

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

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

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

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

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

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

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

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

а должны?? или это просто твоя ненависть?

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

проприетарщики амд с проприетарными блобами себя нормально чувствуют

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

ещё один хейтер амд. вот из-за вас таких и не бывает хороших вещей

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

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

safocl ★★
() автор топика
Ответ на: комментарий от 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 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.