Релиз Mesa 20.1.0, свободной реализации OpenGL и Vulkan
28 мая 2020 года
Представлен релиз свободной реализации 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
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.