xaker

Оптимизация Mesa: игры на Linux загружаются быстрее

  • вторник, 6 мая 2014 г. в 03:10:37
http://www.xakep.ru/post/62456/

Valve Software спонсировала работу по оптимизации библиотеки Mesa (свободная реализация графического API OpenGL), чтобы ускорить загрузку игр на Linux. Проект по оптимизации компилятора GLSL осуществили сотрудники компании LunarG, а 2 мая одобрен первый из 21 выпущенного ими патча. В ближайшее время будут проверены и остальные. После обновления компонентов Mesa многие игры под Linux станут значительно быстрее загружаться благодаря ускорению компиляции шейдеров. Это касается и популярных игр Dota 2 и Counter-Strike: Global Offensive.

Дело в том, что шейдеры GLSL принято хранить в виде исходных кодов для лучшей переносимости на различные аппаратные и программные платформы. Исходные коды компилируются драйвером после создания действующего контекста OpenGL. Драйвер генерирует оптимальный двоичный код для конкретного оборудования перед запуском игры.

Разработчики из LunarG реализовали для компилятора GLSL эффективную поддержку многопоточности, что существенно ускоряет компиляцию, особенно на многоядерных процессорах. Так, во время тестов на четырехъядерном процессоре при компиляции набора из 2882 шейдеров раньше компиляция занимала 54,5 секунды, а после внедрения 8-поточного процесса с новым компилятором — всего 17,8 с. Например, известная игра Dota 2 теперь загружается примерно на 20 секунд быстрее (тесты проводились на четырехъядерной системе Gigabyte Brix Pro с процессором Intel).

Valve уже включила все патчи в свою ветку SteamOS Mesa и отправит их пользователям с ближайшим обновлением SteamOS.