Команда разработчиков Mesa выпустила первое точечное обновление для недавно вышедшей версии 26.0. Релиз 26.0.1 носит корректирующий характер и рекомендуется к скорейшему развёртыванию для всех пользователей из-за критического исправления безопасности в реализации WebGPU.
Критическое исправление безопасности в WebGPU
Как отмечает координатор релиза Эрик Энгестрём (Eric Engestrom), версии 26.0.1 и 25.3.6 содержат исправление уязвимости, связанной с выходом за пределы памяти (out-of-bounds memory access) в компонентах WebGPU. Хотя детали уязвимости не раскрываются, пользователям настоятельно рекомендуется обновиться как можно скорее, особенно если они используют браузерные или нативные приложения, задействующие WebGPU.
Ключевые исправления в драйверах
Intel (ANV, Iris, Elk)
- ANV (Vulkan): Исправлена работа с кэшами констант для дескрипторных буферов, добавлены корректные инвалидации. Отключена поддержка модификаторов CCS на определённых версиях GTK. Устранены проблемы с перемещением (relocations) во вложенных командных буферах.
- Iris/Elk (OpenGL): Исправлена оптимизация SLM (shared local memory), вызывавшая ошибки. Внесены правки в алгоритмы распространения (propagation) инструкций cmod (conditional modify) для предотвращения некорректных оптимизаций.
AMD (RADV, RadeonSI, ACO)
- RADV (Vulkan): Исправлена установка вьюпорта для depth-stencil resolves. Устранены потенциальные повреждения данных после декомпрессии FMASK на GPU GFX6-8. Исправлены потенциальные подвисания GPU при использовании вторичных командных буферов на очереди передачи.
- ACO (компилятор): Исправлена обработка
store_scratch()на GFX6-8 при наличии вызовов функций. Устранены проблемы с hazard resolution перед вызовами. - Общий код: Исправлены свиззлы и pitch для depth-only изображений при использовании SDMA (Direct Memory Access).
Panfrost и PanVK (Arm Mali)
- PanVK (Vulkan): Исправлены дескрипторы для раздельных буферов глубины/трафарета. Улучшена загрузка выходных вложений с параметрами
LOAD_OP_NONE+STORE_OP_NONE. Добавлена защита от разыменования нулевых указателей. - Общее: Устранены ошибки в коде очистки цветов.
PowerVR (pvr)
- Исправлено выделение места для scratch-буферов тайлов. Добавлена поддержка tile-буферов в SPM EOT-программах. Устранены дубли в таблице свойств форматов. Исправлена оптимизация слияния subpass'ов, добавлена поддержка preserve attachments.
Прочие драйверы и компоненты
- Zink: Исправлено assert в компиляторе. Оптимизированы барьеры передачи.
- Lavapipe: Исправлены features для нон-субсемплированных YCbCr-форматов. Включён импорт dmabuf для планарных DRM-форматов.
- NIR: Исправлено клонирование инструкций косвенных вызовов. Замена
NIR_VLAнаSTACK_ARRAYдля безопасности стека. - Venus: Воркэраунд для бага удаления мёртвых сохранений (DSE) в GCC-15.
- Freedreno/ir3: Выравнивание per-patch вывода TCS до 64 байт для предотвращения устаревших чтений.
- Asahi/Honeykrisp: Исправлены краши в passthrough GS и инвалидация ключей. Улучшено копирование буферов.
- Mesa core: Реализован запрос внутреннего формата
FRAMEBUFFER_RENDERABLE.
Для кого это обновление?
Этот выпуск обязателен для всех пользователей Mesa 26.0 из-за исправления безопасности. Владельцы систем с GPU Intel, AMD, Arm и Imagination Technologies также получат множество стабилизирующих исправлений, которые делают графический стек ещё более надёжным. Разработчикам дистрибутивов и системным администраторам рекомендуется развернуть обновление в ближайшее время.
Полное описание анонса и исходный код Mesa 26.0.1 доступно по ссылке. Следующее корректирующее обновление ожидается через две недели, 11 марта.