Ciao a tutti ragazzi, deluso dalle prestazioni nei giochi e app OpenGL (e purtroppo anche molti giochi metal) nel mio Ryzentosh rispetto a Hackintosh Intel decisamente meno performanti mi sono messo giù a cercare di capire da dove si originassero questi rallentamenti. Già vi dico che RadeonBoost aiuta sì, ma solo in gran parte i benchmark, e comunque non Cinebench 15 test OpenGL e i giochi.
Se installo macOS Catalina in Proxmox, emulando una cpu intel al 100%, non ho bisogno di dette patch, e il gap grafico viene colmato abbondantemente, prova ne è il fatto che Cinebench 15 balza da 100 fps a 130 fps, mostrando un palese 30% in più di prestazioni grafiche, idem Standard Candle test di DaVinci Resolve 16 che con 64 nodi di blur balza da 15 fps a 18 fps... Xonotic balza da 5 miseri fps minimi a 15 fps, in linea con l'esecuzione su macchine Hackintosh intel e mac veri...
Allora, c'è da dire indubbiamente che le patch cosiddette Vanilla per OpenCore rallentano e non poco le prestazioni 3D in diversi ambiti nei nostri Ryzentosh.
A suffragare questo fatto c'è questo post: https://github.com/AMD-OSX/AMD_Vanilla/issues/27
Allora provo a seguire il consiglio, scambiare cioè le patch applicate: dovremmo comunque applicare quelle delle vecchie generazioni AMD Bulldozer / Jaguar (15h, 16h)... ma sul mio attuale Ryzen 9 3950X osx di bootare non ne vuole sapere...
...si blocca lì... resto a guardare anche mezz'ora... ma non si schioda...
A leggere per il web pare che tutti i Ryzen di vecchia generazione (2x00 e 1x00) riescano ad avviarsi con dette patch... fatemi sapere se effettivamente è così: ma chi ci riesce lamenta problemi grossi di sync audio / audio scoppiettante... anche qui fate dei video per smentirmi se non è così 😉
Ovviamente non pago di tutto ciò, mi sono messo a smanettare sui due file di patches (https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/15h_16h e https://github.com/AMD-OSX/AMD_Vanilla/tree/opencore/17h), riordino il file patches.plist per le 15h/16h che sintatticamente preferisce andare a capo solo tra i tag <data> </data> oltre a mettere su più righe le stringhe da ricercare / rimpiazzare in modo da avere un file conforme a quello per le patch 17h... da terminal lancio diff ed ecco il risultato:
451c451
< <data>uAgAAIAx2zHJMdIPokGJzkUPtvZB/8ZEifFEifBmDx+EAAAAAABmDx+EAAAAAAAPH4QAAAAAAOl8////Dx9EAAA=</data>
---
> <data>uAgAAIAx2zHJMdIPokGJzkUPtvZB/8a4HgAAgDHbMckx0g+iD7b3/8ZEifEx0onI9/aJwUSJ8Ol8////Dx9EAAA=</data>
461c461
< <string>algrey - cpuid_set_info - cores and logicals count - part 1 - 10.13</string>
---
> <string>algrey - cpuid_set_info - ryzen cores and logicals count - part 1 - 10.13</string>
489c489
< <string>algrey - cpuid_set_info - cores and logicals count - part 1 - 10.14</string>
---
> <string>algrey - cpuid_set_info - ryzen cores and logicals count - part 1 - 10.14</string>
517c517
< <string>algrey - cpuid_set_info - cores and logicals count - part 2</string>
---
> <string>algrey - cpuid_set_info - ryzen cores and logicals count - part 2</string>
535c535
< <data>ichmDx+EAAAAAABmDx+EAAAAAABmDx+EAAAAAAAPHwA=</data>
---
> <data>QYnOuB4AAIAx2zHJMdIPog+29//GRInxMdKJyPf2ZpA=</data>
545c545
< <string>algrey - cpuid_set_info - cores and logicals count - part 3 - 10.13</string>
---
> <string>algrey - cpuid_set_info - ryzen cores and logicals count - part 3 - 10.13</string>
573c573
< <string>algrey - cpuid_set_info - cores and logicals count - part 3 - 10.14</string>
---
> <string>algrey - cpuid_set_info - ryzen cores and logicals count - part 3 - 10.14</string>
601c601
< <string>algrey - cpuid_set_info - cores and logicals count - part 4 - 10.13</string>
---
> <string>algrey - cpuid_set_info - ryzen cores and logicals count - part 4 - 10.13</string>
629c629
< <string>algrey - cpuid_set_info - cores and logicals count - part 4 - 10.14</string>
---
> <string>algrey - cpuid_set_info - ryzen cores and logicals count - part 4 - 10.14</string>
741c741
< <string>algrey - tsc_init - grab DID and FID from MSR</string>
---
> <string>algrey - tsc_init - grab DID and VID from MSR</string>
759c759
< <data>uXEAAcAPMonASInBSMHpBoPgP0iDwBCA4QdI0+gPH0QAAA==</data>
---
> <data>uWQAAcAPMg+2yInGwe4Ig+Y/RTH/MdJIichI9/ZIAcBmkA==</data>
Mi armo di pazienza e per poter confrontare visivamente meglio i due file scarico, compilo e installo ProperTree, interessante script / app in Pyton per gestire i file .plist in maniera più leggibile.
Le differenze quindi stanno come segue, premetto che i numeri delle patch sono assegnati da ProperTree in automatico partendo da 0 dalla prima all'ultima presenti nei file plist relativi:
La patch 15 che recita nel commento "algrey - cpuid_set_info - cores and threads calculations - 10.15" corrisponde alle "righe" 451c451, come vedete le stringhe da rimpiazzare differiscono discretamente;
Notate che le differenze a livello di nome del commento sono irrilevanti al fine del corretto boot quindi le trascureremo;
la patch 18 recita nei commenti "algrey - cpuid_set_info - (ryzen) cores and logicals count - part 2" e corrisponde alle "righe" 535c535, stringa replace totalmente diversa;
infine la patch 26 che recita nei commenti "algrey - tsc_init - grab DID and VID from MSR", nelle patch per 15-16h definita nel commento "algrey - tsc_init - grab DID and FID from MSR", corrisponde alle "righe" 759c759: anche qui cambio sostanziale della stringa replace...
Allora inizio a fare l'alchimista: se inserisco le patch 15 e 18 nel mio config.plist riesco a bootare, è la patch 26 che se viene inserita blocca il boot... fidandomi del commento che i creatori delle patch gli hanno affibbiato, deduco che la famiglia 17h di CPU Amd evidentemente inizializza il TSC in maniera differente... chissà se magari è proprio questo il problema per te @fabiosun, magari i nuovi threadripper hanno un tsc ancora diverso rispetto alle 17h "precedenti".
Comunque il succo inerente a questo post è: anche avviando con le patch 15 e 18 nel mio Ryzen 9 3950X le performance grafiche non migliorano (la mia cpu viene segnalata come 32 cores / 32 threads), segno che quando applichiamo le 15, 18 e 26 ad un Ryzentosh basato su 2700x o 1800x o cpu zen similari il miglioramento grafico è apparente perché il tsc svalvola, generando le corruzioni e il desync nell'audio (basterebbe riprodurre un video YouTube).
Qualcuno con competenze così avanzate del mach_kernel e delle cpu AMD può aiutarci a migliorare la patch 26? O anche a spiegarci cosa fa di preciso...
Allego le patches "razionalizzate" per comodità e anche il mio config.plist di test con le patch 15 e 18 della famiglia zen 15h/16h, la 26 è rimasta quella della famiglia 17h altrimenti non si avvia nulla.
patches1516h.plist.zip
patches17h.plist.zip
configtomnic.plist.zip