Выпуск 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
© OpenNet