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

28 мая 2020

Wikinews-logo-ru.svg

Представлен релиз свободной реализации API OpenGL и Vulkan - Mesa 20.1.0. Первый выпуск ветки Mesa 20.1.0 имеет экспериментальный статус - после проведения окончательной стабилизации кода будет выпущена стабильная версия 20.1.1. В Mesa 20.1 реализована полная поддержка OpenGL 4.6 для GPU Intel (драйверы i965, iris) и AMD (radeonsi), поддержка OpenGL 4.5 для GPU AMD (r600) и NVIDIA (nvc0), OpenGL 4.3 для virgl (виртуальный GPU Virgil3D для QEMU/KVM), а также поддержка Vulkan 1.2 для карт Intel и AMD.

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

  • Добавлена прослойка для выбора активного устройства для API Vulkan в системах с несколькими GPU с поддержкой Vulkan, работающая по аналогии с DRI_PRIME для OpenGL. Для выбора активного драйвера и GPU предусмотрена переменная окружения MESA_VK_DEVICE_SELECT (если не установлена используется DRI_PRIME).
  • В драйверы i965 и iris для GPU Intel добавлена поддержка ожидаемых в следующем году чипов на базе новой микроархитектуры Rocket Lake.
  • В развиваемый для GPU Intel Vulkan-драйвер ANV добавлена оптимизация для чипов на базе микроархитектуры Icelake (Gen11), допускающая использование чистых цветов при текстурировании. При тестировании в Dota2 изменение позволило снизить число операций преобразования цветов на 95% и повысить производительность на 3.5%.
  • В Vulkan-драйвере ANV повышена эффективность использования кэша на системах с чипами Intel Ivybridge и Haswell. Использование тестов вычислительных функций Vulkan из набора Geekbench 5 показало прирост производительности на 330% на оборудовании Haswell GT3 (прирост за счёт того, что раньше кэш в некоторых условиях не использовался).
  • В драйверы для GPU Intel (i965, iris) добавлен режим "чёрной дыры" (OpenGL-расширение INTEL_blackhole_render), отключающий все операции рендеринга, передаваемые GPU, но сохраняющий обработку операций OpenGL.
  • Для графических чипов Intel портирована ранее добавленная для чипов AMD поддержка векторизации NIR, бестипового промежуточного представления (IR) шейдеров, нацеленного на работу на самом нижнем уровне, под GLSL IR и внутренним IR Mesa. С практической стороны за счёт более качественной оптимизации шейдеров изменение позволило поднять производительность работы OpenGL и Vulkan во многих играх на системах с GPU Intel. Например, в игре Rise of the Tomb Raider отмечается прирост производительности на 3%, а в Shadow of the Tomb Raider на 10%.
  • В бэкенд для компиляции шейдеров "ACO", который развивается компанией Valve в качестве альтернативы компилятору шейдеров LLVM, для GPU GFX9+ добавлена поддержка типа shaderInt16, позволяющего использовать 16-разрядные целые числа в коде шейдеров. Для GPU AMD Navi (GFX10) обеспечено применение движков NGG (Next-Gen Geometry) при работе с вершинными и тесселяционными шейдерами.
  • Для GPU AMD Navi 12 и Navi 14 включена поддержка режима отображаемого DCC (Delta Сolor Сompression), обеспечивающего работу со сжатыми данными цветов при организации вывода на экран.
  • Добавлена экспериментальная поддержка NIR для классического Gallium3D-драйвера R600 (AMD Radeon HD 2000-6000) с поддержкой геометрических, фрагментных, вершинных и тесселяционных шейдеров.
  • В Vulkan драйвер RADV добавлен патч за счёт оптимизации работы с памятью увеличивающий производительность игр Id Tech на системах с APU AMD.
  • В драйвере Panfrost реализована экспериментальная поддержка OpenGL ES 3.0 и обеспечена поддержка 3D-рендеринга для GPU Bifrost (Mali G31). Подготовлена начальная реализация компилятора шейдеров, поддерживающего специфичный для GPU Bifrost набор внутренних инструкций.
  • В Vulkan-драйвер TURNIP, развиваемый для GPU Qualcomm Adreno, добавлена поддержка геометрических шейдеров и чипов Adreno 650.
  • В Gallium3D-драйвере LLVMpipe, обеспечивающем программную отрисовку, появилась поддержка тесселяционных шейдеров.
  • Внесена большая порция оптимизаций в glthread (многопоточная реализация OpenGL). После внесения изменений производительность гоночного симулятора Torcs выросла на 16% в конфигурации по умолчанию и на 40% при включении glthread.
  • Добавлена опция allow_draw_out_of_orde (включается через driconf) для включения оптимизаций для ускорения операций неупорядоченной отрисовки, характерных для САПР. При включении опции в тесте Viewperf11 Catia наблюдается ускорение в 7%.
  • Добавлены новые расширения OpenGL: GL_ARB_compute_variable_group_size для i965. GL_EXT_depth_bounds_test для Iris. GL_EXT_texture_shadow_lod для radeonsi и nvc0. GL_EXT_draw_instanced для gles2. GL_NV_alpha_to_coverage_dither_control для radeonsi GL_NV_copy_image для всех gallium-драйверов. GL_NV_pixel_buffer_object для всех gallium-драйверов, а также i915, i965 и swrast. GL_NV_viewport_array2 для nvc0 (GM200+). GL_NV_viewport_swizzle для nvc0 (GM200+).
  • В Vulkan-драйвер RADV (для карт AMD) добавлены расширения: VK_AMD_memory_overallocation_behavior VK_KHR_shader_non_semantic_info VK_EXT_robustness2 VK_KHR_8bit_storage для карт GFX8+ при использовании бэкенда компиляции шейдеров "ACO" VK_KHR_16bit_storage для карт GFX8+ при использовании бэкенда компиляции шейдеров "ACO" (за исключение поддержки storageInputOutput16) VK_KHR_shader_float16_int8 для карт GFX8+ при использовании бэкенда компиляции шейдеров "ACO" (за исключение поддержки storageInputOutput16)
  • В Vulkan-драйвер ANV (для карт Intel) добавлены расширения: VK_KHR_shader_non_semantic_info VK_EXT_robustness2
 

ИсточникиПравить

Эта статья содержит материалы из статьи «Релиз Mesa 20.1.0, свободной реализации OpenGL и Vulkan», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
 

Комментарии:Релиз Mesa 20.1.0, свободной реализации OpenGL и Vulkan