Mesa - программный рендеринг, а драйвер OpenGL - аппаратный рендеринг.
Нет. Mesa представляет собой реализацию OpenGL API с открытым исходным кодом, а также предоставляет запасной вариант программного растеризатора. Но Mesa также является основой для драйверов GPU с открытым исходным кодом для intel , radeon , radeonhd и noveau .
В каждом уроке, который я встречал, показано только, как установить Mesa. Как мне установить настоящий (аппаратно ускоренный) openGL?
OpenGL - это просто API. Это означает, что не имеет значения, какую реализацию OpenGL вы используете для разработки. Вы можете разрабатывать с Mesa, но ваша программа также будет работать с проприетарными драйверами.
Устанавливает ли заголовок установка драйвера?
Иногда. Но большинство дистрибутивов Linux препятствуют этому и принимают заголовки Mesa в качестве канонического ресурса разработки.
Если у меня есть программа, скомпилированная с mesa, нужно ли мне перекомпилировать ее, чтобы использовать преимущества аппаратного ускорения?
Нет. Если вы все сделали правильно, то есть динамически связали свой исполняемый файл с libGL.so ваша программа будет работать с любой реализацией OpenGL.
При установке драйвера установить необходимую библиотеку и заголовок, что будет с mesa?
Зависит от распределения. В некоторых дистрибутивах драйвер поставщика заменяет libGL.so, но не файлы разработки Mesa. Некоторые дистрибутивы заменяют libGL.so и заголовки. А некоторые дистрибутивы помещают реализации OpenGL в / usr / lib / opengl и предоставляют инструмент для настройки символических ссылок (Gentoo). На практике это не имеет значения.
Из последнего поста на указанном сайте: «Означает ли это, что я должен удалить пакеты mesa, если у меня установлены драйверы NVidia?»
Ваш менеджер пакетов дистрибутивов выдаст предупреждение, если это потребуется. Но, как я уже сказал: вас это не должно беспокоить, за исключением того, что реализация Mesa поддерживает только OpenGL-2.1. Но это не значит, что вы не можете скомпилировать OpenGL-3 и более поздние программы с ним. Они просто не смогут создать контекст OpenGL-3 и прервать работу с сообщением об ошибке или вернуться к OpenGL-2