Как установить последний графический драйвер mesa в ubuntu 20.04 / 21.04

TDE

TDE (Trinity Desktop Environment) представляет собой рабочую среду Linux. TDE является продолжением графической оболочки KDE 3, выглядит в точности как и KDE 3.5, но эти пакеты не являются взаимозаменяемыми с KDE. Первый раз, когда вы начинаете использование TDE, то Kpersonalizer поможет вам настроить базовую настройку рабочего стола Trinity.

Debian

Чтобы установить TDE на Debian, вам нужно будет добавить репозиторий в файл sources.list:

# vim /etc/apt/sources.list
deb http://ppa.quickbuild.pearsoncomputing.net/trinity/trinity-v3.5.13/debian wheezy main
deb-src http://ppa.quickbuild.pearsoncomputing.net/trinity/trinity-v3.5.13/debian wheezy main
deb http://ppa.quickbuild.pearsoncomputing.net/trinity/trinity-builddeps-v3.5.13/debian wheezy main
deb-src http://ppa.quickbuild.pearsoncomputing.net/trinity/trinity-builddeps-v3.5.13/debian wheezy main

Теперь уже можно и установить TDE на Debian:

# apt-key adv --keyserver keyserver.quickbuild.pearsoncomputing.net --recv-keys 2B8638D0
# apt-get update && apt-get install desktop-base-trinity kde-trinity

Compiz — один из оригинальных оконных менеджеров компоновки для Window System X, который способен использовать OpenGL-ускорения. Интеграция позволяет ему работать комбинированием разных эффектов для управление окнами, например эффект минимизации и куб рабочего пространства. Compiz соответствует стандарту ICCCM он произведет замену основного Metacity в GNOME или KWin в KDE.

# echo "deb http://snapshot.debian.org/archive/debian/20120616T042917Z/ wheezy main" >> /etc/apt/sources.list
# apt-get -o Acquire::Check-Valid-Until=false update
# apt-get update
# apt-get install compiz-gtk compizconfig-settings-manager compiz-fusion-plugins-main compiz-fusion-plugins-extra -t wheezy
# compiz --replace

Вы можете настроить Compiz через CCSM утилиту (System -> Preferences -> CompizConfig).

Графическая среда — TDE готова к использованию.

Библиотека GLEW

  • Сайт проекта: http://glew.sourceforge.net/
  • В Debian/Ubuntu доступна в пакете

Запрашивать функции и проверять расширения вручную не всегда удобно. Для решения этой типовой задачи создана библиотека (сокращение от “openGL Extensions Wrapper”). С помощью макросов и отложенной загрузки адресов функций эта библиотека позволяет использовать расширения так, как будто бы никаких расширений не существует:

  • вы просто вызываете функции по имени; если функции нет, произойдёт разыменование нулевого указания
  • также вы можете использовать модифицированное имя расширения (с префиксом “GLEW_” вместо “GL_”) как целочисленную переменную со значением 0 или 1; 1 означает, что расширение есть и доступно, 0 означает, что расширения нет или оно недоступно
  • если расширение недоступно, вы не должны вызывать функции расширения, чтобы не получить разыменование нулевого указателя
  • если при создании контекста OpenGL вы потребовали и получили контекст не ниже определённой версии, то можно даже не проверять расширения, вошедшие в эту версию: они есть.

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

Библиотека GLEW требует явного вызова функции glewInit для своей инициализации. Сделать вызов следует только один раз. Чтобы не накладывать на класс лишних ограничений, нужно гарантировать, что при первом конструировании объекта функция будет вызвана, а при последующих — уже нет. Также надо установить глобальную переменную-флаг , чтобы GLEW оборачивала функции из версий OpenGL 3.x и 4.x.

Для этой цели можно использовать два подхода

  • взять из стандартного заголовка функцию std::call_once
  • завести в функции статическую переменную типа bool, которая будет устанавливаться в false в инициализаторе (который для статических переменных внутри функции вызывается ровно один раз)

В многопоточной среде было бы правильным использовать call_once, чтобы исключить возможность повторного вызова инициализации во время выполнения “glewInit” в другом потоке. Однако, ни контекст OpenGL, ни GLEW не могут использоваться из нескольких потоков одновременно. Поэтому call_once нам не потребуется, и достаточно статической переменной типа bool:

Массивы — это текстуры

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

Из этого следует важный вывод. Вершинный шейдер нам особо и не нужен. Однако без него конвейер работать не будет
и всё равно придётся какую-то заглушку ставить.

Использование текстур для хранения массивов накладывает серьёзные ограничения (которые становятся ещё более
серьёзными в урезанных ES-версиях OpenGL). Например, в OpenGL ES 2.0, который мы договорились использовать,
данные мы можем хранить максимум в виде четырёх байтов
(RGBA — красный зелёный, синий и прозрачность). Можно, конечно, выкрутиться, и как-то закодировать вещественное
число, но нужно помнить, что в шейдере эти байты будут обрабатываться независимо и придётся их декодировать
обратно. Впрочем, если мы решаем задачу цифровой обработки изображения, то это не проблема. Исходное изображение
очевидным образом используется как текстура.

У этой проблемы, конечно, есть решения. Одно из них — использовать расширения OpenGL. Как известно, у базового
OpenGL возможностей мало, но производители «железа» добавляют много новых. Все расширения зарегистрированы и
мы всегда можем проверить, поддерживает наше оборудование какое-то расширение или нет.

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

Впрочем, уже в OpenGL ES 3.0 (не говоря уж о «взрослых» OpenGL, без ES) есть поддержка чисел с плавающей точкой
в текстурах.

Интегрированные чипсеты против выделенных видеокарт

Кстати, мы уже говорили о том, как зашифровать свою флешку с помощью VeraCrypt.

Для интегрированных устройств, таких как nvidia или AMD, вы можете легко искать в Интернете по номеру модели или идентификатор pci. Все как в примере выше. Спецификации и другие детали будут доступны на веб-сайте поставщика. Также, там можно скачать самую актуальную версию драйверов для вашей графической карты.

Однако для интегрированных графических чипсетов, таких как Intel GMA, вы можете не получить достаточно информации, просто выполнив поиск по названию серии (82G35) или идентификатору pci. Серия охватывает многие аналогичные модели, в то время как идентификатор pci не может быть документирован на веб-сайте.

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

Чтобы найти модель своей материнской платы, используйте команду dmidecode или inxi.

Dmidecode

Inxi

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

Gnome

GNU Object Model Environment (Gnome) является графической оболочкой и графическим интерфейсом для пользователей, который работает поверх операционной системы компьютера для операционных систем Unix, основанных полностью на свободном программном обеспечении.

Установка

Существует 4  режима установки GNOME для Debian или Ubuntu или Mint:

1. Чтобы установить полную среду GNOME которая включает элементы, которые входят не с официального релиза:

# apt-get install gnome

2. Установка официального набора элементов для GNOME:

# apt-get install gnome-desktop-environment

3. Установка минимального набора элементов, которые необходимы для работы в среде ГНОМ:

# apt-get install gnome-core

4. Установка набора элементов GNOME вместе с  вспомогательными технологиями( например, лупа, чтение с экрана):

# apt-get install gnome-accessibility

Чтобы установить самую минимальную версию GNOME, нужно выполнить:

# apt-get install gdm gnome-panel gnome-terminal

Запустить GNOME можно следующим образом:

$ gnome-session

Чтобы начать использовать startx добавьте в файл ~/.xinitrc следующую строчку:

# vim ~/.xinitrc

exec gnome-session

Настройка

Основная настройка в ГНОМ выполняется с помощью графических программ (gnome-control-center), но если хотите настроить «тонко», то это можно сделать с использованием редактора конфигураций, такого как gconf-editor.

GDM (GNOME Display Manager)

Если есть необходимость использовать графический вход в систему, то необходимо установить GDM:

# apt-get install gdm

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

Чтобы настроить GDM нужно перейти «Меню->Система->Администрирование->Окно входа в систему», или используйте команду в консоле:

# gdmsetup

 Вам нужно включить отображение значков в меню и вы не знаете как?

Делается это следующим образом, нужно использовать gconf-editor (переходим в Приложения -> Системные -> Редактор конфигурации) и необходимо поставить галочку в /desktop/gnome/interface/menus_have_icons.

Вам нужно убрать индикатор раскладки из области уведомлений и Вы не знаете как?

Снова поможет утилита gconf-editor (переходим в Приложения -> Системные -> Редактор конфигурации) и нужно убрать галочку из /apps/gnome_settings_daemon/plugins/keyboard/active, после этого перезагружаем GNOME и индикатор исчезнет.

Графическая среда — GNOME готова к использованию.

Подробное рассмотрение кода

Каждый треугольник описывается с помощью координат трех вершин. Каждая из этих вершин по своей сути является отдельной точкой (x,y,z). Каждая точка описывается с помощью трех чисел (координат), так как в OpenGL используется трехмерное пространство координат. Для создания куба необходимо описать параметры восьми вершин.

Для иллюстрации возможности создания более сложных трехмерных объектов передняя поверхность куба создана из четырех треугольников. На Рисунке 5 показаны координаты вершин четырех треугольников передней поверхности куба. Центральная точка (0,0,-0.6) была выбрана произвольным образом. Для формирования поверхности подойдет любая точка, находящаяся на этой поверхности.

Рисунок 5. Координаты вершин треугольников передней поверхности куба

Описание параметров вершин:

На Рисунке 6 показаны координаты вершин куба для точки отсчета с координатами x=0.6, y=0.6 и z=0.6

Обратите внимание на то, что вершины на концах каждого из ребер куба имеют по две одинаковые координаты из трех.

Рисунок 6. Вершины куба

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

Описание параметров треугольников:

Треугольники строятся на основании параметров их вершин. Для построения каждого треугольника необходимо описать параметры трех вершин. Для построения каждой из поверхностей куба необходимы два треугольника за исключением передней поверхности, для построения которой были использованы четыре треугольника. Следующие команды предназначены для создания окрашенного треугольника на основе координат x, y и z.

glBegin(GL_TRIANGLES);
glColor3f(0.4, 0.0, 0.4);
        glVertex3f(-x, -y, -z);
        glVertex3f(-x, -y, z);
        glVertex3f(x, -y, z);
glEnd();

Изменение цвета фигуры:

Вы можете изменить цвет фигуры с помощью команды glColor3f(…). Команда glColor3f(…) принимает три параметра, которые представляют RGB-составляющие желаемого цвета.

Изменение перспективы:

Вы можете изменить перспективу сцены с помощью следующих команд:

glRotatef(rX, 1.0, 0.0, 0.0);
glRotatef(rY, 0.0, 1.0, 0.0);

Угол перспективы меняется в соответствии с тем, как пользователь нажимает клавиши со стрелками.

Рисование куба:

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

После того, как вы получите корректные координаты треугольников, их рисование не будет представлять особых сложностей. Рисование каждого треугольника должно начинаться с вызова команды glBegin(GL_TRIANGLES) и заканчиваться вызовом команды glEnd(). GL_TRIANGLES является идентификатором примитива OpenGL. Существуют и другие идентификаторы примитивов: GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP и GL_POLYGON. При этом в конечном счете каждый из примитивов OpenGL формируется из одного или нескольких треугольников.

Если вы рисуете фигуры с помощью треугольников (GL_TRIANGLES), порядок рисования вершин не важен

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

Использование клавиш со стрелками:

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

void keyboard(int key, int x, int y)
{
    if (key == GLUT_KEY_RIGHT)
        {
                rY += 15;
        }
    else if (key == GLUT_KEY_LEFT)
        {
                rY -= 15;
        }
    else if (key == GLUT_KEY_DOWN)
        {
                rX -= 15;
        }
    else if (key == GLUT_KEY_UP)
        {
                rX += 15;
        }

    // Запрос обновления изображения
    glutPostRedisplay();
}

Функция обратного вызова keyboard(…) зарегистрирована в рамках функции main(…) с помощью следующей строки кода:

glutSpecialFunc(keyboard);

Фрагментный шейдер

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

Нужно заметить, что значения цветовых компонент передаются в вещественном формате. То есть диапазон
0..255 отображается на 0.0..1.0. При записи результата во фреймбуфер происходит обратное преобразование.

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

Рассмотрим код шейдера.

Здесь задана средняя точность для всех вещественных переменных.

Сэмплер, связанный с нашей текстурой я назвал , хотя можно было назвать как угодно. Также здесь
снова объявлена varying-переменная . И, наконец, задан параметр . Значения всем uniform-переменным,
как уже было сказано, будут присвоены в самой программе. В шейдере же мы считаем их известными.

Сам шейдер тоже предельно прост. В первой строке функции с помощью встроенной функции
мы извлекаем цвет соответствующего текселя. Во второй, умножаем младший байт (R) на a, остальные (G, B, A) оставляем
неизменными.

Здесь нет , цвет фрагмента возвращается через встроенную переменную .

Код для вставки в программу.

Вершинный шейдер

Код вершинного шейдера можно хранить в отдельном файле. Но если код небольшой, то часто
его размещают в основной программе в виде строковой константы.

Рассмотрим код вершинного шейдера:

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

Заметьте, что нет никаких циклов. Этот код будет параллельно выполнен для каждой вершины.

Кроме определения координат вершин нам нужно сопоставить им координаты на текстуре. Тут уже придётся сделать
нехитрые вычисления. Дело в том, что диапазон координат вершин равен -1.0..1.0, а диапазон координат пикселей
текстуры (их называют текселями) — 0.0..1.0. Во второй строке функции выполняется преобразование координат.

Заметьте, что когда мы рисуем треугольник, мы задаём три вершины. Когда он растеризуется, фрагментов, конечно, будет больше трёх.
Координаты текстуры (как и другие varying-переменные) внутри треугольника будут интерполироваться между вершинами.
Так что нам не нужно будет думать какой тексель соответствует какому фрагменту.

Для вставки в главную программу оформим код в виде строковой константы.

Тип композитинга

Тип композитинга позволяет выбрать движок композитинга, XRender или OpenGL. По умолчанию используется OpenGL, который использует аппаратное ускорение. XRender доступен даже если драйвер OpenGL не установлен (например, виртуальные машины) и использует в основном центральный процессор для отрисовки. Многие эффекты не доступны с XRender.

Information
Если нет оснований для смены, то стандартный OpenGL является правильным выбором. Если OpenGL нет в наличии, имеется автоматическое переключение на XRender.

Сохранение эскизов окон

Это вряд ли окажет какое-либо влияние на производительность. Эта опция решает, как долго хранятся эскизы. Лучше всего не трогать этот параметр.

Засыпание эффектов рабочего стола для полноэкранных окон

Этот параметр влияет на производительность полноэкранных окон, таких как игры. Композитор приостанавливает работу ​​до тех пор, пока присутствует полноэкранное окно. Недостатком является то, что он вызывает мерцание, когда появляется окно поверх полноэкранного окна (например, контекстном меню) и является слишком общим. Как и в некоторых дистрибутивах (например, Kubuntu 11.04) драйвер Intel вызывает сбой при закрытии полноэкранного окна.

Если композитор должен быть отключен на время использования полноэкранного приложения, такого как игры или видео, лучше отключить композитинг либо с помощью сокращения Alt + Shift + F12 или с версии 4.7 (вышедшей в июле 2011 года) через конкретные правила окна.

Режим OpenGL

Warning
Настройка является устаревшей и была удалена в 4.7 (вышедшей в июле 2011 года). Любые настройки, за исключением стандартного «Texture from Pixmap», скорее всего, могут сломать ваш рабочий стол.

Включение прямой отрисовки

Warning
Настройка является устаревшей и была удалена в 4.8 (вышедшей в январе 2012).

Композитор самостоятельно определяет допустима ли прямая отрисовка и должна ли она быть использована. Изменение этого параметра, скорее всего сломает функциональность.

Использование VSync

VSync позволяет синхронизировать отрисовку с экрана. В случае веских оснований для изменения, этот параметр должен быть включен. Даже если этот параметр отключен, Композитор попытается использовать частоту кадров на экране и поддерживает стандартную частоту кадров 60 Гц.

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

Графическая подсистема Qt

С выходом версии 4.7 (в июле 2011 года) Compositor может использовать графическую подсистему Qt raster вместо native (X11). Это относится только к отображению декораций окон и не имеет отношения к движкам композитинга (OpenGL/XRender).

Какая графическая подсистема используется, зависит от стандартов дистрибуции. Для Композитора raster особенно рекомендуется, если используется драйвер NVIDIA.KWin всегда выберет лучшую графическую систему для выбранного композитора. Следующие общие комбинации могут быть рекомендованы:

OpenGL с raster

XRender с native

  • Нет Композитора:
    • native в случае удаленных подключений (рекомендуется оформление окон: Ноутбук)
    • raster при использовании фантазии в оформление окон (в том числе Oxygen и Plastik в 4.10 или более поздней версии)

Как включить OpenCL на Arch Linux (BlackArch) для hashcat

Включение OpenCL для NVIDIA

Удалите xf86-video-nouveau есть он есть:

sudo pacman -R xf86-video-nouveau

Установите проприетарный драйвер NVIDIA:

sudo pacman -S nvidia nvidia-utils

Установите драйвер CUDA и другие необходимые пакеты, а также hashcat:

sudo pacman -S opencl-nvidia opencl-headers cuda hashcat

Включение OpenCL для Intel

sudo pacman -S linux-firmware intel-compute-runtime pocl

Теперь проверим список устройств:

hashcat -I

Запустим бенчмарк:

hashcat -b -D 1,2 --force

Пакет beignet

beignet — это реализация OpenCL для Intel IvyBridge и Haswell iGPUs. В настоящее время этот пакет считается устаревшим и его должен заменить intel-compute-runtime. У меня в системе установить beignet, то появляется дополнительное устройство OpenCL — как на Kali Linux, где также видно 3 устройства OpenCL. Но это устройство работает нестабильно с Hashcat.

Вы можете протестировать, как себя ведёт beignet на вашей системе. Возможно, для более старых процессоров это единственная опция.

GLSL

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

Во-первых, в GLSL больше типов данных. Кроме привычных , и ( нет, так как его
точность избыточна для графики) присутствуют также:

  • , , — векторы разной длины из элементов типа .
    Их можно конструировать прямо в выражениях. Например: .
  • , , — целочисленные векторы.
  • , , — квадратные матрицы из элементов типа .

Все эти типы поддерживают поэлементное сложение, умножение и так далее. А с помощью функции можно выполнять матричное
умножение.

Можно создавать структуры и массивы. Отдельно стоит отметить тип . Это специальный объект,
который извлекает из текстуры значения по указанным координатам.

Для вещественных чисел можно задавать точность. Это может ускорить расчёты и сэкономить память.

Во-вторых, переменные могут иметь следующие квалификаторы:

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

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

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

OpenGL, mesa, gallium

mesa

  • swrast — древний и ужасный. Помогите его закопать и никогда его не используйте;
  • softpipe — медленный;
  • lvmpipe — быстрый.
  • Компания Intel работает с mesa и разрабатывает под своё железо mesa-совместимые драйверы, которые потом поставляются в составе mesa. (Использует для этого свою собственную архитектуру драйверов, к которой много вопросов у различных OpenGL-разработчиков. Например, у Blender.);
  • Открытые драйверы radeon и noveau, которые построены поверх общей архитектуры gallium.
  • набора машин состояний, реализующих какое-то конкретное API (OpenGL, GLSL, Direct3D);
  • набора преобразователей API в промежуточное представление (в так называемый Tungsten Graphics Shader Infrastructure или TGSI (для интересующихся — дословно «инфраструктура графических шейдеров «Вольфрам»);
  • бэкендов, транслирующих TGSI в команды конкретного железа.

Немного сокращений

  • GLES
    OpenGL имеет несколько разных версий для разных платформенных реализаций. GLES — одна из них. Расшифровывается, как “GL Embedded System” или “GL Embedded Subset” («встраиваемая система/подмножество GL»). Это последняя на нынешний момент попытка OpenGL выйти на рынок встраиваемых решений. iPhone поддерживает GLES версии 2.0;
  • GLX
    Внутри OpenGL не оговариваются всякие заморочки конкретных платформ и реализация доступа к поверхностям для рисования (например, системы организации оконного интерфейса). Но, к сожалению, для различных платформ необходимы биндинги для преобразования результата вызова API OpenGL к реалиям мира типа протокола X11. GLX — прослойка, предназначенная для склейки OpenGL с X11;
  • WGL
    Смотрим на предыдущий пункт, заменяем “X11” на “Windows”. Да, всё то же самое, но для операционной системы фирмы Microsoft;
  • EGL
    EGL и GLES очень часто путают в силу похожести аббревиатур. EGL — очередной антиплатформенный набор API, разрабатываемый Khronos Group (той же самой группой, которая занимается OpenGL). EGL предоставляет инфраструктурный набор для быстрой настройки приложения и инициализации сцены безотносительно платформы, на которой это приложение работает. Как и OpenGL, EGL производителе-ориентирована. По сути, это альтернатива WGL/GLX, но не очередной костыль, построенный поверх них (типа GLUT);
  • fglrx
    Когда-то fglrx’ом назывался проприетарный OpenGL-драйвер компании AMD для Xorg. Сейчас он называется “Catalyst”. Расшифровывается как “FireGL and Radeon for X”. Т.к. драйвер проприетарен, то у него есть своя собственная, закрытая, libGL.so. Я не знаю, основана ли она на mesa и представляет ли для нас интерес. На самом деле, fglrx я тут упоминаю только из-за того, что его часто путают с AIGLX или GLX из-за того, что в во всех этих аббревиатурах есть “GL” и “X”;
  • DIX, DDX
    Графическая подсистема Xorg состоит из двух частей — из DIX, которая расшифровывается, как “Driver Independent X”, и из DDX, которая, соответственно, расшифровывается, как “Driver Dependent X” («Драйверонезависимый X» и «Драйверозависимый X», соответственно). Когда мы имеем в виду драйвер Xorg, правильнее было бы говорить о драйвере DDX;
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мастер по всему
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: