Команда графики Valve под руководством Тимоти Арсери успешно объединила код для Mesa GLSL, который теперь будет конвертироваться в NIR (New Intermediate Representation) на этапе компиляции. Этот шаг завершает многоступенчатую работу, продолжавшуюся на протяжении нескольких лет, и будет представлен в релизе Mesa 24.3.
Переход к NIR
Основная цель данного обновления заключается в том, чтобы избавиться от устаревшего GLSL IR линковщика и перейти на полностью NIR-ориентированный линковщик. Это изменение не только упрощает код, но и обеспечивает более высокую производительность и поддержку для будущих разработок.
В своем запросе на объединение, Арсери отметил:
> "Это последний запрос на объединение после многих лет работы множества людей, чтобы мы пришли к этой точке. Этот набор изменений перемещает функцию glsl_to_nir() на этапе компиляции и заменяет оставшиеся части GLSL IR линковщика на полностью основанный на NIR линковщик."
Преимущества обновления
1. Чистота кода: Удаление устаревшего кода делает структуру более понятной и управляемой для текущих разработчиков Mesa, что должно упростить дальнейшую поддержку и развитие проекта.
2. Оптимизации в кэшировании шейдеров: Это обновление также открывает возможности для улучшения кэширования шейдеров, что позволит не только сохранять связанные шейдеры, но и скомпилированные шейдеры.
3. Поддержка для будущих улучшений: Направление на NIR предоставляет новый подход для интеграции будущих улучшений и может помочь в разработке новых функций и оптимизированных решений.
Ссылка: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31137