Radeon AMD RX 480 8GB und HP RX 580 4GB | Nach Ruhezustand stotterndes OpenGL

  • Gib die Daten mal als Number mit. Macht Apple auch so. Bei der Pro Vega II steht CNT auf 16, Min auf 90 und Max auf 300.

    LG Chris


    Meine Hardware:

  • Autoconfig scheint bei Polaris leider nicht zu funktionieren.

    Die Werte wurden auch sicher unter GFX0 übernommen, die RX460 bleibt aber trotzdem bei 600 MHz.

    CMMChris Guck am besten nochmal genau bei meinen Properties, bevor wir das zu den Akten legen.

    Hi, ich habe ja auch eine RX 460. Jedoch war das bei der sowohl unter Mojave wie Catalina - ohne Boost Sachen - so, dass die immer normal durchgetaktet hat, also Idle 300 MHZ CPU+VRAM, bis zum Max Clk GPU+VRAM hoch. Natürlich mit CLKs dazwischen.

    Ich vermute, dass hier das BIOS der Karte wohl eine Rolle spielt - mag sein auch eine Rolle bei Rucklern nach aufwachen. Auch dieses Problem hatte meine RX 460 nicht.

    Was jedoch wohl bei uns (meist) gleich ist, ist dass ich mit boost oder PP,PP_..Firmware... 1 auch spürbar höhere Geekbenchwerte bekommen (nicht Thread Thema, klar). PS: Gucke ich mir die CLKs beim Geekbench mit und ohne boost Sachen an, sehe ich keinen Unterschied. Die Taktunk geht gleich weit hoch, nebenbei bemerkt.

    Das mit den Rucklern gabs es schon mal vor längerer Zeit - Ursache war da in der Tat, dass die GPU im IDLE Clk Modus (der ist meist zw. 300 und 600 MHz) verharrte, was man damals - die GPUS waren weit langsamer - auch schon beim reinen Desktop (Scrollen, Fenster verschieben etc.) leicht durch ruckeln gemerkt hat.

  • Das ganze Thema scheint halt ein komplexes Wechselspiel aus VBios, Treiber, Falcon Smc und anderen Device Properties zu sein.


    Meine RX580 hat ja zum Beispiel auch keine Probleme und macht alles ohne Murren mit. Sleep, mit oder ohne RadeonBoost, etc pp. alles Spitze und das seit 2 Jahren.


    Es gibt halt ein paar "zickige" Karten die nicht so richtig wollen. Meine RX460 gehört auf jeden Fall dazu.


    Ich denke mal je mehr wir hier rumexperimentieren, desto mehr Karten kriegen wir dann am Ende zum Laufen :thumbup:

  • So, ich habe gestern Abend nochmal ein bisschen getestet und recherchiert.

    Dabei habe ich ein paar neue Infos gesammelt, weshalb ich hier nochmal meine Vermutungen korrigieren/aktualisieren muss:


    - Das PT in PTPL2 wird wahrscheinlich für PowerTune stehen, AMDs dynamische Frequenzsteuerung.


    - Das Powermanagment der Karte wird wahrscheinlich immer auch im Kernel stattfinden. Unter Linux bei amdgpu nennt sich das DPM (Dynamic Power Management). Einige Einträge in IORegistry lassen vermuten, dass Apple den gleichen Namen verwendet. Wenn man z.B. CFG_FORCEMAXDPM auf true stellt, taktet die Karte anschließend durchgehend auf ihren höchsten Wert.


    - Meine RX580 benötigt PP_EnableLoadFalconSmcFirmware 0x1 nicht um die Werte in CFG_PTPL2_TBL zu übernehmen. Die RX460 jedoch weiterhin. Im Zweifel muss das also jeder selber testen. Ob das an einem Unterschied zwischen RX4xx und RX5xx, Baffin vs. Ellesmere, am VBios, oder woran auch immer liegt kann ich nicht nachvollziehen.


    HDRI

    Bist du jetzt eigentlich zufrieden, wie die Karte nur mit PP_EnableLoadFalconSmcFirmware läuft? Ansonsten kannst du für CFG_PTPL2_TBL die Werte aus der RadeonBoost.kext nehmen, die Apple für eine Radon Pro 580X verwendet. Diese Werte kannst du dann einfach nach oben hin deckeln. Wenn du z.B. 110 anstatt 130 probieren willst wird:


    82000000 7C000000 76000000 70000000 6A000000 64000000 5E000000 58000000 52000000 4C000000 46000000 40000000 3A000000 34000000 2E000000 28000000


    zu:


    6E000000 6E000000 6E000000 6E000000 6A000000 64000000 5E000000 58000000 52000000 4C000000 46000000 40000000 3A000000 34000000 2E000000 28000000


    Bei welchem Wert du einen guten Kompromiss aus MHz/FPS und Leistungsaufnahme/Temperatur erreichst musst du selber testen!

  • Die Werte sollten dem entsprechen was im BIOS der Karte steht. In der VBIOS Datenbank von Techpowerup kann man das bequem für sein Modell in Erfahrung bringen.

    https://www.techpowerup.com/vg…&memType=&memSize=&since=


    Außerdem solltet ihr bei Apple Bug Reports aufmachen und auf die Problematik + Lösungsansatz hinweisen.


    Edit: Wie sieht es denn mit der neuen RadeonBoost Version aus? Fixt die eure Bugs?

    LG Chris


    Meine Hardware:

    Einmal editiert, zuletzt von CMMChris ()

  • Jo, mit den Werten in RadeonBoost wird das gefixt!


    Ich werde meine RX580 mit 145 betreiben, was der TDP im Bios entspricht.



    In welchem Verhältnis TDP, PowerTune Limit und Max. Power Limit stehen check ich allerdings nicht.

    Unter Windows zieht die Karte unter Last übrigens ca. 135W.

    Unter Mac hört meine Karte zwischen einem Wert von 120-130 auf (CFG_PTPL2_TBL, nicht die gemessene Leistungsaufnahme) mehr Strom im Benchmark zu ziehen.


    Edit:

    CMMChris Das PowerTune Limit scheint ja bei einer Radeon VII unter macOS keinen Effekt zu haben. Dann wird das bei Polaris auch so sein.

  • Das Power Tune Limit in % ist für den Regler in Wattman zum Anheben oder Senken im Radeon Wattman gedacht. Da es in macOS kein Radeon Wattman gibt, hat der Wert dort keine Auswirkung.

    LG Chris


    Meine Hardware:

  • roqueeee uff - ich bin ein bisschen neben er Piste gefahren - In all diesem Hex/Kext/Benchmark loop bin ich nochmal in das VBIOS modden eingestiegen. Dabei habe ich endlich die Ressourcen gefunden die nötig waren um mein VBIOS zu editieren, zu flashen und zu booten.


    Kurzum: Ich habe meine RX480 zu einer RX580 konvertiert, die Steps der RX580 zurück auf die der Stock Rx480 editiert und den GPU Vcore Offset um -75mV verschoben. Damit läuft meine Karte jetzt unter Volllast über einen Zeitraum von 20min rund 8°C kühler bei 72°C statt bei 80°C.


    Durch den Flash auf die RX580 sind meine OpenGl Wake Issues auch beseitigt. Interessant fand ich aber folgende Benchmarks:



    Mit RadeonBoost v1.5 ( CMMChris Danke dafür) oder SMC und Table Property unter Devices taktet die Karte im Valley Benchmark konstant auf 1266 MHz. Valley läuft sauber durch und die Leistungsaufnahme liegt mit RadeonBoost v1.5 bei 85 Watt und mit SMC und Table bei 88 Watt (hier jetzt immer schon mit 0.3333 multipliziert, da der PerformaceStatistics Wert 330 statt den zu erwartenden 110 Watt ausspuckt).


    Wenn ich jedoch ohne SMC edit fahre, also ohne RadeonBoost oder Property inject, passiert folgendes: Beim Laden von Valley verliere ich kurz den Displayport connect, der Monitor idled und bekommt dann wieder ein Signal. Der Benchmark läuft danach mit durchschnittlich 1232 MHz durch (1226-1265 MHz). Und obwohl der Takt niedriger ist, ist die Leistungsaufnahme höher und liegt im Schnitt bei 92 Watt (92-94 Watt). Es scheint mir fast also ob die Powerproperties noch einmal ausgehandelt worde wären. Erklären kann ich mir das jedenfalls nicht.


    Die LuxMark Ergebnisse sind bei allen drei Test gleich (1395-13926)

    Die ValleyBenchmarks im groben auch (1362-1377)):



    Im großen und ganzen bin ich jetzt erstmal ganz zufrieden mit dem Ergebnis. Auch wenn ich lieber ohne einen VBIOS mod ausgekommen wäre. Aber da unter OSX keine PowerPlayTables greifen, war dies meine einzige Möglichkeit bei gleicher Leistung weniger Wärme zu produzieren. Btw. Mit den original RX580 Steps und einem Vcore Offset von -25mV ist die Karte ganz nett gelaufen. Aber dann halt wieder bei 80 °C angekommen...


    RX580 (RX480 Stock -75mV offset 1266MHz, 1150mV, 110W

    918302iMacPro1,1AMD Radeon RX 580MetalmacOS 64-bit46357
    918297iMacPro1,1AMD Radeon RX 580 Compute EngineOpenCLmacOS 64-bit41923

    RX580 (RX 580 Stock -25mV offset 1340MHz

    915826iMacPro1,1AMD Radeon RX 580MetalmacOS 64-bit49591
    915821iMacPro1,1AMD Radeon RX 580 Compute EngineOpenCLmacOS 64-bit42691


    Der kleine Leistungszuwachs kommt aber mit einer deutlich höheren Wärmeentwicklung, die ich nun unbedingt vermeiden will. Daher der Rückschritt auf die Steps der RX480.


    roqueeee und jetzt Butter bei die Fische - ich verstehe einfach nicht wie du das machst:

    Irgendwo muss ich da noch etwas konvertieren, mein CFG,CFG_PTPL2_TBL Entry sah so aus:


    00AA0A00 AAB2AAAA CAAA0A00 AA0BAAAA 00AAAF00 AA0BAAAA 00AAAE00 AABAAAAA 00AAAD00 AA0AAAAA 00AAAA00


    Ich nehme an, das Deine HexDezimalDinger irgendwie noch in diesen Allahu Akbar Code übersetzt werden müssen...

    Kleine Nachhilfe bitte. Dann würde ich das gerne mal Implementieren, und zwar mit den Einstellungen für die RX480.

    Hmm. mein use case ist jetzt irgendwie ein bisschen wirr geworden...


    __________________

    Dreckiges Lachen go:


    Während ich all das hier eintippte, passierte folgendes:



    (Update: VCore Offset betrifft natürlich auch den niedrigsten State. So lag im idle einfach zu wenig Spannung an. Das lässt aber sich leicht korrigieren in dem man den minimalen Vcore um 50mV hoch setzt...


    Hmmm... Also vielleicht überdenke ich meine RX580 Conversion nochmal. das ganze läuft erst seit gestern Abend und ist noch nicht wirklich getestet. Aber das war gerade ein Abschuss abseits jeglicher Last oder erkennbarer Prozessanläufe...


    Randnotiz: Mit dem PolarisEditor kann man nicht Undervolten (Definitiv nicht bei einer RX480, RX570 oder RX580). Die Einträge müssen im Hexeditor bei dem VCore Offset erfolgen. Kenn jemand den richtigen HEX Pfad/Eintrag bei einer Stock RX480 um den VCore zu verschieben? Die Resourcen die ich fand beziehen sich alle auf die RX580.

    Einmal editiert, zuletzt von HDRI ()

  • Aus irgend einem Grund stellt IORegistryExplorer manche Zahlenfolgen als Ascii und manche als Hex dar. Das ändert aber nichts an den Werten die sich dahinter verbergen.


    Bei OpenCore sollte deine Config so aussehen:


    Clover kann ich leider nicht selber testen, sollte aber so aussehen:


    Wichtig ist, dass man Type auf Data stellt.


    Bei erfolgreicher Injektion sollte es dann so im IORegistryExplorer aussehen:

  • korrekt, es geht dabei aber um die Anpassung der Einträge in den Properties. roqueeee hat mir dazu anhand eines Beispiels die Verwendung von Hex und Ascii erklärt. Die Werte darin sind unverändert und entsprechen denen, die auch im RadeonBoost enthalten sind...