Wie wichtig ist die iGPU im Hacki und gibt es eine iGPU in einem echten Mac?

  • Hallo zusammen,


    ich würde mal gern grundlegend wissen wollen, ob die iGPU im Hack irgend ein Einfluss auf die Geschwindigkeit hat. Für den täglichen normalen Gebrauch. Laut Cinebench gibt es da keinen Unterschied. Werder GPU noch CPU.

    Die iGPU wird wahrscheinlich nur dann wichtig wenn das Programm auch dementsprechend darauf zugreifen muss.


    Da stellt sich mir gleich die Frage ob ein richtiger Mac eine iGPU (ist ja auch ein Intel CPU) verbaut hat oder ob der Mac nur auf die GPU der Grafikkarte zugreift?

    Die GPU der Grafikkarten sollten eigentlich stärker sein als die iGPU des CPU's. Macht man zwischen den beiden ein Benchmark, ist die Grafikkarten GPU definitiv besser.


    Wie verhält sich das aber mit einem echten Mac. Gibts da überhaupt eine iGPU? Ich kenne nur die eGPU.


    Am liebsten wäre mir, die iGPU zu verbannen und nur hauptsächlich mit der Grafikkarte arbeiten. DRM oder Quicksync. Egal.

    Unter Windoof wäre das ein Treiber Problem. :P

  • Ähem, vielleicht täusche ich mich, warst du nicht in einigen diesbezüglichen Threads unterwegs?


    Davon abgesehen ist es sehr schwierig Beiträge zum Thema Grafikkarte zu lesen ohne mit iGPU und HW-Beschleunigung konfrontiert zu werden.


    TLDR:

    Video wird idR mit iGPU schneller abgewickelt als ohne bzw. reduziert Systemlast.

  • Ich befasse mich viel mit diesen speziellen Thema.

    Hier und da habe ich schon was dazu geschrieben aber ehrlich gesagt, ich verliere gerade selber den Überblick.

    Die Frage ist aber noch nicht von mir gekommen.


    Mich interessiert es gerade bei echten mac, wie das dort gehändelt wird.

  • Was meinst du warum es je nach System so wichtig ist (gerade unter Mojave) die IGPU richtig eingebunden zu haben? Natürlich wird die IGPU bei einem echten Mac genutzt wenn sie vorhanden ist.


    Was du offenbar nicht verstehst ist, dass die IGPU in Kombination mit einer DGPU nicht für 3D oder andere Grafikberechnungen genutzt wird. Genutzt wird sie fürs Medien De- und Encoding um die CPU zu entlasten. Seit Mojave nicht mehr nur für Videos sondern auch für Bilder (z.B. in der Vorschau).


    Im Optimalfall nutzt das System sowohl die DGPU als auch die IGPU in Kombination zum De- und Encoding. So ist es bei einem echten Mac und das bringt in der Theorie am meisten Leistung. Bei vielen Hackintosh Setups läuft es allerdings darauf hinaus, dass nur die IGPU genutzt wird, weil macOS DGPU En- und Decoding strikt nur auf in echten Macs genutzten GPUs zulässt. Das System geht dabei derart strikt vor, dass selbst eine RX580 nicht genutzt wird, bis sie entsprechend dem Equivalent im iMac deklariert wird (Radeon Pro 580 statt Radeon RX580).

  • Bei vielen Hackintosh Setups läuft es allerdings darauf hinaus, dass nur die IGPU genutzt wird, weil macOS DGPU En- und Decoding strikt nur auf in echten Macs genutzten GPUs zulässt. Das System geht dabei derart strikt vor, dass selbst eine RX580 nicht genutzt wird, bis sie entsprechend dem Equivalent im iMac deklariert wird (Radeon Pro 580 statt Radeon RX580).

    CMMChris


    Ist diese Restriktion auch auf SMBios-Ebene? Bis jetzt war mein Eindruck, dass CPU -> SMBios das alleinige Kriterium war.


    Ich bin noch immer am Suchen, wieso meine R9 390 von ca. 88 in Cinebench auf 73 runter ist. Glaube seit einer HS Beta.


    Dies würde es dann erklären, da ich eine Zeitlang mit 5k late 2015 unterwegs war und jetzt mit 14,2

  • Wie äußert es sich denn genau, wenn die Eingeschaft model von Radeon RX580 in Radeon Pro 580 geändert wird? Macht sich das irgendwie im IORegistryExplorer bemerkbar?

  • Harper Lewis an dieser Stelle ist die liebe macdesignerin die richtige Ansprechpartnerin.


    Si Vis Pacem Beim SMBIOS geht es hauptsächlich um die CPU und einige ACPI Gerätebezeichnungen. Auf GVA (Graphics Video Acceleration) hat das SMBIOS nur in wenigen Fällen Auswirkungen.

  • Bringt mich irgendwie nicht weiter. Ja ja...verstehen tue ich das schon aber warum ist das so schwer alles miteinander zu koppeln?


    Mehr als iGPU einschalten, kann ich doch nicht. Somit ist doch die iGPU und die dGPU vorhanden und sollte doch harmonisch miteinander arbeiten können.

    Theorie und Praxis. Verdammt....

  • Z. B. mein MacBook Pro 2012 hat eine iGPU Intel HD Graphics 4000 und eine GeForce GT 650M mit automatischer Umschaltung zwischen den Grafikprozessoren. Es gibt auch ein nettes kleines Programm gfxCardStatus. Damit kann ich manuell festlegen welche Grafik vorzugsweise arbeiten soll, ist unterwegs für das sparen von Energie sehr gut wenn man sich auf die HD4000 festlegen kann. Auch zeigt das Programm an wenn automatisch umgeschalten wird, z. B. wenn ich Photoshop nutze oder einen externen Bildschirm anschließe. Ohne das Programm entscheidet das System ganz alleine nach Leistungsanforderung welche Grafik-GPU aktiv wird.

    Das ist bei allen Mac's mit iGPU und dezidierter GPU so. Die neueren Mac's laufen zur Energieeinsparung viel länger mit iGPU, die aber auch leistungsstärker ist als bei meinen alten Teil, und nur wenn es für Programme erforderlich ist wird umgeschalten. Hier gibt es aber auch nicht mehr ein funktionierendes Progrämmchen, s. o., zum manuellen umschalten.


    Das Problem das es nicht so auf dem Hackintosh läuft wird wohl mit der von Clover emulierten EFI zusammenhängen. Bei den richtigen Mac's ist das ja schon fest in der EFI verankert, hardwaremäßig. Genauso wie es einen kleinen Chip für DRM und Co gibt.


  • ebs Hier geht es nicht um Laptops wo die IGPU mit dem Monitor verbunden ist, sondern um Desktops, wo sie connectorless eingebunden ist.

  • Nun sie werkeln ja auch harmonisch zusammen redbelt wenn eben die Vorraussetzungen dafür geschaffen wurden. Es ist eben ein Trugschluss zu denken das SMBIOS hätte nur was mit der Optik zu tun bzw. war das ganz früher mal so aber in der Zwischenzeit hat sich einiges getan :)


    Mal ein konkretes Beispiel:

    Ausgehend von Deiner CPU würde man wohl als Modell am ehesten den iMac 18.3 wählen wollen denn das ist ein ziemlich perfektes Abbild von Deinem Setup. Die CPU ist identisch (i7-7700K) und auch die Grafik ist nahezu identisch RX580 vs. Radeon Pro 580 besser geht es SMBIOS technisch gar nicht. Gucken wir dem Bruder Deines Systems mal unter Die Haube bzw. hinter das Display. Wir haben also einen iMac mit der BoardID Mac-BE088AF8C5EB4FA2 das ist gut zu wissen denn damit bewaffnet können wir mal in der AppleGraphicsDevicePolicy gucken was der so können sollte. Der iMac 18.3 wird mit der config3 gelistet und die wiederum besagt folgendes:

    Wir wissen nun das Gerät hat 2 Grafikeinheiten einmal die dGPU und die iGPU ferner wissen wir Apple erwartet das die iGPU im ACPI als solche zu finden ist und es erwartet wird das die dGPU als GFX0 im System vorhanden ist. Nun ist es bei nicht Apple Geräten oft so das die iGPU als GFX0 definiert ist im ACPI und die dGPU sich unter PEGP oder PEG verbirgt. Genau wissen wir das in Deinem Fall aber erst wenn wir einen Blick in die DSDT gewagt haben. Wichtig ist jedenfalls schon mal das wir diese, von Apple verlangte, Nomenklatur einhalten ansonsten führt das unweigerlich zu Chaos.


    Was sagt uns unser Blick in den Kext noch nun er sagt uns das für die IGPU der Key unload auf true gesetzt wird und das meint nichts anderes als das der Framebuffer für die iGPU nicht geladen bzw. wieder entladen werden soll. So weit so gut denn den Framebuffer (Bildschirmtreiber für die Darstellung von 2D Inhalten auf Bildschirmen) brauchen wir ja auch gar nicht denn das übernimmt ja sowohl im iMac als auch in Deinem Fall die AMD Karte. Unser erstes Arbeitspaket lässt sich also hieraus ableiten:


    1. In die DSDT gucken und herausfinden wie die Grafikkarten im ACPI angesprochen werden.

    2. Dafür sorgen das dies macOS konform geschieht entweder über Clover oder direktem DSDT Patch.

    2a. Wenn über Clover dann darauf achten das man als erstes GFX0 in IGPU umbenennt und erst dann zum Beispiel PEGP in GFX0.

    3. Mittels Clover oder DSDT einen Connectorless PlattformID injecten (0x59120003).

    4. Dafür Sorge tragen das es ein DEVICE IMEI gibt entweder durch umbenennen des vorhandenen MEI Devices oder durch einfügen eines Fake Devices.


    Stellt sich jetzt natürlich die Frage warum der ganze Driss mit dem Apple konformen umbenennen im ACPI und die Antwort darauf ist relativ einfach! MacOS ist nicht Windows und hat für alles und jeden einen Treiber und es ist auch nicht Linux das sich für jede Vendor und DeviceID schon was passendes aussucht sondern macOS erwartet einen Mac und geht daher davon aus die nötigen Informationen zum einen aus dem SMBIOS zu ziehen zum anderen aber auch aus dem ACPI und eben so sicher wie es davon ausgeht dort die entsprechenden Informationen zu finden macht es davon auch abhängig welche Funktionen auf der erkannten Hardware bereit gestellt werden (AirPlay, H264 en- und decoding, HVEC en- und decoding usw.)


    Nachdem wir das erledigt haben sind wir dem Ziel schon ein gutes Stück näher gekommen denn unser nicht ganz echter iMac kennt nur bestenfalls seine iGPU und auch eine (bewusst nicht seine) dGPU und kann zumindest schon mal mit den Informationen über die iGPU arbeiten. Warum schreibe ich eine und nicht seine dGPU auch das ist wieder relativ leicht zu erklären denn der Apple verwendet ja nichts von der Stange sondern die Polaris Karten in den Mac's sind nicht irgendwelche Polaris Karten (haha) sondern es sind Radeon Pro Karten. Der Fachmann staunt und der Laie wundert sich was macht nun eine Brot und Butter Polaris Karte zu einer Radeon Pro und was zum Teufel ist Radeon Pro überhaupt?


    Hier kommt wieder der von CMMChris bereits erwähnte Fakt ins Spiel. Apple ist auf die glorreiche Idee gekommen so genannte "egpu developer kits" zu verkaufen in denen eine AMD RX verbaut war und die es Entwicklern ermöglichen sollte schon mal an der Leistungsfähigkeit der Metal API sowie der kommenden dGPU Generation zu naschen ohne dafür konkret einen Mac in Petto zu haben der das bereits verbaut hatte. Jetzt hat man also eine ganze Horde von Entwicklern die sich die Grafikkiste gekauft haben und wie überzeugt man die nun davon das Dingen wieder in die Ecke zu stellen und einen hochpreisigen Mac zu kaufen ach eigentlich ganz einfach man sparrt sich ein paar wenige, aber essentielle, Funktionen auf die sich nicht über Thunderbold tunneln lassen, lötet die gleiche GPU auf das LogicBoard verpasste dem Dingen aber vorsichtshalber vorher eine andere DeviceID und zack hat man eine Radeon Pro ersonnen. Der Fachmann schüttelt den Kopf und kauft trotzdem denn gibt ja keine Alternative und der Laie wundert sich schon wieder und huldigt Apple oder so ähnlich...


    Was sagt uns das nun? Die RX580 ist genau so Pro wie die Radeon Pro 580 man muss macOS das nur verklickern und das geht indem man der die RX entsprechend verkleidet zum Beispiel hiermit: AMDRadeonPro.kext.zip wobei es sich hierbei um einen alten Bekannten handelt nämlich um den PropertyInjector.kext von Brumbaer. Natürlich kannst Du das Dingen jetzt nicht einfach reinwerfen und hoffen das es geht vielmehr musst Du in der info.plist des Kexts die Device und VendorID unter PCIPrimaryMatch noch an Deine Gegebenheiten anpassen aber ist das einmal getan steht dem fast echten iMac 18.3 nichts mehr im Wege.


    Puh nun ist es mehr Text geworden als ich eigentlich schreiben wollte aber vielleicht hilft das ein wenig Licht ins Dunkle zu bringen...

  • griven


    Phuuuu...Respekt! Also erst mal Vielen Dank für den kurzen - langen Überblick, was man tun muss um einen "echten" Mac zu bekommen.

    Das umsetzen wird für mich die höchste Hürde sein.

    Das geht schon los, in welcher DSDT nach gucken muss und was ich suchen muss.


    Du schriebst: entweder über Clover oder direktem DSDT Patch. Ist das egal oder kann man in einem Patch mehr machen als in Clover selber?

    Wenn ich die GFX0 in IGPU umbenenne und die PEGP in GFX0, wie kriege ich die richtigen FIND und REPLACE Daten raus?

    Dei DEVICE IMEI ist eingetragen in der DSDT in Clover. Mittels Auswahlliste. Bei der Fake Device muss ich auch erstmal wissen, was da rein soll.


    Weiterhin schriebs du: Natürlich kannst Du das Dingen jetzt nicht einfach reinwerfen und hoffen das es geht vielmehr musst Du in der info.plist des Kexts die Device und VendorID unter PCIPrimaryMatch noch an Deine Gegebenheiten anpassen aber ist das einmal getan steht dem fast echten iMac 18.3 nichts mehr im Wege.


    Die ist schon für die 580 umgeschrieben, dank macdesignerin oder muss ich da noch mehr ändern?


    Das ganze bring mich jetzt dahin, mit viel tiefer mit der Materie zu beschäftigen. Je mehr ich weiss um so mehr lerne ich und werde besser.

    Dank dir griven und dem gesamten Forum.


    Ich hoffe, dass ich jetzt weiter komme.

  • Also bei mir funktioniert der Kext nicht. Die RX580 wird ebenso als Rx580 erkannt, kein Hardwarerendering.

    Seltsamerweise wird aber auch WEG nicht geladen, egal wo der liegt, ob in der EFI oder in L/E, S/L/E hab ich nicht probiert.








    Gruß Lucifer

    MacMini 6.2 late 2012, 1TB Crucial MX200 SSD, 16GB, i7 3720QM, Intel HD 4000, 2x 24" Samsung TFT, MacOS 10.14.5 (Rente)

    MacBook Pro late 2012 13" 1TB Crucial MX500 SSD, 16GB, i5, Mac OS 10.14.5 (läuft)

    Apple Watch Series 5 44mm Space Grey, Iphone 12 512GB Space Grey (aktuell)

    Hacki: i9-9900k, 2TB Crucial P5, 64GB Crucial Ballistix, Gigabyte Z370 Aorus Ultra Gaming Wifi, AMD RX6800 16GB, MacOS 13.5.2 OC 094 | 1TB Crucial MX500 Windows 11, Be Quiet Pure Base 500, 3+1 Setup Samsung 4k + 3x 24" HD

    NAS: Synoligy Diskstation 4x14 TB Seagate Ironwolf, Syno RS4021xs 8X20TB Seagate Exos, HPE Proliant DL380 G9 4x2TB SSD (Raid 5) für Smart-Home | Datenbanken | PXE-Boot | TasmoAdmin | Influx 1.8 | Influx 2 | MySQL | Paperless NGX | Grafana | Calibre-Web | usw.

  • Mit der Kext hatten einige Nutzer Probleme. Das ganze funktioniert wohl nicht zuverlässig. Ich habe auch schon versucht meine RX Vega 64 mit der Methode zur Radeon Pro Vega 64 zu machen - bisher ohne Erfolg.

  • Ich habe das Gefühl, dass VideoProc nicht wirklich zuverlässig bzw. aussagekräftig ist. Für meine R9 280 wird mir angzeigt, dass Hardwarebeschleunigung komplett aktiv wäre, auch HEVC-De und -Encoding.


    Nachtrag: Im Kext werden u.a. die properties name und model gesetzt, beide auf AMD Radeon Pro 580. Auf einem iMac18,3 mit AMD Radeon Pro 570 sieht das hingegen so aus:


    model: <"Radeon Pro 570">

    name: <"ATY,FlorinParent">

  • Dann prüfe es doch nach. Musst ja nur was konvertieren und die GPU Auslastung beobachten.