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

Представлен релиз свободной реализации API OpenGL и Vulkan — Mesa 18.0. С прошлого выпуска внесено около 2700 изменений от примерно 110 разработчиков. Первый выпуск ветки Mesa 18.0.0 имеет экспериментальный статус — после проведения окончательной стабилизации кода будет выпущена стабильная версия 18.0.1. В Mesa 18.0 предоставляется полная поддержка OpenGL 4.5 для драйверов i965, radeonsi и nvc0, а также частичная поддержка стандарта OpenGL 4.6.

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

  • Представлена новая сборочная система Meson;
  • В драйверах i965 и anv добавлена поддержка графической подсистемы процессоров на базе микроархитектуры Intel Cannonlake;
  • В драйвере r600 добавлена поддержка OpenGL 4.3 и OpenGL ES 3.1 для GPU Evergreen с блоком вычислений с двойной точностью FP64 (например, HD 5800 и HD 6900);
  • Для драйвера i965 реализована система кэширования шейдеров на диске, активируемый при установке переменной окружения MESA_GLSL_CACHE_DISABLE=0;
  • В драйвере i965 добавлена поддержка первого бинарного формата для расширения GL_ARB_get_program_binary;
  • Через файл конфигурации DRIRC добавлены настройки для обхода ошибок в играх и приложениях Unreal 4 Editor, Observer, Steamroll и Refunct. В белый список mesa_glthread занесена игра «Mount and Blade Warband»;
  • В драйвер nouveau внесена порция оптимизаций компиляции и улучшений;
  • В драйвер radeonsi добавлена поддержка кодирования при помощи VCN (Video Coding Engine);
  • Добавлены новые расширения OpenGL:
    • GL_ARB_shader_atomic_counters и GL_ARB_shader_atomic_counter_ops в r600/evergreen+
    • GL_ARB_shader_image_load_store и GL_ARB_shader_image_size в r600/evergreen+
    • GL_ARB_shader_storage_buffer_object в r600/evergreen+
    • GL_ARB_compute_shader в r600/evergreen+
    • GL_ARB_cull_distance в r600/evergreen+
    • GL_ARB_enhanced_layouts в r600/evergreen+
    • GL_ARB_ES3_1_compatibility в r600/evergreen+
    • GL_ARB_pipeline_statistics_query в r600/evergreen+
    • GL_ARB_shader_clock в r600/evergreen+
    • GL_ARB_shader_stencil_export в r600/evergreen+

    • GL_ARB_bindless_texture в nvc0/kepler

    • GL_ARB_draw_indirect в freedreno
    • GL_ARB_framebuffer_no_attachments в freedreno
    • GL_ARB_multi_draw_indirect в freedreno
    • GL_ARB_stencil_texturing в freedreno
    • GL_ARB_texture_gather в freedreno
    • GL_ARB_texture_stencil8 в freedreno
    • GL_NV_texture_barrier в freedreno
    • EGL_IMG_context_priority в freedreno
    • GL_EXT_disjoint_timer_query в gen6+;
  • В EGL обеспечена поддержка форматов RGBA/RGBX 1010102, добавлено новое расширение EGL_EXT_pixel_format_float. Mesa 18.0.0 является последним выпуском в котором поставляется wayland-egl (теперь предоставляется проектом Wayland);
  • В Vulkan-драйвер RADV (для карт AMD) добавлен набор расширений:
    • VK_ANDROID_native_buffer
    • VK_KHR_external_fence
    • VK_KHR_external_fence_capabilities
    • VK_KHR_external_fence_fd
    • VK_KHR_get_surface_capabilities2
    • VK_EXT_discard_rectangles
    • VK_EXT_external_memory_dma_buf
    • VK_AMD_shader_info
  • В Vulkan-драйвер ANV (для карт Intel) добавлено расширение VK_EXT_external_memory_dma_buf;
  • Из Xlib libGL удалена неполноценная реализация расширения GLX_MESA_set_3dfx_mode.

Дополнительно можно отметить выпуск проекта DXVK 0.40, нацеленного на создание реализации DXGI и Direct3D 11 поверх API Vulkan для предоставления возможности запуска 3D-приложений в Linux при помощи Wine. После доведения проекта до полнофункционального состояния, DXVK сможет использоваться в качестве основанной на Vulkan альтернативы для предоставляемой в Wine реализации D3D11, работающей поверх OpenGL. В новой версии добавлена начальная поддержка Direct3D 11.1, улучшена поддержка отложенных контекстов (Deferred Contexts), реализованы плоскости отсечения, снижена нагрузка на CPU, добавлен дисковый кэш, улучшена совместимость со спецификацией Vulkan, заявлена поддержка GPU NVIDIA Kepler / Maxwell 1.0 (GTX 600/700).

© OpenNet