gnodipac886 / MatebookXPro-hackintosh

Hackintosh Solution for the Huawei Matebook X Pro
https://www.tonymacx86.com/threads/guide-matebook-x-pro-2018-using-hotpatch-vituralsmc-10-14-x.278730/
257 stars 57 forks source link

performance of igpu(can not stick on 1.1 Ghz) #112

Closed kxlv2000 closed 4 years ago

kxlv2000 commented 4 years ago

Recently i found that the performance of my igpu(UHD 620) on macOS is far away from windows, the openCL result is about 3500 on macOS, while on windows it is 5500. the frequency of IGPU is about 300mhz-800mhz and can not stick on 1.1Ghz.

image

However, I find a way to fix this problem by re-make the CPUFriendDataProvider.kext, and put them in L/E, this may make difference sometimes and the openCL result comes to 4500, the UI of macOS become much more smooth. but usually it makes no difference, which is really confusing. so I guess there is something wrong with the load order of DSDT and kext, finally when I saw the source code of DSDT, i found that there are lot of mistake that doesn't match my 8250U, and UHD 620, which may block the performance of IGPU, the reason why sometimes CPUFriend can fix this problem maybe it was loaded after the DSDT, and overwrite the wrong cpu info, and take effort. I still haven't find an easy way to fix this problem totally. But I have two idea, first change to open core platform and customs the load order of kext and dsdt, second re-write the dsdt source code. but both of them are too hard to me. Are you facing this problem, too. Do you have a better idea, please comment here, thanks.

profzei commented 4 years ago

Hi, I don't know if my config is affected by the same issue... or not: I changed completely the corresponding framebuffer injection for UHD620. Please, if you want, try it and let me know: afaik during clover (or open core) bootloading process DSDT.aml is always loaded before any other SSD. So I'm curious about your feedback!

kxlv2000 commented 4 years ago

Hi, I don't know if my config is affected by the same issue... or not: I changed completely the corresponding framebuffer injection for UHD620. Please, if you want, try it and let me know: afaik during clover (or open core) bootloading process DSDT.aml is always loaded before any other SSD. So I'm curious about your feedback!

Can you see your GFX AVG frequency in IPG? before I changing the frame buffer ig-platform-id to 00001B59 and device-id to 16590000, and model name to "Intel UHD Graphics 620", I can't see the frequency in IPG! If you are worry about the performance of IGPU was blocked,Just run GeekBench 5 openCL test check if the IGPU frequency is stick on 1.1Ghz,here is my best score that I can got now. However still far away from windows score 5500...

image

or you can try final cut to see the frequency. here is my ideal state of IGPU.

image

curious about your GeekBench 5 OpenCL result. please let me know on your convenience, thanks!

profzei commented 4 years ago

It's my first benchmark! I don't know if it is relevant for UHD620 OpenCL test but my Matebook has an i7-8550U CPU. Here are my results:

Screenshot 2020-05-23 at 19 33 27 Screenshot 2020-05-23 at 19 34 37
kxlv2000 commented 4 years ago

Hi, your OpenCL score seems has no problem, I looked up some material which said It is normal that OpenCL efficient on macOS is lower than windows, and the real performance may have no difference, actually.

I also tried your config, but if I clone all of your clover folder directly into my EFI, the IGPU seems cannot load correctly. 61362491BF5B88F56763E52F74570052 however, If I copy your plist, kext, and ACPI folder, It boot correctly and the IGPU seems much more stable, here are my newest score:

image

I'll keep trying your config to check wether it can work properly after some reboot(my previous ones can't),and give you feedback, Thanks for your kindness very much, It takes hope after 1 mouth work without any outcomes.

kxlv2000 commented 4 years ago

Hi, I don't know if my config is affected by the same issue... or not: I changed completely the corresponding framebuffer injection for UHD620. Please, if you want, try it and let me know: afaik during clover (or open core) bootloading process DSDT.aml is always loaded before any other SSD. So I'm curious about your feedback!

I still have a little question, have you ever consider about unlock CPU&IGPU 's TDP limit? because the CPU & IGPU share the same power limit PL1=15w PL2=29w, so it cause the limitation of performance when temperature is not high, as you can see in this screenshot, the IGPU cost much power and limited CPU's frequency a lot.

image

in windows we can simply use intel XTU, on macOS I have tried voltageShift.kext, decrease voltage do make my MBXP cooler, but performance can not be better in such a 15w power limit. voltageShift.kext can not unlock HUAWEI's costumes mouther board TDP limit, if you can unlock TDP by DSDT or CPUFriendDataProvider, maybe you can try this performance improvement for free in a cool environments?

profzei commented 4 years ago

I didn't try yet to undersold my machine with the use of voltageShift.kext... I don't know whether it could be advisable to "unlock" tdp since it's an ultrabook, but I can try...

kxlv2000 commented 4 years ago

Hi, after some reboots using your config, I found my IGPU frequency sometimes still cannot reach 1.1Ghz, and the pkg power can hardly goes over 15w. I still can't find the key point that determines the limits of IGPU's frequency (even though I didn't change any config between the boot with High Performance and a boot with poor performance...

the problem still needs to be solve...