Представлен релиз свободной реализации 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%.
- Внесена большая порция оптимизаций в glthread (многопоточная реализация OpenGL). После внесения изменений производительность гоночного симулятора Torcs выросла на 16% в конфигурации по умолчанию и на 40% при включении glthread.
- В бэкенд для компиляции шейдеров «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, обеспечивающем программную отрисовку, появилась поддержка тесселяционных шейдеров.
- Добавлена опция 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) добавлены расширения:
Источник: http://www.opennet.ru/opennews/art.shtml?num=53041