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

После трёх месяцев разработки представлен релиз свободной реализации OpenGL API — Mesa 10.6, в котором продолжена реализация новых расширений OpenGL, приближающих Mesa к появлению поддержки OpenGL 4. После реализации поддержки OpenGL 4.x в одном из драйверов будет подготовлен выпуск Mesa 11.0. В настоящее время в драйверах i965, Nouveau (nv50, nvc0), RadeonSI, r600, llvmpipe и softpipe обеспечена полная поддержка OpenGL 3.3. Первый выпуск ветки Mesa 10.6 имеет экспериментальный статус — после проведения окончательной стабилизации кода будет выпущена стабильная версия 10.6.1. В разработке нового выпуска приняли участие около 100 разработчиков, которые внесли в кодовую базу более 2000 изменений, значительно продвинувшись в области поддержки элементов OpenGL 4.x и OpenGL ES 3.1. Из расширений GL 4.0 и GLSL 4.0 осталось реализовать только GL_ARB_shader_subroutine и GL_ARB_tessellation_shader, из GL 4.1 — GL_ARB_shader_precision, а из GL 4.2 — GL_ARB_shader_image_load_store. Работа над реализацией данных расширений уже началась.

Основные изменения в Mesa 10.6:

Во всех драйверах, поддерживающих OpenGL 2+, реализовано OpenGL-расширение GL_ARB_direct_state_access, являющееся ключевым новшеством стандарта OpenGL 4.5; В драйвере freedreno, развиваемом для Qualcomm Snapdragon с GPU Adreno A2xx/A3xx, реализован новый компилятор шейдеров. Обеспечена поддержка расширений GL_ARB_depth_buffer_float, GL_ARB_uniform_buffer_object, GL_ARB_draw_instanced, GL_ARB_instanced_arrays, GL_EXT_draw_buffers2, EGL_KHR_fence_sync, EGL_KHR_wait_sync, EGL_KHR_cl_event2 и GL_ARB_depth_clamp; В драйвере i965 значительно увеличена производительность работы с текстурами на старых GPU «Gen4». Добавлена поддержка расширений GL_ARB_clip_control, GL_ARB_gpu_shader5 (для GPU gen8+), EGL_KHR_fence_sync, EGL_KHR_wait_sync, GL_ARB_pipeline_statistics_query, GL_ARB_viewport_array, GL_AMD_vertex_shader_viewport_index (для GPU gen6); В драйвере r600 реализована возможность использования эффективного бэкенда SB для обработки геометрических шейдеров на старых GPU. Добавлена поддержка расширений GL_ARB_draw_indirect, GL_ARB_multi_draw_indirect, GL_AMD_pinned_memory; Для драйверов nv50, nvc0, r600 и radeonsi и softpipe добавлена поддержка расширений GL_ARB_pipeline_statistics_query, GL_ARB_texture_stencil8, EGL_KHR_fence_sync, EGL_KHR_wait_sync и EGL_KHR_cl_event2; В драйвер nvc0 добавлена поддержка расширений GL_AMD_performance_monitor, GL_ARB_gpu_shader_fp64 и GL_ARB_vertex_attrib_64bit; В драйвер radeonsi добавлена поддержка расширений GL_AMD_pinned_memory Во все драйверы добавлена поддержка расширений GL_ARB_program_interface_query и GL_OES_EGL_sync; В драйвер softpipe добавлена поддержка расширений GL_ARB_pipeline_statistics_query, GL_ARB_texture_stencil8, GL_ARB_gpu_shader_fp64, GL_ARB_texture_view, GL_ARB_vertex_attrib_64bit; В драйвер llvmpipe добавлена поддержка расширения GL_ARB_texture_view; В драйвер для платформы wayland добавлена поддержка технологии Render Nodes, возможность использования программной растеризации и интерфейса DRI_PRIME; Удалён классический программный растеризатор для Windows. Из SCons-сборок для Windows удалён загрузчик EGL и классический интерфейс osmesa; Удалены драйверы galahad, identity, egl_gallium и gbm_gallium; Прекращена поддержка OpenVG.

© OpenNet