Выпуск NVIDIA 361.28 с независящей от поставщика реализацией драйвера OpenGL

Компания NVIDIA представила новую стабильную ветку проприетарного драйвера NVIDIA 361.28, которая отнесена к выпускам с длительным сроком поддержки (LTS). Драйвер доступен для Linux (ARM, x86, x86_64), FreeBSD (x86, x86_64) и Solaris (x86_64).

Основные новшества:

  • Реализована новая инфраструктура для GLX- и OpenGL-драйверов NVIDIA, реализованная через независящую от поставщика драйверов прослойку GLVND (OpenGL Vendor-Neutral Driver). По предоставляемым приложениям возможностям новая библиотека GLVND (libglvnd) полностью аналогична ранее предлагаемому варианту libGL.so, но содержит только описанные в спецификации возможности OpenGL ABI, без специфичных для NVIDIA-расширений, отделяя унифицированный интерфейс OpenGL от специфичных для оборудования драйверов (выступает в форме обёртки вокруг GLX-библиотек разных вендоров). Поддерживаемый в GLVND интерфейс совместим с интерфейсами других OpenGL-драйверов для Linux, что решает проблему с сосуществованием нескольких различных OpenGL-драйверов в одной системе. Исходные тексты libglvnd открыты под лицензией BSD и не зависят от особенностей драйверов конкретных вендоров;
                        ┌──────────────────────────────────┐                  │                                  │            ┌─────┤        Application               │            │     │                                  │            │     └─────┬───────────────────┬────────┘            │           │                   │            │     ┌─────▾─────┐             │                    ┌──────────────┐            │     │           │             │                    │              │            │     │ libOpenGL │             │                    │              │            │     │           │             │                    │  X server    │            │     └─────┬─────┘             │                    │              │            │        DT_FILTER              │                    │              │            │     ┌─────▾──────────┐ ┌──────▾────────┐           │ ┌──────────┐ │            │     │                │ │               │           └─│x11glvnd  │─┘            │     │ [mapi/glapi]   ◂─▸               │             │extension │            │     │ libGLdispatch  │ │   libGLX      ├─────────────▸──────────┘            │     │                │ │               ◂──────────┬─────────────────┐            │     └───────▴────────┘ └──────▴────────┘          │                 │            │         DT_FILTER         DT_FILTER             ┌─▾─────────┐   ┌───▾────────┐            │     ┌───────┴─────────────────┴────────┐        │           │   │            │            │     │                                  │        │           │   │            │            └─────▸           libGL                  │        │ GLX_vendor│   │ GLX_vendor2│                  └──────────────────────────────────┘        │           │   │            │                                                              └───────────┘   └────────────┘    
  • Помимо GLND-библиотеки, в составе установочного пакета также оставлена и старая клиентская GLX-библиотека libGL.so, которая устанавливается по умолчанию. Добавлена возможность выбора между GLVND и не-GLVND библиотеками на этапе установки (опция »--glvnd-glx-client»). Не-GLVND вариант библиотеки может быть полезен для решения проблем с приложениями, не совместимыми с GLVND из-за зависимостей от особенностей поведения старого GLX-клиента драйвера NVIDIA, не описанных в спецификации Linux OpenGL ABI 1.0.
  • Установщик nvidia-installer обновлён для вызова ldconfig и depmod не только после установки драйвера, но и после его удаления;
  • Из состава исключена прослойка к VDPAU и библиотеки трассировки (libvdpau.so.1, libvdpau_trace.so.1). Данные компоненты являются открытым ПО и их предлагается распространять в форме отдельного пакета через штатные репозитории дистрибутивов;
  • Добавлена поддержка GPU GeForce 945A, Tesla M4, GeForce 940MX, Quadro M500M.

© OpenNet