13 марта 2019 состоялся релиз Mesa 19.0.0 - свободной кроссплатформенной реализации OpenGL, OpenGL ES, OpenCL, OpenMAX, VDPAU, VA API, XvMC и Vulkan. Данный релиз экспериментальный, после стабилизации кода будет выпущен стабильный релиз 19.0.1.
Доступен новый выпуск DXVK — транслятора из Direct3D 10/11 в Vulkan. Данная библиотека позволяет запускать в Wine множество современных игр, написанных с использованием Direct3D 10/11, с минимальными потерями в производительности.
Неким felixdoerre был разработан primus-vk — прослойки для запуска Vulkan-приложений при использовании Bumblebee для работы с дискретной видеокартой NVidia на ноутбуках.
Что это и зачем?
Если в вашем ноутбуке две видеокарты, одна из которых nVidia с проприетарным драйвером — для запуска приложений на дискретной видеокарте используется Bumblebee. К сожалению, Vulkan-приложения (в т.ч. DXVK) не работают с Bumblebee, а его разработка прекращена, поэтому единственным вариантом запустить Vulkan-приложение на дискретной видеокарте был запуск отдельного X-сервера на nVidia, что было не совсем удобно (необходимость переключения в другой VT и запуска отдельной графической сессии). С помощью primus-vk можно запустить Vulkan-приложения, используя optirun, без необходимости запуска отдельного X-сервера.
Производительность
В последнем релизе производительность приблизилась к той, что можно получить запуская отдельный X-сервер на дискретной видеокарте.
Установка и запуск
Инструкция по сборке и установке доступна хдесь. Для запуска Vulkan-приложения необходимо установить переменную окружения ENABLE_PRIMUS_LAYER=1 и PRIMUS_VK_MULTITHREADING=1. К примеру, для запуска игры в Wine (используя DXVK):
Доступен новый выпуск DXVK — транслятора из Direct3D 10/11 в Vulkan. Данная библиотека позволяет запускать в Wine множество современных игр, написанных с использованием Direct3D 10/11, с минимальными потерями в производительности.
Наиболее важные изменения
Реализована поддержка Stream Output (#695, #135). Это исправляет проблемы с рендерингом во многих играх. Благодаря этому изменению исправлено отображение персонажей или NPC в играх на базе движка Unity и в The Witcher 3, исправлен Nvidia Hairworks в The Witcher 3 и Final Fantasy XV, также исправлены проблемы в Quake Champions, Overwatch и в других играх.
Исправления ошибок и улучшения
Assassin's Creed Odyssey: немного уменьшена нагрузка на процессор.
Bioshock: исправлено состояние гонки в режиме D3D10 (#655).
Выпущены обновления LTS-версий проприетарных драйверов для видеокарт NVIDIA 340.107 и 390.67. Ветка 340.xx - последняя, поддерживающая GeForce 8xxx - GeForce 200 (но помимо них, эта версия поддерживает все карточки вплоть до GeForce 700 и 800M). Ветка 390.xx - последняя, поддерживающая Fermi (GeForce 400 и 500, но помимо них, драйвер поддерживает все современные видеокарты, так как этот LTS - совсем свежий).
Основные изменения:
Оба драйвера:
Добавлена поддержка X.Org X-Server ABI 24 (xorg-server 1.20)
В скрипт nvidia-bug-report.sh добавлена поддержка парсинга kern.log, являющегося лог-файлом ядра по умолчанию для большинства дистрибутивов Linux, базирующихся на Debian
Исправлен баг, происходивший в следующей ситуации: 1). X-Server сообщает версию Video Driver ABI меньше, чем 0.8. 2). Приложение производит вызов XRenderAddTraps(). Баг приводил к краху приложения.
340.107:
Драйвер 340.xx содержит два модуля ядра: собственно «nvidia» для графики, и «nvidia-uvm» (Unified Video Memory) для CUDA и OpenCL. Благодаря такому разделению можно запускать вычисления на GPU без «иксов».
К сожалению, разработчикам не удалось обеспечить сборку модуля ядра nvidia-uvm версии 340.107 для наиболее свежих ядер Linux (инсталлятор создаёт «обвязку» вокруг бинарного блоба, чтобы он работал с конкретной версией ядра Linux). В качестве временного решения проблемы, для инсталлятора теперь является штатной ситуация, когда модуль ядра «nvidia» успешно скомпилировался, а «nvidia-uvm» - нет.
390.67:
Исправлен баг, приводящий к kernel panic при использовании оборудования Quadro SDI Capture
Исправлен баг, при котором крашился KWin OpenGL композитинг при запуске некоторых OpenGL-приложений
Исправлен «intermittent crash» (что бы это значило?) при запуске Vulkan-приложений
Исправлен «intermittent crash» при запуске приложений через Wine
Исправлен баг, проявляющийся в случае низкой скорости передачи данных по DisplayPort (например, когда к одному разъёму подключено несколько устройств - стандарт это предусматривает). Баг заключается в том, что по какой-то причине не всегда включалась функция дизеринга, поддерживаемая монитором. Это приводило к появлению полос на изображении.
Доступен выпуск DXVK 0.53 - транслятора из API DirectX 11 в Vulkan. Данная библиотека позволяет запускать в Wine множество современных DirectX 11 игр, с минимальными потерями в производительности.
Проект Wine представил первый стабильный выпуск библиотеки Vkd3d 1.0 - транслятора из API DirectX 12 в Vulkan. Проект нацелен на запуск существующих D3D 12 тайтлов с минимальными потерями в производительности, а также на облегчение в их портировании. В качестве примеров работы библиотеки предлагаются «Hello Triangle» и порт glxgears на Direct3D 12. Vkd3d поддерживает множество функций Direct3D 12:
Средства для вывода графики и выполнения вычислений;
Списки команд, распределители команд и очереди команд;
Базовую поддержку непрямого вывода и подписей команд.
Помимо этого предоставляется транслятор байткода 4 и 5 моделей шейдеров в промежуточное представление SPIR-V - libvkd3d-shader. Пока в качестве встроенной библиотеки, но в будущем планируется создать публичный API, а также обеспечить поддержку Shader Model 5.1. В будущих выпусках Vkd3d разработчики планируют реализовать поддержку вычислений сложных геометрических и тесселяционных шейдеров, а также улучшить базовые методы DirectX 12.
Кристофер Шейфер (Christopher Schaefer) объявил о выходе 26-ой версии библиотеки VK9 (ранее SchaeferGL) - транслятора из API DirectX 8 и 9 в Vulkan. Данная библиотека развивается с 2016 года, но всё ещё находится в стадии активной разработки. В отличии от проекта Gallium Nine, VK9 не ограничивается одной платформой (может работать в том числе на Windows), а также не зависит от видеодрайвера (Gallium Nine работает только со свободными драйверами Mesa, в то время как VK9 поддерживает в том числе проприетарные драйверы AMD и Nvidia). Выпуск 0.26 примечателен улучшением в трансляции шейдеров, улучшением вывода отладочной информации в лог-файлы, а также различными улучшениями в поддержке 64-х битных приложений. Более подробную информацию можно найти в блоге разработчика.
Представлен проект DXUP - транслятор из Direct3D 10 в Direct3D 11 с последующим выводом через Vulkan. Данный проект преследует те же цели, что и проекты VK9 (транслятор Direct3D 9 > Vulkan) и DXVK (Direct3D 11 > Vulkan), однако вместо использования прямого обращения к Vulkan, транслирует системные вызовы DX10 в DX11, и далее, при помощи проекта DXVK, переводит их в Vulkan. Это позволяет запускать в Wine игры, использующие DirectX 10, такие как Crysis Warhead, Just Cause 2 и так далее, с минимальными потерями в производительности. При этом DXUP возможно использовать и на Windows.
Состоялся новый релиз DXVK 0.50 - транслятора DirectX 11 > Vulkan, позволяющего запустить в Wine любую современную игру, использующую DX11, практически без потерь в производительности. В новой версии:
Добавлена поддержка не родных разрешений экрана;
Добавлена поддержка вычисления вершин D3D11 при наличии соответствующего Vulkan-расширения VK_EXT_vertex_attribute_divisor;
Многочисленные оптимизации рендеринга, как общие, так и направленные на Vulkan-драйвер RADV;
Существенно улучшена производительность игр, использующих 24-битную глубину буфера, при использовании проприетарного драйвера Nvidia;
MoltenVK - это реализация API Vulkan поверх API Metal, предоставляемого в macOS и iOS вместо Vulkan и имеющего очень похожие возможности.
Ранее MoltenVK развивался как коммерческий продукт компанией The Brenwill Workshop, которая также разрабатывает MoltenGL - реализацию современных версий OpenGL поверх Metal.
В драйвер radeonsi добавлена поддержка кодирования при помощи VCN (Video Coding Engine);
В драйвер nouveau была внесена оптимизация компиляции
В драйвер i965 добавлена поддержка первого бинарного формата для расширения GL_ARB_get_program_binary;
В EGL была добавлена поддержка форматов RGBA/RGBX 1010102, а также добавлено новое расширение EGL_EXT_pixel_format_float.
Mesa 18.0.0 - последний выпуск с wayland-egl;
Драйвер i965 и anv пополнились поддержкой графической подсистемы процессоров на базе Intel Cannonlake;
В драйвере r600 реализована поддержка OpenGL 4.3 и OpenGL ES 3.1 для GPU Evergreen с блоком вычислений с двойной точностью FP64 (например, HD 5800 и HD 6900);
Из Xlib libGL удалена неполноценная реализация расширения GLX_MESA_set_3dfx_mode
В Vulkan-драйвер ANV (для карт Intel) добавлено расширение VK_EXT_external_memory_dma_buf;
AMD выпустила новый драйвер для Linux — AMDVLK. Это первый драйвер с открытым исходным кодом для карт AMD Radeon со 100% поддержкой API Vulkan 1.0. Драйвер соответствует спецификации Vulkan 1.0 и поддерживает 30 Vulkan-расширений, Radeon GPU profiler, встроенную отладку и профилирование, предварительный буфер промежуточных команд и виртуализацию SR-IOV. AMDVLK основывается на слое абстрагирования AMD Platform Abstraction Library (PAL), который переносит много общего кода драйвера между различными платформами. Драйвер поддерживает все GPU AMD Radeon, базирующиеся на архитектуре Graphics Core Next, начиная со серии Radeon HD 7000. Драйвер доступен в репозитории GPUOpen на GitHub.
Feral Interactive, британский издатель игр, занимающийся в том числе и портированием игр на GNU/Linux, объявил о релизе симулятора F1 2017.
F1 2017 — это самый современный и самый реалистичный симулятор автогонок в классе «Формула-1» на сегодняшний день. В игре представлены как команды и гонщики текущего чемпионата, так и классические автомобили прошедших дней. Кроме пилотирования, в режиме карьеры игроку придётся подбирать настройки, общаться с прессой, заниматься развитием машины и за 10 сезонов пройти долгий путь от начинающего пилота до чемпиона мира.
Интересной особенностью релиза стало также и то, что это первая игра для GNU/Linux, использующая только Vulkan. Для игры потребуется как минимум Intel Core i3-3225, 4 ГиБ ОЗУ и NVIDIA GeForce GTX 680 или AMD Radeon на GCN не ниже 1.2. Рекомендуемая конфигурация — Intel Core i5-6600K, 8 ГиБ ОЗУ и видеокарта уровня GeForce GTX 1070. С требованиями к драйверам можно ознакомиться на сайте Feral.
Приобрести игру можно в Steam и магазине Feral, на сегодняшний день цена составляет 54,99 € (1999 ₽ в РФ).
Anvil — открытая (под лицензией MIT) кроссплатформенная библиотека-обёртка над графическим API Vulkan, созданная инженерами AMD с целью сокращения времени разработки Vulkan-приложений с нуля.
Anvil имеет поддержку специфических для AMD расширений, но работает на любой реализации Vulkan.
Mesa — это реализация интерфейса OpenGL (а теперь и Vulkan) для Unix, включающая в себя как программные библиотеки, так и набор драйверов видеокарт.
В этом релизе нас ждёт огромное число улучшений, среди которых:
Драйвер Vulkan API для видеокарт Intel, начиная с Ivy Bridge;
OpenGL 4.3 для nvc0, radeonsi и i965 (Gen8+);
OpenGL ES 3.1 для nvc0 и radeonsi;
Поддержка GLVND в GLX и OpenGL;
Новый драйвер софтового рендера — SWR;
Использование DRI3 в VDPAU, OMX and VAAPI.
Обратите внимание на то, что:
Некоторые драйверы для видеокарт AMD (r300, r600 и radeonsi) требуют ядро версии 3.2 и LLVM 3.6 или выше;
Сборка SWR потребует python2, поскольку некоторые файлы нельзя распространять как часть архива.
Также новые драйверы содержат сотни улучшений, направленных на более полную реализацию API, повышение скорости и стабильности работы на самом разном оборудовании.
Новая версия утилиты от AMD для оценки производительности и отладки различных API на CPU/GPU:
OpenGL/OpenCL/Vulkan/DirectX12;
opensource;
поддержка Windows/Linux (deb/rpm/tar.gz в секции релизов на github);
кросс-платформенная удалённая оценка производительности(Win>Lin и наоборот);
режим анализа шейдеров для архитектуры(AMD'шных чипов).
Отладка OpenCL в настоящий момент работает только на AMD, UI написан на Qt (судя по возможности интеграции в VisualStudio — часть ещё и на .Net), а код backend'ов на чистом C++.
Багов пока много - из тех, что заметил - rpm инсталятор не корректно обрабатывает зависимости(на suse/42), Qt/OpenGL не заработал, а на glxgears/встроенном примере чайника выдал лишь glx функции без GL (под windows список GL функций был). часть багов, похоже, для платформ не от AMD (nvidia в моём случае, возможно из-за драйвера с GLVND). в общем, новость получилась больше о том, что утилита вышла, чем о том, что ею можно сразу пользоваться;)
Доступна бета-версия новой ветки проприетарного драйвера NVIDIA 364.12 для операционных систем GNU/Linux, FreeBSD и Solaris.
Наиболее примечательные изменения:
Добавлены EGL-расширения, необходимые для работы с Wayland и Mir.
В качестве реализации OpenGL по умолчанию задействована открытая библиотека GLVND.
Реализована начальная поддержка DRM и KMS (Direct Rendering Manager Kernel Modesetting).
Добавлен модуль ядра nvidia-drm.ko, предоставляющий поддержку PRIME и KMS.
Добавлена бибилиотека libnvidia-egl-wayland.so, позволяющая Wayland-композиторам, поддерживающим EGLDevice, EGLOutput и EGLstreams, использовать EGL-буферы совместно с Wayland-приложениями.
Добавлена поддержка API Vulkan 1.0.
Переработан необходимый для поддержки PRIME алгоритм регистрации драйвера в DRM-подсистеме ядра Linux. Как следствие, для поддержки PRIME теперь требуется версия ядра не ниже 3.13 (раньше требовалась версия не ниже 3.10).
Точность представления цветовых карт X на GeForce GPU увеличена с 8 до 11 бит.
Добавлено новое свойство RandR CscMatrix, определяющее матрицу 3x4 для преобразования цветового пространства. Матрица применяется после цветовой карты X и перед таблицей коррекции цветов. Это свойство доступно для видеокарт начиная от GF119.
Улучшена интерактивность приложений, которые используют аппаратный курсор, при активном G-SYNC.
Решена возникающая при использовании пиксельных буферов с EGL-устройством проблема, вызывающая некорректную отрисовку.
Исправлена ошибка, которая вызвала инвертирование флагов полярности HSync и VSync.
Добавлена поддержка видеокарт GeForce 920MX и 930MX.
Компания AMD начала тестирование нового проприетарного драйвера для видеокарт Radeon семейства Tonga и Fiji (архитектура GCN 1.1, 1.2+). Новый драйвер построен на гибридной технологии, в которой используется модуль ядра Linux AMDGPU, позволяющий унифицировать графический стек в свободных и проприетарных драйверах AMD. Среди основных возможностей нового драйвера:
поддержка API Vulkan;
поддержка KMS и ADF;
поддержка ускорения видео через VDPAU;
поддержка OpenGL 4.5, OpenCL 2.0 и GLX 1.4.
Из пока не реализованных возможностей,отмечаются поддержка нескольких GPU и переход в спящий режим. Также AMD работает над новой лицензией для своего драйвера, которая будет содержать меньше ограничений, чем прежняя (ограничения были связаны с поставкой в составе драйвера сторонних компонентов). Готовые пакеты сформированы для Ubuntu 14.04.