The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз Mesa 24.0, свободной реализации OpenGL и Vulkan "
Отправлено Zenitur, 10-Фев-24 12:43 
Раз уж я поднял тему графического стека (а людям понравилось) - напишу ещё один комментарий. И хотя новость уже ушла с Главной и коммент всё равно никто не прочитает - мне нужно сослаться на это сообщение из комментания к новости про Palemoon.

Во времена, когда актуальными версиями OpenGL были 1.5 и 2.1.2, NVIDIA не соблюдала слишком строго спецификацию OpenGL. Причём кому-то это нравилось: люди говорили, что благодаря расхождениям со стандартами, писать код под NVIDIA проще, чем под конкурентов. "Если бы это зависело от нас, мы бы выпускали свой софт только под NVIDIA". Пример высказывания от разработчика Natural Selection 2: https://www.linux.org.ru/forum/talks/10487097

А кто-то напротив, ругал NVIDIA (примеры таких высказываний есть по той же ссылке). "Мы писали код, проверяя его на NVIDIA - а AMD он не заработал! Мы подумали, что Catalyst глючит - но оказалось, что он отработал, как надо! Это NVIDIA работает неправильно, но мы-то считали такое поведение правильным!".

В то время NVIDIA доминировала на Linux, и AMD-шники (порой справедливо) считали, что в некоторых случаях их драйвер обвиняют в глюках не потому, что глюки реально были, а потому что софтину во время разработки затачивали под NVIDIA! Кто-то даже презрительно называл их библиотеку - NVIDIAGL (привет, Quasar!), подразумевая, что из-за неточного следования стандартам это уже не OpenGL, а какая-то другая библиотека.

В драйвере 180.xx, выпущенном в 2009 году, NVIDIA реализовала поддержку OpenGL 3.0. Начиная с третьей версии, соответствие спецификациям стало строгим. Предполагалось, что юзеры рано или поздно уйдут от использования OpenGL 1.x и 2.x. Таким образом, проблема решится сама собой.

В драйвере 364.xx, выпущенном в 2016 году), NVIDIA реализовала поддержку KMS и GLVND. Благодаря GLVND, иксы теперь стали работать не с одной, а с двумя библиотеками OpenGL - что сделало возможной переключаемую (гибридную) графику. Вот только ради реализации подобной фичи, этой компании пришлось удалить все несоответствия стандартам в своей библиотеке OpenGL...

Если запустить установку с ключом --help, нам покажут опции, как установить glvnd-версию драйвера (которая строго соответствует спецификации OpenGL), а как nonglvnd (которую раньше неофициально называли NVIDIA GL). В Debian сделали два пакета libgl1-nvidia-glx-glvnd и libgl1-nvidia-glx-nonglvnd на выбор.

Для чего нужен выбор? Для того, что какой-нибудь коммерческий софт (Maya или Nuke) наверняка знал об особенностях NVIDIA OpenGL, и вставлял свои "костыли" в случае использования этого драйвера... А если применить такие костыли с glvnd-версией OpenGL jn NVIDIA, софт мог просто упасть...

В качестве примера такого софта я могу привести Compiz 0.8.8: у меня GTK2-программы под ним начали закрашиваться белым и не всегда перерисовывать окно. Надеюсь, что в актуальных версиях Compiz проблема поправлена... Также я подозреваю, что самая первая версия игры Metro: Last Light (которая была выпущена для Linux ещё до переиздания Redux) перестала запускаться (хоть я и не проверял, но мне так кажется). Дело в том, что автор порта тестил её на NVIDIA GT 640M, и включение __GL_THREADING_OPTIMIZATIONS=1 (оптимизации, появившиеся уже после релиза порта) приводило к неработоспособности игры. Значит, и glvnd данный порт может воспринять так же, раз уж он такой хрупкий и нежный.

Начиная с драйвера 440.xx, nonglvnd-версии библиотеки больше нет. Всем, у кого софт порушился в процессе переазда на glvnd, давали 5 лет, чтобы это устранить. Также из драйвера были удалены файлы gl.h, glx.h и т.д., это заголовочные файлы, которые в "десятые" и "нулевые" годы позволяли собирать софт с nonglvnd-библиотекой.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру