Выпуск Mesa 19.1.0, свободной реализации OpenGL и Vulkan

Опубликован релиз свободной реализации API OpenGL и Vulkan — Mesa 19.1.0. Первый выпуск ветки Mesa 19.1.0 имеет экспериментальный статус — после проведения окончательной стабилизации кода будет выпущена стабильная версия 19.1.1. В Mesa 19.1 предоставляется полная поддержка OpenGL 4.5 для драйверов i965, radeonsi и nvc0, поддержка Vulkan 1.1 для карт Intel и AMD, а также частичная поддержка стандарта OpenGL 4.6.

Наиболее заметные изменения:

  • В состав включён разработанный в компании Intel новый драйвер Iris. В отличие от i965 новый драйвер основан на архитектуре Gallium3D, выносящей задачи управления памятью на сторону DRI-драйвера в ядре Linux и предоставляющей готовый трекер состояний с поддержкой кэша повторного использования выводимых объектов. Новый драйвер поддерживает только GPU на базе микроархитектуры Gen8+ (Broadwell, Skylake) c GPU HD, UHD и Iris.

    В тестах производительности драйвер Iris от 3 до 15 раз обгоняет i965, в зависимости от режима тестирования. В среднем Iris демонстрирует отрисовку в 5.45 раз большего числа объектов в секунду, чем драйвер i965. При выполнении реальных программ прирост не столь внушителен (в одной из демонстраций прирост около 19%, а в некоторых демонстрациях примерно равен i965).

  • В классическом драйвере i965 расширена поддержка чипов Gen 11 и добавлена поддержка графической подсистемы SoC Elkhart Lake;
  • В состав включён драйвер Lima для GPU Mali 400/450, применяемого во многих старых чипах на основе архитектуры ARM.
  • Добавлен драйвер Panfrost для GPU на базе микроархитектур Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) и Bifrost (Mali G3x, G5x, G7x), используемых на многих устройствах с процессорами ARM.
  • В драйвер RADV (Vulkan-драйвер для карт AMD) добавлена поддержка технологии VESA Adaptive-Sync (FreeSync), позволяющей адаптивно менять частоту обновления монитора для обеспечения плавного вывода и отсутствия разрывов;
  • Добавлен новый Vulkan-драйвер TURNIP для GPU Qualcomm Adreno;
  • В драйвер Softpipe (программный растеризатор на базе Gallium3D) добавлена поддержка расширений OpenGL 4: ARB_gpu_shader5, ARB_ES3_1_compatibility, OES_geometry_shader, OES_primitive_bounding_box, OES_texture_cube_map_array и OES_viewport_array. До полной поддержки OpenGL 4.0 остаётся реализовать расширения GL_ARB_gpu_shader5, GL_ARB_sample_shading и GL_ARB_tessellation_shader;
  • Добавлена поддержка формата сжатия текстур ATC, используемого в GPU Qualcomm и AMD;
  • Увеличена производительность трекера состояний Gallium Nine, обеспечивающего поддержку API Direct3D 9 для Unix-подобных систем и обычно применяемого для запуска Windows игр с исполльзованием Wine;
  • Добавлены новые расширения OpenGL:
    • GL_ARB_parallel_shader_compile для всех драйверов;
    • GL_EXT_gpu_shader4 для всех драйверов с поддержкой GL 3.1;
    • GL_EXT_shader_image_load_formatted для драйвера radeonsi;
    • GL_EXT_texture_buffer_object для всех драйверов с поддержкой GL 3.1;
    • GL_EXT_texture_compression_s3tc_srgb для драйверов на базе архитектуры Gallium и драйвера i965;
    • GL_NV_compute_shader_derivatives для драйверов Iris и i965;
    • GL_KHR_parallel_shader_compile для всех драйверов;
    • GL_INTEL_conservative_rasterization для драйвера Iris.
  • В Vulkan-драйвер ANV (для карт Intel) добавлены расширения:
    • VK_EXT_buffer_device_address
    • VK_EXT_depth_clip_enable
    • VK_KHR_ycbcr_image_arrays
    • VK_EXT_inline_uniform_block
    • VK_EXT_external_memory_host
    • VK_EXT_host_query_reset
    • VK_KHR_surface_protected_capabilities
    • VK_EXT_pipeline_creation_feedback
    • VK_NV_compute_shader_derivatives
    • VK_KHR_shader_float16_int8
    • VK_KHR_shader_atomic_int64
    • VK_EXT_descriptor_indexing
    • VK_EXT_memory_budget
  • В Vulkan-драйвер RADV (для карт AMD) добавлен набор расширений:
    • VK_EXT_buffer_device_address
    • VK_EXT_depth_clip_enable
    • VK_EXT_inline_uniform_block
    • VK_EXT_host_query_reset
    • VK_KHR_surface_protected_capabilities
    • VK_EXT_pipeline_creation_feedback
    • VK_KHR_8bit_storage
    • VK_AMD_gpu_shader_int16
    • VK_AMD_gpu_shader_half_float
    • VK_KHR_shader_float16_int8

Дополнительно можно отметить добавление в ветку, которая ляжет в основу выпуска Mesa 19.2, реализации расширения GL_KHR_robustness для Gallium3D драйвера R600, которое было последним недостающим звеном для обеспечения поддержки OpenGL 4.5. Таким образом R600 стал четвёртым драйвером Mesa с поддержкой OpenGL 4.5. Поддержка OpenGL 4.5 в R600 доступна только для GPU Radeon HD 5800/6900.

© OpenNet