Xe är den nya grafikdrivrutinen för Linux-kärnan för moderna iGPU:er och dGPU:er
Intel tillkännagav nyligen lanseringen av den första versionen av en ny drivrutin för Linuxkärnan , med kodnamnet "Xe". De uppgav att dessa nya drivrutiner är avsedda att användas med integrerade GPU:er och separata grafikkort baserade på Intels Xe-arkitektur som används i integrerade grafikkort från Tiger Lake-processorer och framåt, och utvalda grafikkort i Arc-familjen.
Målet med drivrutinsutveckling är att tillhandahålla ett ramverk för att stödja nya chip, inte knutet till kod för att stödja äldre plattformar. Mer aktiv delning av Xe-kod med andra komponenter i DRM-undersystemet (Direct Rendering Manager) tillkännages också.
Koden designades ursprungligen för att stödja olika hårdvaruarkitekturer och är tillgänglig för testning på x86- och ARM-system.
Intels Linux-grafikdrivrutintekniker har i det tysta arbetat på en ny Direct Rendering Manager-drivrutin för den nyare Gen12/Xe-grafiken och har gjort framsteg för att undvika att bära med sig det gamla i915-drivrutinens bagage.
Detta är en presentation för Xe, en ny drivrutin för Intel GPU:er som stöder båda.
integrerade och diskreta plattformar från Tiger Lake (första plattformen med Intel Xe-arkitektur). Avsikten med denna nya pilot är att ha en ny bas att arbeta från som inte hindras av äldre plattformar, samtidigt som du tar möjlighet att designa om vår controller för att öka delning i drm delsystem, som utnyttjar och låter oss bidra mer till andra Delade komponenter som TTM och drm/scheduler. Minnesmodellen är baserad på VM bind som liknar i915-implementeringen. Likaså execbuf Implementeringen för Xe är mycket lik execbuf3 på i915
Det nämns att den nuvarande implementeringen fortfarande betraktas som ett experimentellt alternativ för diskussion av utvecklare, som ännu inte är redo för integration i huvuddelen av kärnan. Arbetet med den gamla i915-kontrollern slutar inte och underhållet kommer att fortsätta. Den nya Xe-kontrollern är planerad att vara klar under 2023.
Koden är i ett skede där den redan är funktionell och erfaren
stöd för flera plattformar från och med Tiger Lake, med initialt stöd
implementerat i Mesa (för Iris och Anv, våra OpenGL- och Vulkan-drivrutiner), samt
som i NEO (för OpenCL och Level0). En Mesa MR [2] och NEO har publicerats
Implementeringen kommer att släppas offentligt i början av nästa år. Vi har även en svit. från IGT for XE som kommer att listas på IGT inom kort.
I den nya kontrollenheten är det mesta av koden för att interagera med skärmarna lånad från i915-kontrollenheten , och i framtiden planerar utvecklarna att säkerställa att denna kod delas i båda kontrollerna för att undvika dubbelarbete av typiska komponenter (för närvarande är denna kod helt enkelt ombyggd två gånger, men alternativa koddelningsalternativ diskuteras).
Minnesmodellen i Xe är mycket nära implementeringen av i915-minnesmodellen, och implementeringen av execbuf är mycket lik execbuf3 från i915-koden. För att stödja OpenGL- och Vulkan-grafik-API:erna har projektet, förutom drivrutinen för Linux-kärnan, även förberett ändringar för Iris- och ANV Mesa-drivrutinerna för att fungera genom Xe-modulen.
I sin nuvarande form är Xe-Mesa-länken redan mogen nog att köra GNOME, OpenGL och Vulkan-baserade webbläsare och spel, men det finns fortfarande några problem och bland annat buggar som gör att den kraschar. Dessutom har inget arbete med prestandaoptimering gjorts ännu.
Slutligen är det värt att nämna att Intels plan är att fortsätta arbeta med det och slå samman det med Mesa i mindre delar, men deras huvudsakliga utkast för det hela kommer att finnas kvar allt eftersom det fortskrider för att möjliggöra enklare testning.
Om du är intresserad av att lära dig mer kan du hitta detaljerna på följande länk.