Palataan hetkeksi vielä tuohon Resizable BAR / SAM-kuvioon.
Luin hieman Linuxin kernel-kehitykseen liittyvää keskustelua tästä ominaisuudesta. Keskustelusta sain tällaisen ymmärryksen:
Koneen käynnistyessä BIOS määrittelee miten paljon muistia PCI Root Bridge saa käyttöönsä. Oletuksena tuo muistiavaruus rakennetaan siten, että myös 32-bittiset käyttöjärjestelmät toimivat - eli kaikki sullotaan 4 GiBin sisään.
Tuo "Above 4 GB Decoding = Enabled" tai vastaava BIOS-asetus saa aikaan sen, että PCI Root Bridgelle varataan varmasti riittävä muistiavaruus, jotta näitä PCI Express-korttien muistiavaruuksia (tuntee nimellä BAR) voidaan vääntää isommaksi. Above 4 GB Decoding ei vielä itsessään tee mitään sen eteen, että laite todella käyttäisi suurempaa muistia. Mutta jos BIOS ei tätä varausta tee, ei käyttöjärjestelmä voi asialle enää mitään, sillä prosessorin pään PCI-asetuksiin ei enää pääse käyttöjärjestelmä kiinni myöhemmin.
Ilmeisesti datacenter-käyttöön tarkoitetut näytönohjaimet sekä Nvidialta että AMD:ltä ovat omassa vBIOSissaan osanneet pyytää jo boottivaiheessa koko VRAMin verran muistia käyttöönsä jo vuosia. Näin ei kuitenkaan ole normaaleissa pelikäyttöön tarkoitetuissa ohjaimissa, jotka pyytävät vBIOSissa boottauksen aikana perinteisen 256 MiB:n ikkunan VRAMiin. Mutta kun käytössä on "Resizable BAR", voidaan BARin kokoa jälkikäteen muuttaa isommaksi, edellyttäen, että em. PCI Root Bridgen riittävä muistiallokaatio on tehty.
Linux
Linuxiin on ollut Resizable BAR-ominaisuus kernelistä 4.15 alkaen (loppuvuosi 2017). Jos BIOS on varannut PCI Root Bridgelle riittävän suuren muistiavaruuden, voi näytönohjain pyytää kernelin tätä käyttöä varten AMD:n koodaaman funktion kautta BARin koon muutosta vastaamaan koko VRAMia. Ainakin AMD:n tuoreemmat ohjaimet osaavat tätä Linuxissa pyytää. Eli jos BIOSista on kytketty "Above 4GB Decording" käyttöön ja näyttöajuri tukee tätä pyyntöä, osaa Linux suoraan käyttää Resizable BARia.
Windows
Windowsissa on ollut tuki Resizable BAR-ominaisuudelle vuodesta 2015, eli ensimmäisestä Windows 10-versiosta alkaen WDDM 2.0-rajapinnasta eteenpäin.
Yhtä lailla Windows vaatii BIOSin "Above 4GB Decoding"-asetuksen päälle, muuten asialle ei voi mitään.
Nyt mennään vahvasti spekulaation puolelle, mutta ilmeisesti tavalliset näyttöajurit Nvidialla ja AMD:llä eivät ole tätä Resizable BAR-pyyntöä tehneet tähän mennessä. Ja nähtävästi datacenter-tuotteiden ajurit ovat sen tehneet. Eli AMD on nyt ensi kerran alkaen "AMD Radeon Software Driver 20.11.2"-versiosta alkaen koodannut myös resizable BAR-pyynnön omaan näyttöajuriinsa.
Näkisin, ettei ole mitään teknistä estettä ettei tuo toiminne toimisi missä tahansa Intelin tai AMD:n emolevyssä, jossa vain tuo resizable BAR-tuki on BIOSissa. Rautatuki prosessoreissa noilla on ollut molemmilla jo vuosia. AMD:n osalta Resizable BAR on tuettu prosessorisukupolvesta "15h" eli Bulldozer / Piledriver / Steamroller / Excavator" eteenpäin.
Eli jos sinulla on vaikkapa AMD:n jokin vanhempi Ryzen-emolevy "Above 4GB Decoding =Enabled"-asetuksella sekä AMD:n näyttöajuri versio 20.11.2 tai uudempi, pitäisi em. toiminne kaiken järjen mukaan toimia vanhemmillakin AMD:n näytönohjaimilla ja prosessoreilla, jollei sitä ole tietoisesti AMD:n toimesta rajoitettu vain tiettyihin prosessoreihin ja näytönohjaimiin (eli Ryzen 5000-sarjaan ja RX 6000-sarjan näytönohjaimiin).
Em. asia päästään testaamaan ensi viikolla, kun kyseinen ajuri tulee ulos. Oletettavasti siinä jo käyttöliittymässä jossain "SAM päälle/pois"-asetus, josta toiminnallisuuden päälläolon näkee.