Компания Intel опубликовала начальную версию нового драйвера для ядра Linux - Xe, предназначенного для использования с интегрированными GPU и дискретными видеокартами на базе архитектуры Intel Xe, которая используется в интегрированной графике начиная с процессоров Tiger Lake и в отдельных видеокартах семейства Arc. В качестве цели разработки драйвера названо предоставление основы для обеспечения поддержки новых чипов, не привязанной к коду для поддержки старых платформ. Также заявлено более активное совместное использование кода Xe с другими компонентами подсистемы DRM (Direct Rendering Manager).
Код изначально рассчитан на поддержку различных аппаратных архитектур и доступен для тестирования на системах x86 и ARM. Реализация пока рассматривается как экспериментальный вариант для обсуждения разработчиками, ещё не готовый для интеграции в основной состав ядра. Работа над старым драйверов i915 не останавливается и его сопровождение будет продолжаться. Довести новый драйвер Xe до готовности планируется в течение 2023 года.
В новом драйвере большая часть кода для взаимодействия с экранами, заимствована из драйвера i915 и в дальнейшем разработчики планируют обеспечить совместное использование данного кода в обоих драйверах, чтобы избежать дублирования типовых компонентов (сейчас подобный код просто пересобирается два раза, но обсуждаются альтернативные варианты совместного использования кода). Модель памяти в Xe во многом близка к реализации модели памяти i915, а реализация execbuf очень походит на execbuf3 из кода i915.
Для обеспечения поддержи графических API OpenGL и Vulkan помимо драйвера для ядра Linux проектом также подготовлены изменения для работы Mesa-драйверов Iris и ANV через модуль Xe. В текущем виде связка Xe с Mesa уже достаточно развита для запуска GNOME, браузеров и игр на базе OpenGL и Vulkan, но пока отмечаются отдельные проблемы и ошибки, среди прочего приводящие к аварийным завершениям работы. Также пока не проводилась работа по оптимизации производительности.
// cc-by opennet.ru
// converted with crypt’s opennet autoreposter
>>> Подробности