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

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

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

  • В состав включена библиотека libdxtn с реализацией механизма сжатия текстур S3TC (S3 Texture Compression), на который истёк срок действия патентов. Расширения GL_EXT_texture_compression_s3tc и GL_ANGLE_texture_compression_dx теперь по умолчанию включены для поддерживающих их драйверов;
  • В драйверах i965, nouveau (nvc0) и radeonsi проведена работа по реализации поддержки недостающих расширений, связанных со стандартом OpenGL 4.6. Полная поддержка OpenGL 4.6 пока не достигнута ни в одном из драйверов, главным образом из-за отсутствия расширений GL_ARB_gl_spirv и GL_ARB_spirv_extensions;
  • В драйвере etnaviv (GPU Vivante GCxxx) полностью реализованы все возможности OpenGL 2.1;
  • В драйвер radeonsi добавлена экспериментальная поддержка плоского бестипового промежуточного представления NIR, похожего на TGSI (Tungsten Graphics Shader Infrastructure) и Mesa IR, но работающее на самом нижнем уровне, под GLSL IR и внутренним IR Mesa. Добавлена серия оптимзаций, нацеленных на увеличение производительности различных игр;
  • Проведена оптимзация и расширены возможности процесса glthread (многопоточная реализация OpenGL). При тестировании glthread на системе с GPU Radeon R9 270 и CPU Core i5 отмечается увеличение FPS в игре Outlast на 10–20%. Расширен белый список игр, которые без проблем можно использовать с mesa_glthread;
  • Добавлена начальная поддержка сборочной системы Meson, на которую переходит GTK+ и GNOME;
  • Для устройств Radeon GFX9+ добавлена поддержка геометрических и тесселяционных шейдеров;
  • Добавлены новые расширения OpenGL:
    • GL_ARB_indirect_parameters в i965/gen7+
    • GL_ARB_polygon_offset_clamp в i965, nv50, nvc0, r600, radeonsi, llvmpipe, swr
    • GL_ARB_transform_feedback_overflow_query в radeonsi
    • GL_ARB_texture_filter_anisotropic в i965, nv50, nvc0, r600, radeonsi
    • GL_EXT_memory_object в radeonsi
    • GL_EXT_memory_object_fd в radeonsi
  • Добавлены новые расширения EGL:
    • EGL_ANDROID_native_fence_sync в radeonsi
    • EGL_IMG_context_priority в i965
  • В Vulkan-драйверы RADV (для карт AMD) и ANV (для карт Intel) добавлен набор расширений Vulkan.

    В ANV:

    • VK_ANDROID_native_buffer
    • VK_KHR_bind_memory2
    • VK_KHR_external_fence
    • VK_KHR_external_fence_capabilities
    • VK_KHR_external_fence_fd
    • VK_KHR_external_semaphore
    • VK_KHR_external_semaphore_capabilities
    • VK_KHR_external_semaphore_fd
    • VK_KHR_image_format_list
    • VK_KHR_maintenance2
    • VK_KHR_relaxed_block_layout
    • VK_KHR_sampler_ycbcr_conversion
    • VK_EXT_debug_report

    В RADV:

    • VK_KHR_bind_memory2
    • VK_KHR_dedicated_allocation
    • VK_KHR_external_memory
    • VK_KHR_external_memory_capabilities
    • VK_KHR_external_memory_fd
    • VK_KHR_external_semaphore
    • VK_KHR_external_semaphore_capabilities
    • VK_KHR_external_semaphore_fd
    • VK_KHR_get_memory_requirements2
    • VK_KHR_image_format_list
    • VK_KHR_maintenance2
    • VK_KHR_relaxed_block_layout
    • VK_KHR_storage_buffer_storage_class
    • VK_KHR_variable_pointers
    • VK_KHX_multiview
    • VK_EXT_debug_report
    • VK_EXT_global_priority
    • VK_AMD_draw_indirect_count
    • VK_AMD_rasterization_order
Проверена оптимизация производительности драйвера RADV, в том числе реализован отдельный дисковых кэш.

© OpenNet