programmatūra · 6 min · 17.08.2026

Intel Jay kompilators nokārto Vulkan testus uz Xe2 un Xe3 pēc 63 ielāpu partijas

14. augustā Mesa Git zarā nonāca 63 ielāpi, pēc kuriem Intel jaunais shaderu kompilators Jay nokārto Vulkan atbilstības testus (CTS) uz Xe2 un Xe3 grafikas. Aprīlī, kad Jay pirmo reizi parādījās publiski, tas kārtoja OpenGL ES 3.0 un OpenCL 3.0 atbilstības testus. Vulkan bija tukša vieta.

Kods iegāja Mesa 26.3-devel. Izstrādi vada Alyssa Rosenzweig, kas Intel Linux grafikas komandai pievienojās pērn. Pirms tam viņa vadīja Mesa draiveru darbu Asahi Linux projektā Apple Silicon čipiem un strādāja pie Valve grafikas kaudzes kā līgumdarbiniece. Par piektdienas partiju ziņo Phoronix.

Kas ir Jay un kāpēc BRW ir jāaizstāj

Jay ir SSA formā balstīts shaderu kompilators Intel grafikai. To lietos divi Mesa draiveri: Iris (Gallium3D, OpenGL) un ANV (Vulkan). Ilgtermiņā Jay pārņems BRW vietu. BRW ir Intel esošais shaderu kompilators, kas Mesa kodā sēž jau vairāk nekā desmit gadus un pie kura pieauguši visi Intel grafikas draiveru pieņēmumi.

Rosenzweig Jay apraksta kā modernu NIR aizmugures ceļu tajā pašā rindā ar AMD ACO, NVIDIA NAK un Apple AGX. Reģistru piešķiršanai Jay lieto Colombet algoritmu. Kodu no paša sākuma raksta Mesa koka iekšienē, nevis atsevišķā ārējā zarā, ko ik pa laikam pārraksta un pārmet virsū. Agrīnajā prezentācijā praktiskais mērķis bija Xe2 aparatūra, tomēr vēlākais saplūdināšanas paziņojums runā par Skylake Gen9 un jaunāku grafiku. igor’sLAB to skaidro kā atšķirību starp agrīno izstrādes fokusu un ilgtermiņa arhitektūras mērķi.

63 ielāpi un pēdējie pagaidu gabali

Piektdienas partijā ir jauna funkcionalitāte, VRT optimizācijas un kļūdu labojumi. Svarīgākais ir tas, ko Rosenzweig ierakstīja saplūdināšanas pieteikumā.

Šis saplūdināšanas pieteikums iztīra pēdējos hack - do not upstream ielāpus, ko esmu nesusi sev līdzi, tāpēc pēc tā iekļaušanas augštecē Vulkan CTS uz Xe2 un Xe3 principā tiks nokārtots.

Pirms tam Vulkan rezultātus varēja iegūt tikai ar lokāliem ielāpiem izstrādātāja darba kopijā. Tagad tos pašus rezultātus dod tas kods, kas ir publiskajā Mesa zarā. Tā ir atšķirība starp demonstrāciju un stāvokli, uz kura CI var sākt būvēt regresiju testus.

Viena atruna paliek. CTS nokārtošana izstrādes zarā nav tas pats, kas oficiāla Vulkan atbilstība: to piešķir Khronos pēc atsevišķa pieteikuma ar konkrētu draivera versiju un konkrētu aparatūru. Jay pagaidām ir pirmajā stadijā.

Ceturtais modernais aizmugures dzinis Mesa

Jay iet pēc jau pārbaudītas shēmas. Valve savulaik apmaksāja ACO izstrādi RADV draiverim, lai AMD shaderus nekompilētu ar LLVM AMDGPU aizmuguri. NVK, Mesa atvērtais Vulkan draiveris NVIDIA kartēm, lieto NAK. Asahi Linux Apple GPU draiverim ir AGX, ko rakstīja tā pati Rosenzweig. Visos trīs gadījumos rezultāts bija īsāks kompilēšanas laiks un pilnīga kontrole pār to, kā aizmugure izturas pret konkrēto aparatūru.

Intel līdz šim bija vienīgais lielais grafikas ražotājs Mesa kodā bez šāda dziņa. BRW ir vecāks par visām trim minētajām aizmugurēm. Tā struktūra radās laikā, kad Intel grafika bija integrēta un salīdzinoši vienkārša. Xe2 un Xe3 aparatūra tāda vairs nav.

Cik daudz koda tas ir

Apjomu var izmērīt. Mesa 26.2 laidiena piezīmēs ir 364 iesūtījumi ar prefiksu jay. Nosaukumi rāda, kur gājis darbs: jay/register_allocate, jay/assign_flags, jay/lower_post_ra, jay/opt_dead_code, jay/to_binary. Reģistru piešķiršana viena pati savāc desmitiem iesūtījumu.

Vairāki no tiem ir tāda līmeņa detaļas, kas parādās tikai tad, kad kompilators sāk redzēt reālus shaderus: akumulatoru lietošana atmiņas kopēšanai un maiņai, SIMD32 deswizzle labojums, predikcijas apstrāde mirušā koda dzēsējā, loģisko operāciju sapludināšana. Viens iesūtījums nes nosaukumu jay: call DCE an extra time. Tas ir kompilatora izstrādes ikdienas darbs.

Skaitļi pret BRW

Aprīļa prezentācijā Rosenzweig parādīja vienu CTS testa gadījumu. Jay tajā ģenerēja 6768 instrukcijas un patērēja 7,00 sekundes. BRW tajā pašā gadījumā izdeva 12 980 instrukcijas 19,91 sekundē. Instrukciju skaits divas reizes mazāks, kompilēšanas laiks gandrīz trīs reizes ātrāks.

Tas ir viens tests. Spēļu etalonu ar Jay vēl nav. Instrukciju skaits arī nav tas pats, kas kadru skaits sekundē. Kompilēšanas laiku izstrādātāji tomēr jūt uzreiz. Shaderu kešatmiņas uzsildīšana pēc draivera atjauninājuma iet tik ātri, cik ātri strādā kompilatora aizmugure. Tā pati aizmugure strādā arī tad, kad spēle kompilē cauruļvadus ielādes laikā.

Kad to ieslēgs lietotāji

Vēl nedrīz. Kad Jay aprīlī iegāja Mesa 26.1-devel, saplūdināšanas paziņojums tieši norādīja, ka tā nav galalietotāja funkcija. Agrīnas iekļaušanas ieguvums ir vienkāršs: Intel un Mesa izstrādātāji var Jay papildināt un pārbaudīt tieši galvenajā zarā, nevis ārpus tā. BRW joprojām ir noklusējums abos draiveros. Xe3 grafikas kartes, kas šobrīd nonāk veikalos, shaderus kompilē ar to.

Nākamais atskaites punkts ir Mesa 26.3 novembrī. Līdz tam Jay būs publiskā izstrādē septiņus mēnešus.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no programmatūrasaistītie