Релиз 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 они не вошли.

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

  • Для Vulkan-драйвера RADV (для чипов AMD) предложен новый бэкенд для компиляции шейдеров «ACO», который развивается компаний Valve в качестве альтернативы компилятору шейдеров из AMDGPU. Бэкенд нацелен на обеспечение генерации кода, насколько это возможно оптимального для шейдеров игровых приложений, а также на достижение очень высокой скорости компиляции. ACO написан на языке С++, разрабатывается с оглядкой на возможность применения для JIT-компиляции и использует быстрые для перебора структуры данных, избегая структур на основе указателей. Промежуточное представление кода полностью основывается на SSA (Static Single Assignment) и позволяет выполнять распределение регистров, точно предварительно вычисляя регистр в зависимости от шейдера. ACO может быть активирован для GPU Vega 8, Vega 9, Vega 10 и Navi 10 через выставление переменной окружения «RADV_PERFTEST=aco»;
  • В кодовую базу включён Gallium-драйвер Zink, реализующий API OpenGL поверх Vulkan. Zink позволяет получить аппаратно ускоренный OpenGL при наличии в системе драйверов, ограниченных поддержкой только API Vulkan;
  • В драйвер 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;
  • В Vulkan-драйвер ANV и OpenGL-драйвер iris реализована начальная поддержка 12 поколения чипов Intel (Tiger Lake, gen12). В ядро Linux, компоненты для поддержки Tiger Lake, включены начиная с выпуска 5.4;
  • В драйверах i965 и iris обеспечена поддержка промежуточного представления шейдеров SPIR-V, что позволило добиться в данных драйверах полной поддержки OpenGL 4.6;
  • Обеспечено применение системы сборки Meson для компиляции в Windows с использованием MSVC и MinGW. Использование для сборки scons объявлено устаревшим для систем, отличных от Windows;
  • Реализовано EGL-расширение EGL_EXT_image_flush_external;
  • Добавлены новые расширения OpenGL:
    • GL_ARB_gl_spirv для драйверов i965 и iris;
    • GL_ARB_spirv_для драйверов i965 и iris;
    • GL_EXT_demote_to_helper_invocation для драйверов i965 и iris;
  • В Vulkan-драйвер RADV (для карт AMD) добавлены расширения:
    • VK_ANDROID_external_memory_android_hardware_buffer
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_KHR_shader_clock
    • VK_KHR_shader_float_controls
    • VK_KHR_spirv_1_4
    • VK_KHR_timeline_semaphore
    • VK_EXT_texel_buffer_alignment
  • В Vulkan-драйвер ANV (для карт Intel) добавлены расширения:
    • VK_INTEL_performance_query
    • VK_KHR_vulkan_memory_model
    • VK_EXT_shader_subgroup_ballot
    • VK_EXT_shader_subgroup_vote
    • VK_KHR_spirv_1_4
    • VK_KHR_shader_clock
    • VK_KHR_shader_float_controls



Источник: http://www.opennet.ru/opennews/art.shtml? num=52024

© OpenNet