Por mais de um ano, a Intel vem trabalhando no desenvolvimento do driver gráfico do kernel Xe Linux como um driver moderno do Direct Rendering Manager para Gen12 e gráficos integrados/discretos mais recentes. Para hardware recente, isso substitui o uso do driver de kernel i915 existente. Os desenvolvedores de código aberto da Intel continuam trabalhando em direção ao marco de poder enviar este driver para mainlining no kernel upstream do Linux.
Com o driver gráfico do kernel Xe, os engenheiros da Intel envolvidos puderam adotar uma nova abordagem de design em comparação com o driver do kernel i915 que foi construído organicamente nas últimas duas décadas. Com o driver Xe, eles suportam apenas Gen12 e mais recentes, para que não precisem se preocupar com as gerações mais antigas de hardware gráfico da Intel, eles podem se concentrar em usar os recursos modernos do kernel e, com sua API de espaço de usuário, não precisam preocupe-se com a compatibilidade com versões anteriores com as limitações/desafios i915 uAPI existentes.
Esta semana, os engenheiros da Intel Linux publicaram seu último plano de fusão para o driver Xe.
No momento, o driver Xe é considerado funcional e com suporte”experimental”para Tiger Lake e mais recentes. Assim que o driver for upstream no kernel, o plano é manter o suporte Gen12+ ainda em i915. O driver Xe será ativado por meio do parâmetro do módulo force_probe, enquanto é possível desabilitar o carregamento do driver i915 para uma determinada GPU. Portanto, por alguns lançamentos ou pelo tempo que leva para o driver Xe se provar, os usuários podem mudar para o Xe manualmente para ajudar a testar o suporte.
Na verdade, o plano de mesclagem observa que, para hardware Intel lançado atualmente, o i915 pode continuar sendo o padrão indefinidamente:”Para evitar regressões de espaço do usuário, o i915 continuará a oferecer suporte a todas as plataformas atuais que já estão fora dessa proteção. O suporte ao Xe será sempre experimental e dependente do uso de force_probe para essas plataformas.”
Entre os objetivos que os desenvolvedores de driver têm antes de mesclar o Xe está a classificação das alterações do agendador de DRM, alterações de mapeamento de endereço virtual da GPU a serem upstream, DRM_VM_BIND, VM_BIND assíncrono, integração do ponteiro do usuário”userptr”e suporte a VM_BIND, e lidar melhor com cargas de trabalho de computação de longa execução. Os desenvolvedores também desejam uma melhor integração/compartilhamento do código de exibição com o driver i915 e a infraestrutura devcoredump para relatar estados de erro.
Ao mesmo tempo, os engenheiros de código aberto da Intel vêm adicionando compatibilidade de driver de kernel Xe a seus drivers Mesa, bem como a sua pilha Compute-Runtime para OpenCL e Level Zero. Espera-se que a compatibilidade do driver Intel ANV Vulkan e Iris Gallium3D/OpenGL com o Xe seja corrigida para o Mesa 23.2, de modo que, uma vez que esse driver seja realmente integrado, o suporte ao espaço do usuário esteja pronto e em vigor.
Os interessados nos últimos esforços e planos de atualização do driver Xe podem ver seu plano de fusão mais recente. Esperamos conseguir ver o driver Xe integrado ao kernel do Linux-em forma experimental-ainda este ano.