- Valve ja Collabora työstävät avoimen lähdekoodin RADV-ajurin siirtämistä Windowsiin tarjotakseen vaihtoehdon omille ajureille.
- Projekti perustuu WDDM2-rajapinnan käänteiseen suunnitteluun kommunikoimaan AMD:n ydintilan ajurin kanssa.
- Tärkeitä virstanpylväitä on saavutettu, kuten Counter-Strike 2:n toteutus, vaikka AMD:n virallisen dokumentaation puute onkin este.
- Tämän aloitteen tavoitteena on parantaa AMD-näytönohjainten vakautta, virheenkorjausta ja suorituskykyä Windowsissa.
Olet luultavasti kuullut, että Linux on paratiisi ilmaisohjelmistojen ystäville, ja AMD-näytönohjainten saralla RADV-ajuri on ehdoton mestari. Tästä Mesaan integroidusta Vulkan-ajurista on tullut pelaajien standardi Steam Deckissä tai missä tahansa Linux-jakelussa, ja se ylittää jopa yrityksen viralliset vaihtoehdot. Mutta entä jos meillä voisi olla sama teho ja läpinäkyvyys Windowsissa? No, joukko erittäin motivoituneita ihmisiä yrittää tehdä juuri niin.
Ajatuksena ei ole hylätä jo olemassa olevia ajureita, vaan tarjota vaihtoehto. Avoimen lähdekoodin edistämistä jatkava Valve on rahoittanut Collaboran asiantuntijoita RADV:n siirtämiseen Microsoftin järjestelmään. Vaikka se saattaa tuntua mahdottomalta tehtävältä, he ovat jo onnistuneet saamaan pelit, kuten Counter-Strike 2:n, toimimaan , osoittaen, että polku, vaikka haastava, on täysin mahdollinen tarvittavalla kärsivällisyydellä.
Mitä tämä portti teknisesti ottaen sisältää?

Ongelman ymmärtämiseksi on tärkeää tietää, että ajuri jaetaan kahteen osaan: käyttäjätilaan (UMD), jossa RADV sijaitsee, ja ydintilaan (KMD), joka kommunikoi suoraan laitteiston kanssa. Windowsissa Microsoft käyttää WDDM2-nimistä rajapintaa. Keskeinen ero on se, että Windows 10:stä lähtien tämä rajapinta mahdollistaa kolmannen osapuolen ajureiden vuorovaikutuksen ytimen kanssa joustavammin kuin ennen.
Ongelmana on, että AMD pitää salaisuutensa lukkojen takana. Jotta RADV toimisi, sen on lähetettävä dataa AMD:n ytimeen, mutta tämä data koostuu läpinäkymättömistä "möykkyistä" eikä sitä ole dokumentoitu. Tämän ongelman ratkaisemiseksi Faith Ekstrand loi työkalun nimeltä wddm2-pdd-re, jonka avulla voidaan kirjata lokiin ja analysoida järjestelmäkutsuja . Tämän käänteisen suunnittelun ansiosta he pystyivät selvittämään, miten muistia pyydetään, työjonoja luodaan ja lopulta piirretään asioita näytölle.
Tien kuopat: laitteisto ja kääntäjät

Kaikki ei ole sujunut mutkattomasti. Kehittäjät ymmärsivät, etteivät kaikki näytönohjaimet ole samanlaisia; esimerkiksi päivittäminen RX 7800 XT:stä RX 7900 XT:hen aiheutti järjestelmän jatkuvaa kaatumista. Tämä pakotti heidät parantamaan virheenkorjaustyökalujaan luomalla paljon tehokkaamman WDDM2-lokikerroksen, joka paikantaa tarkasti komentojen kulun.
Lisäksi kääntäjien käsittely on todellinen päänsärky. Mesa on suunniteltu GCC:lle ja Clangille, mutta Windowsissa MSVC on hallitseva kääntäjä. Käy ilmi, että MSVC käsittelee luetteloijia eri tavalla , joskus kohdellen niitä etumerkillisinä arvoina, mikä johtaa epäsäännölliseen toimintaan, joka voi ajaa minkä tahansa ohjelmoijan hulluksi.
Pullonkaula: AMD:n läpinäkymättömyys
Jos haluamme tämän olevan jotain, mitä kuka tahansa käyttäjä voi asentaa ja käyttää ilman, että hänen tietokoneensa kaatuu, tarvitsemme vakautta. Tällä hetkellä RADV Windowsissa on hauras, koska se perustuu yksityisiin tietorakenteisiin, joita AMD voi muuttaa missä tahansa virallisessa ajuripäivityksessä ilmoittamatta kenellekään. Se on kuin yrittäisi sovittaa palapelin palan, joka muuttaa muotoaan joka viikko.
Tämän pullonkaulan ratkaisemiseksi Collabora on kiireellisesti pyytänyt AMD:tä tai Microsoftia toimittamaan dokumentoidun rajapinnan tai "shim"-kirjaston toimimaan siltana. Ilman tätä ylläpito olisi painajaista. Toinen kriittinen ongelma on kuvan esitys; tällä hetkellä he käyttävät hidasta suoritinpohjaista reittiä ja heidän on toteutettava DXGI-vaihtoketjut saavuttaakseen todella kilpailukykyisen suorituskyvyn ja välttääkseen pullonkauloja.
Miksi meidän pitäisi välittää tästä hankkeesta?
RADV:n käyttöönotto Windowsissa ei ole vain ohjelmoijan päähänpisto. AMD:n omat Windows-ajurit tunnetaan joskus epävakaisuudestaan tai graafisten häiriöiden aiheuttamisesta Windows 11:ssä tai tietyissä peleissä. Avoimen lähdekoodin RADV antaa yhteisölle mahdollisuuden ilmoittaa virheistä ja asentaa korjauksia paljon nopeammin . Lisäksi se helpottaisi pelikehittäjien elämää, sillä he voisivat testata koodiaan yhdellä Vulkan-toteutuksella molemmissa käyttöjärjestelmissä.
Tämä voisi myös antaa toisen elämän vanhemmille näytönohjaimille, jotka AMD on jo lopettanut. Yhteisöprojektina yhteensopivuus vanhempien laitteistojen kanssa kestää usein paljon pidempään kuin virallinen tuki. Jos Valve jatkaa tämän edistämistä, voimme päästä pisteeseen, jossa RADV:n asentamisesta Windowsiin tulee ensisijainen vaihtoehto vakauden tai jopa muutaman lisäkuvantuoton saavuttamiseksi.
Valven ja Collaboran ponnistelut ovat muuttaneet hullun idean toimivaksi prototyypiksi, joka jo renderöi polygoneja oikeissa peleissä. Kääntäjien teknisistä ongelmista ja AMD:n virallisten käyttöohjeiden puutteesta huolimatta perusta on luotu. Aloitteen tulevaisuus riippuu nyt siitä, onko halukkuutta avata ydintä, jotta avoin lähdekoodi voi loistaa myös miljoonien Windows-käyttäjien työpöydillä.