После трёх месяцев разработки представлен релиз свободной реализации OpenGL API - Mesa 10.4, в котором продолжена реализация новых расширений OpenGL, приближающих Mesa к появлению поддержки OpenGL 4. Поддержка OpenGL 3.3 для драйверов i965, Nouveau (nv50, nvc0), RadeonSI, r600, llvmpipe и softpipe уже реализована полностью. Первый выпуск ветки Mesa 10.4 имеет экспериментальный статус - после проведения окончательной стабилизации кода будет выпущена стабильная версия 10.4.1. Переход на нумерацию 11.0 будет проведён после реализации поддержки OpenGL 4.x в одном из драйверов, что ожидается в следующем выпуске Mesa.
Основные изменения в Mesa 10.4:
- В состав включен трекер состояний Nine, обеспечивающий поддержку API Direct3D 9 для Unix-подобных систем. В отличие от удалённого в прошлом году экспериментального трекера состояний Direct3D 10/11, Gallium Nine полностью работоспособен, обеспечивает более высокую производительность и пригоден для запуска реальных игр, таких как Star Craft 2, Skyrim, Civilization 5 и Anno 1404. Реализована поддержка как базового COM-интерфейса IDirect3DDevice9, так и интерфейса ID3DAdapter9, используемого для финального варианта IDirect3D9Ex.
При совместном использовании с Wine (требуется использование отдельных патчей), вместо штатного wined3d, новая реализация позволяет достигнуть двухкратного роста FPS в играх. Ускорение достигается за счёт реализации API Direct3D 9 непосредственно на уровне драйверов Gallium3D, без использования дополнительно транслирующей прослойки на базе OpenGL. Следует отметить, что API Direct3D 9 кардинально отличается от Direct3D 10/11, что не позволяет использовать представленный код в качестве базы для дальнейшего обеспечения поддержки Direct3D 10/11.
- Добавлена начальная реализация трекера состояний для VA-API (Video Acceleration API). VA-API представляет унифицированный интерфейс к аппаратным реализациям средств кодирования и декодирования видео, созданный компанией Intel для замены XvMC;
- Поддержка новых расширений OpenGL, определённых в стандартах OpenGL 4.x:
- GL_ARB_conditional_render_inverted для драйвера nv50
- GL_ARB_sample_shading для драйвера r600
- GL_ARB_texture_view для драйверов nv50, nvc0
- GL_ARB_clip_control для драйверов nv50, nvc0, r300, r600, radeonsi, llvmpipe, softpipe
- GL_KHR_context_flush_control для всех драйверов
- В трекер состояний Clover, нацеленный на обеспечение поддержки OpenCL и организацию выполнения вычислительных задач на стороне GPU, добавлена поддержка компиляции с нативный объектный код, а также представлена начальная реализация clCompileProgram для OpenCL 1.2;
- В драйверах r600g и radeonsi включена по умолчанию поддержка технологии HyperZ, позволяющей увеличить производительность некоторых графических карт AMD. HyperZ обеспечивает прирост производительности в 2-10%, но данный режим был ранее отключен из-за возникновения проблем с зависанием GPU, который удалось успешно решить;
- Проведена значительная работа по расширению возможностей драйвера Freedreno, в рамках которого с использованием методов обратного инжиниринга развивается открытый драйвер для графической подсистемы чипов Qualcomm Snapdragon с GPU Adreno A2xx/A3xx.
- Внесены улучшения в экспериментальный Gallium-драйвер ILO, развиваемый компанией LunarG с целью опробования новых механизмов и оптимизаций для достижения максимальной производительности для видеочипов Intel;
- Включены наработки по увеличению производительности драйверов Intel i965 и RadeonSI;
- Прекращена поддержка переменной окружения GALLIUM_MSAA, принудительно включавшей режим MSAA (Multi-Sample AntiAliasing).