Izindaba zisanda kukhishwa ukuthi ukuqaliswa kokuqala komshayeli we-drm-asahi kuhlongoziwe kuma-GPU ochungechunge I-Apple AGX G13 ne-G14 isetshenziswe kuma-Apple M1 kanye ne-M2 chips ohlwini lwamakheli kanjiniyela we-Linux kernel.
Isilawuli sibhalwe ngeRust futhi, ihlanganisa iqoqo lezixhumanisi zomhlaba wonke mayelana nesistimu engaphansi ye-DRM (I-Direct Rendering Manager) engasetshenziswa ukuthuthukisa ezinye izishayeli zezithombe ku-Rust.
Isethi yesichibi esikhishiwe kuze kube manje iphakanyiswe ukuthi kuxoxwe ngayo kuphela ngabathuthukisi abayinhloko (i-RFC), kodwa ingase yamukelwe ethimbeni eliyinhloko ngemva kokuqedwa kokubuyekezwa kanye nokushiyeka okukhonjiwe kususwa.
Lena inguqulo yami yokuqala ye-Rust abstractions ye-DRM uhlelo olungaphansi. Kufaka phakathi izifinyezo ngokwazo, ezinye ezincane izinguquko ezidingekayo ohlangothini lwe-C kanye nomshayeli we-drm-asahi GPU (ukuthola inkomba yokuthi izifinyezo zisetshenziswa kanjani, kodwa hhayi ngempela okuhloswe ukuhlala ndawonye).
Lezi ziqephu zisetshenziswa phezulu kwesihlahla ku- [1], okusekelwe kuyo I-6.3-rc1 enokwesekwa okuningi kokukhipha/ukugqwala okungeziwe ngenhla. Okuningi kwalokhu akuzona izimfuneko zokukhishwa kwe-DRM. ngokwabo, kodwa kuphela kumshayeli.
Kusukela ngoDisemba, isilawuli sifakiwe iphakheji nge-kernel ngokusatshalaliswa kwe-Asahi Linux futhi ihlolwe abasebenzisi bale phrojekthi.
Umshayeli angasetshenziswa ekusatshalalisweni kwe-Linux kuya hlela indawo yezithombe ku-dAmadivayisi we-Apple ane-SoC M1, M1 Pro, M1 Max, M1 Ultra ne-M2. Lapho kuthuthukiswa umshayeli, umzamo wenziwa hhayi nje ukwandisa ukuphepha ngokunciphisa amaphutha lapho usebenza ngememori kukhodi ekhishwe ohlangothini lwe-CPU, kodwa futhi nokuvikela kancane ezinkingeni eziphakama lapho usebenzisana ne-firmware.
Ikakhulu umshayeli uhlinzeka ngezibopho ezithile zezakhiwo zememori ezabiwe okungaphephile ngezintambo eziyinkimbinkimbi zezikhombisi ezisetshenziswa ku-firmware ukuze uxhumane nesilawuli. Umshayeli ohlongozwayo usetshenziswa ngokuhambisana nomshayeli we-asahi Mesa, ohlinzeka ngosekelo lwe-OpenGL yendawo yomsebenzisi futhi uphumelele ukuhlolwa kokuhambisana kwe-OpenGL ES 2. futhi isicishe ilungele ukusekela i-OpenGL ES 3.0.
Ngesikhathi esifanayo, umshayeli osebenza ezingeni le-kernel ithuthukiswa ekuqaleni ngosekelo lwesikhathi esizayo lwe-Vulkan API engqondweni, futhi isixhumi esibonakalayo sokuhlela sokusebenzelana nesikhala somsebenzisi siklanywe nge-UAPI ehlinzekwa umshayeli omusha we-Intel Xe engqondweni.
Ngaphezulu kwe- izingqinamba ezaziwayo okulandelayo kuyashiwo:
- Ukuhlanganiswa kwe-Rust okukhona njengamanje akukusekeli okunqamulelayo kwesakhiwo njengamamojula, ngakho-ke izifinyezo ze-Rust zitholakala kuphela ezingxenyeni ze-DRM ezishumekiwe.
- I-DRM incike kakhulu kuphethini "ye-subclassing" yezinto zesilawuli, futhi lokhu akuhlalanga kahle nge-Rust.
- Njengamanje, kuphela okudingekayo kusilawuli kusetshenziswe (kanye nenani elincane le
okungeziwe okusobala lapho ubuqotho be-API obungcono bunengqondo). - drm::mm igcina idinga i-mutex eyakhelwe ku-abstraction, esikhundleni salokho
ukuze unikeze lokho kumsebenzisi ngemithetho evamile yokuguquguquka kweRust.
Lokhu kungenxa yokuthi ama-node angehliswa nganoma yisiphi isikhathi kanye naleyo misebenzi
idinga ukuvumelanisa. - Ohlangothini lwe-Mesa njengamanje unomshayeli we-Gallium osevele ekhuphuka nomfula (amabhithi e-UAPI awatholakali kakhulu) futhi
uphumelele ukuhlolwa kwe-dEQP GLES2/EGL, iningi le-GLES3.0 eliphumelele
Amagatsha aphezulu omsebenzi ayaqhubeka. Lona wubunjiniyela bokubuyela emuva komshayeli womphakathi, ngakho kuthiwa kusekuningi okusamele kwenziwe kulesi sici.
ekugcineni uma ukhona unentshisekelo yokwazi okwengeziwe ngayo, ungabheka imininingwane ku- isixhumanisi esilandelayo.