Ja raudan tehokkuudesta sen GPU:n osalta. Se on ihan se ja sama miten hyvin se emulointi rullaa jos GPU ei riitä pyörittämään pelejä. Edelleenkin, sellaisia ARM kuluttajalaitteita, joissa on linux, ja joissa voisi riittää tehot mihinkään pelaamiseen tämmösen x86 tulkkauksen kanssa on noin 0 kpl.
Missaat nyt jotain. Jos teet jonkun Steamin tapaisen ARMille, se GPU-ajurikoodi on tietenkin natiivia eikä emuloitua siltä osin kuin on tarpeen. Jos olet tehnyt vaikka pelin PC:lle ja Radeon RX 7800 XT:lle, niin jos kytket sen näyttiksen PCIe:llä vaikkapa RPi-koneelle ja olettaen että näyttiksen firmware boottaa ko. laitteella, mahdollisia tehomenetyksiä tulee sen CPU:lla ajettavan pelikoodin osalta, mutta ei juurikaan näyttisajureista ja se Vulkan-koodi (ja sen käännös GPU:lle) on samaa. API tarjoaa luonnollisen abstraktiopisteen, jossa voi vaihtaa suorituksen natiivikoodiin.
Toiseksi jos nyt vasta tehdään ko. pelikäyttistä, katse tuskin on nyt jo julkaistuissa vanhoissa laitteissa, joissa fokus on ollut joku muu kuin pelaaminen.
CPU puolella edes applen prossut ei aja pelejä x86 emuloinnin läpi sellaisella nopeudella että kokonaisuutta voisi pitää pelikelpoisena millään modernilla pelillä.
Oma näkökulma tähän on Steamin käyttö x86/Linuxilla. Idea nyt luultavasti on, että emulaation kautta voidaan tarjota osa peleistä ja osasta voidaan tarjota natiivi käännös kuten x86/Linuxillakin. Steamilla on vaikka kuinka paljon vanhoja pelejä, joissa ei tarvita viimeisimpiä tehoja.
Ja sata muuta asiaa jotka ei ole tämän keskustelun kannalta olennaisia.
Keskustelun kannalta oleellista on se, että Steamin CPU-emulaatio ei liity mitenkään siihen, millaisia näytönohjaimia joku voi tarjota ARM-laitteissa. Näillä ei ole mitään yhteyttä muuten kuin millaisia diilejä valmistajat tekevät SoC-integraatioissa. Tätä koitin sanoa, että Valve haluaa julkaista vaikka seuraavan Steam Deckin ARM-prosessorilla, sillä ARM-valinnalla ja emuloinnilla on olematon vaikutus siihen, mikä GPU laitteeseen isketään.
Miten ihmeessä ylimääräinen api kerros metallin päällä auttaa arvioimaan metallin suorituskykyä?
Tuo on yhtä typerää kuin idea siitä että x86 käskykannan suorituskykyä voisi verrata ARMiin laittamalla sen päälle ARM->x86 käskykantatulkkauksen. Eihän se kerro yhtään mitään mistään.
Jos haluat verrata kahta APIa keskenään ilman ulkoisia tekijöitä, niin miten muuten vertaat kuin tarjoamalla molemmat APIt samalle raudalle? Jokainen komponentti joka vaihtuu vertailussa tulee mukaan tekijänä siihen tulokseen. Tilannetta vaikeuttaa tässä aika paljon se, että Metal on Applen poro-API ja Applella ei ole kiinnostusta tukea muuta.
Tässä on vielä niin, että jos väität Metalia nopeammaksi, mutta Vulkan toimii käännöskerroksen läpikin yhtä nopeasti, niin se aika lailla todistaa ettei Metal ole nopeampi.
x86 ja ARM vertailua voi suorituskyvyn suhteen arvioida vain epäsuorasti, silti täällä moni kertoo että ARM on energiatehokkaampi.
Vastaavasti voidaan arvioida että metal on tehokkaampi API kuin vulkan.
x86/ARM-vertailussa verrataan koko alla olevan laite- ja softa-alustan vaikutusta suorituskykyyn ja se on sillä tapaa suoraviivainen, jos jokin ohjelma on portattu molemmille. Metal/Vulkan vertaa kahta komponenttia alustan päällä. En sano etteikö sitäkin vertailua voi tehdä, mutta se ei vertaa pelkästään tuota APIen eroa vaan koko alustojen eroa. Analogiana: Matti ja Minna ovat Metal ja Vulkan. Halutaan tietää, kumpi on parempi ajamaan autoa. Minun logiikka on, että molemmat ajavat samalla radalla (esim. Ahveniston moottorirata) samalla Bemarilla. Vain kuski vaihtuu. Sinun logiikalla Matille annetaan Bemari ja moottorirata. Minna ajaa polkupöyrällä hiekkatietä. Ja tämä jotenkin todistaa että Matti on parempi kuski kuin Minna.