LINUX.ORG.RU

Фичреквест для драйверов Mesa.

 , ,


0

1

Есть у инвидии такая технология, называется 3D VISION, вот её описание:
https://ru.m.wikipedia.org/wiki/Nvidia_3D_Vision

В частности там написано следующее:

Эту задачу берёт на себя драйвер видеокарты, способный перехватывать вызовы графического API и отрисовывать кадры сразу с двух точек зрения (вместо одной), соответствующих глазам наблюдателя.

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

Видится мне это так, при включении функций драйвер графического API будет работать в одном из двух режимов:

режим для очков: вместо показа камеры с заданным приложением(игрой) положением(координаты, ориентация и углол обзора) из заданной точки поочерёдно смещает эту камеру в одну из двух точек со своими положением предназначенным для просмотра соответствующим глазом, при этом драйвер выдаёт сигнал синхронизации для переключения затвора. Положения, в которые смещается камера определяются относительно положения камеры заданных приложением(игрой).

Вариант для шлема: Дополнительно к камере созданной приложением создаются ещё две смещённых относительно созданной приложением камеры изображения с которых подаются на два разных видеовыхода, к которым подключены дисплеи для правого и левого глаза соответственно. Изображение с камеры созданной приложением может выводится как обычно или не расчитываться вообще и приложению выдаётся указанная в опциях статичная картинка или дублируется видеопоток от одной из камер шлемофона.

★★★★★

Насколько я знаю с opengl такое не прокатит. И даже этот 3d vision тоже хочет поддержки в ПО, а не только в драйверах.

sergej ★★★★★
()

Это уже opencv

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

Судя по тому что написано в википедии 3D Vision не требует поддержки в ПО, эта поддержка нужна только для гарантированного отсутствия редких артефактов.

В 2008 году, после выхода Windows Vista, компания полностью переписала свой стерео-драйвер под новые требования операционной системы, убрав из него поддержку всех старых игр, созданных с использованием технологий OpenGL, DirectX 8 и младше.

В общем ограничения старых игр Nvidia создала искусственно.

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

Зато опенсорц.

Игр на линуксе «нет». Так что берите протон, натягивайте туда врапперы, прогоняйте через dxvk/d9vk.

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

Это не мелкий софт, в том виде в каком я это задумал надо по крайней мере залезать в драйверы Mesa.

torvn77 ★★★★★
() автор топика

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

Нельзя.

🧱

/thread

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

Ты промахнулся мимо багтрекера mesa.

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

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

Нельзя. Технология устарела и непопулярна, протокол обмена до конца неотреверсен, у контрибуторов месы банально нет этого оборудования, в самой месе тоже полно проблем а свободных рук нет. Если ты не сделаешь, никто вместо тебя не сделает.

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

Ты адресом не ошибся, балаболка? Тут только скажут «не нужно»

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

А зачем полностью плвторять протокол, взять за основу идею и сделать всё по своему.

Ну а что до протокола то электронику можно просто заменить, там в принципе нужен только согласующая электроника с ЖК стёклами очков и сигнал для управления ей можно выводить через HAL на LPT или COM порт.

Что же до её применения к VR шлему то она вообще не имеет прецедентов, OpenVR как я понимаю устроен иначе, более сложно и в случае двуматричного шлема обязательно требует контролёр дисплеев, а в моём варианте такой контролёр не нужен.

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

Когда я вижу слово «просто», у меня дергается глаз. Нельзя просто заменить электронику. Даже если это сделать, тайминги мониторов откуда брать? У нвидии они в драйвере прописаны для всех поддерживаемых моделей, но как их расшифровать - никто пока не разобрался. Ещё раз повторюсь, если бы это было просто, кто-нибудь бы это уже сделал.

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

Ну… тем хуже для шансов реализации твоей хотелки.

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

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

Даже если это сделать, тайминги мониторов откуда брать?

Тайминги расшифровывать не нужно, надо просто
сделать юзерспейсную утилиту для трея, которая будет содержать формы/диалоги куда эти тайминги и всё другое, что потребуется пользователь будет по своему разумению вводить, а она будет введённое либо забивать в конфиг, либо создавать или менять глобальные переменные, либо в /sys/ , /proc/ записывать, а может и всё сразу.

Единственно хорошо бы сделать несколько типовых дефолтных конфигураций, ну и ДИЗАЙН форм/диалогов надо продумать так, чтобы он был удобен для тюнинга.

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

Ты тут уже нафантазировал програмно-аппаратный комплекс, который делать год. Ты и правда думаешь, что кто-то захочет этим заниматься? Причем именно в описанном тобой виде?? Опенсорс так не работает. Либо ты САМ, горя энтузиазмом, делаешь что тебе нужно, либо нанимаешь спеца за деньги, чтобы он за тебя это сделал. Нытьё на форумах не поможет.

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

Помилуй, какой комплекс?
Просто программа-трафарет для забивания ввода значений переменных и записи их куда надо после нажатия кнопки Apply.

По сложности эта утилита должна быть на уровне демонстрационно-обучающей иллюстрации к пояснениям как писать софт на соответствущем API.

Поимер работы такой утилиты, нажимаешь на иконку трея, выскакивает окно с вопросом ‘‘Имя?’’, полем ввода и кнопками ОК и Отмена. После того как ввёл Маша и нажал ОК если результат выполнения команды
env|grep ANAME
будет
ANAME=Маша.

И вся утилита будет именно такая, только параметров будет больше, ну может ещё код для проверки коректности будет, а может его и не будет.

Тоже и со шлемом, там просто два независимых монитора к которым идёт два отдельных DP кабеля, ну может ещё USB 3.0 для питания дисплея и возможно имеющихся датчиков наклона головы, которых впрочем может и не быть.

То есть основная сложность это спроектировать и создать на 3D принтере пластмассовый корпус.

То есть единственная реально сложная часть предложенного в случае шлемофона это именно создание нужной функции в драйвере Mesa.

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

либо нанимаешь спеца за деньги,

Как я понимаю специалист нужной квалификации столько денег захочет, что проще будет готовый VR комплект от valve или htc купить, они конечно в старые игры уметь не будут, но будут явно дешевле специалиста который скорее всего за время на которое его можно нанять только прототип кода сделает.
Я конечно хочу успеха СПО и удешевления VR, но не на столько чтобы несколько лет копить на найм людей с таким высоким стандартом зарплат, тем более что лично мне результат их работы не очень и нужен.

Либо ты САМ, горя энтузиазмом,

Ну зная меня это будет корявый костыльный код который и пять или более лет акурат к моменту его устаревания писать буду, если вообще напишу.

А то будет как с STM32, купил макетную плату и положил на полку.

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

Ну так учи английский, а не засоряй эфир.

t184256 ★★★★★
()
8 марта 2020 г.
Ответ на: комментарий от torvn77

Тоже и со шлемом, там просто два независимых монитора к которым идёт два отдельных DP кабеля,

К стати недавно прочитал о том, что Pimax к своему новому эксперементальному VR шлему с суперразрешением тоже два HDMI кабеля тянет.

Правда не ясно, почему именно HDMI, когда как я понимаю DP можно без использования промежуточного контроллера подключить напрямую к матрице.

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

чтобы кратко в одном прндложении

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

anonymous
()

режим для очков

вариант для шлема

Оба юзкейса если что совершенно нерабочие в реальности.

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

Мало написать запрос, надо чтобы этот запрос был понятным и убедительным, а для этого надо знать английский, а у меня с ним плохо.

На самом деле качество английского не так уж важно, гораздо важнее бюджет

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

Нет у меня бюджета, в том числе и шлем окупать жаба душит.
Вот если бы действительно кто продавал конструктор в виде отдельных и совместимых запчастей,
то вот конструктор такой я бы купил.

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

Нет у меня бюджета, в том числе и шлем окупать жаба душит.

А разработчики Mesa привыкли хорошо есть, и их время стоит наверное $150/час, если не больше

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

Вообще эту задумка как мне сейчас думается должна залегать глубже, непосредственно в драйвере и прошивке карты, так что на самом деле это надо в ROCM писать.

torvn77 ★★★★★
() автор топика
Последнее исправление: torvn77 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.