Релиз Mesa 19.3.0, свободной реализации OpenGL и Vulkan

Представлен релиз свободной реализации API OpenGL и Vulkan — Mesa 19.3.0. Первый выпуск ветки Mesa 19.3.0 имеет экспериментальный статус — после проведения окончательной стабилизации кода будет выпущена стабильная версия 19.3.1. В Mesa 19.3 реализована полная поддержка OpenGL 4.6 для GPU Intel (драйверы i965, iris), поддержка OpenGL 4.5 для GPU AMD (r600, radeonsi) и NVIDIA (nvc0), а также поддержка Vulkan 1.1 для карт Intel и AMD. Вчера изменения для поддержки OpenGL 4.6 также добавлены в драйвер radeonsi, но в ветку Mesa 19.3 они не вошли.

Среди изменений:

  • Для RADV (Vulkan-драйвер для чипов AMD) предложен новый бэкенд для компиляции шейдеров «ACO«, который развивается компанией Valve в качестве альтернативы компилятору шейдеров LLVM. Бэкенд нацелен на обеспечение генерации кода, насколько это возможно оптимального для шейдеров игровых приложений, а также на достижение очень высокой скорости компиляции. ACO написан на языке С++, разрабатывается с оглядкой на возможность применения для JIT-компиляции и использует быстрые для перебора структуры данных, избегая структур на основе указателей. Промежуточное представление кода полностью основывается на SSA (Static Single Assignment) и позволяет выполнять распределение регистров, точно предварительно вычисляя регистр в зависимости от шейдера. ACO может быть активирован для GPU Vega 8, Vega 9, Vega 10 и Navi 10 через выставление переменной окружения «RADV_PERFTEST=aco»;
  • В кодовую базу включён Gallium3D-драйвер Zink, реализующий API OpenGL поверх Vulkan. Zink позволяет получить аппаратно ускоренный OpenGL при наличии в системе драйверов, ограниченных поддержкой только API Vulkan;
  • В Vulkan-драйвере ANV и OpenGL-драйвере iris реализована начальная поддержка 12 поколения чипов Intel (Tiger Lake, gen12). В ядро Linux, компоненты для поддержки Tiger Lake, включены начиная с выпуска 5.4;
  • В драйверах i965 и iris обеспечена поддержка промежуточного представления шейдеров SPIR-V, что позволило добиться в данных драйверах полной поддержки OpenGL 4.6;
  • В драйвер RadeonSI добавлена поддержка GPU AMD Navi 14 и улучшены средства ускорения декодирования видео, например, добавлена поддержка декодирования видео с разрешением 8K в форматах H.265 и VP9;
  • В Vulkan-драйвер RADV добавлена поддержка режима защищённой компиляции, в котором запускаемые для компиляции шейдеров потоки изолируются при помощи механизма seccomp. Режим включается при помощи переменной окружения RADV_SECURE_COMPILE_THREADS;
  • В драйверах для чипов AMD задействован появившийся в модуле ядра AMDGPU программный интерфейс для сброса GPU;
  • Проведена работа по повышению производительности на системах с APU AMD Radeon. Также повышена производительность Gallium3D-драйвера Iris для GPU Intel;
  • В Gallium3D-драйвере LLVMpipe, обеспечивающем программную отрисовку, появилась поддержка вычислительных шейдеров;
  • Система кэширования шейдеров на диске оптимизирована для систем, включающих больше 4 ядер CPU;
  • Обеспечено применение системы сборки Meson для компиляции в Windows с использованием MSVC и MinGW. Использование для сборки scons объявлено устаревшим для систем, отличных от Windows;
  • Реализовано EGL-расширение EGL_EXT_image_flush_external;
  • Добавлены новые расширения OpenGL:
  • В Vulkan-драйвер RADV (для карт AMD) добавлены расширения:
  • В Vulkan-драйвер ANV (для карт Intel) добавлены расширения:

Дополнительно можно отметить публикацию компанией AMD документации по архитектуре команд APU «Vega» 7nm на базе микроархитектуры GCN (Graphics Core Next).

Источник: opennet.ru

Добавить комментарий