PMheart / CoreDisplayFixup

Enable 4K or greater resolution for all graphics under macOS
75 stars 13 forks source link

Not working on hackintosh laptop Intel HD 4600 #2

Closed tuxtard closed 6 years ago

tuxtard commented 6 years ago

On Intel HD 4600 laptop max resolution for external 4k display is 2560x1440@60hz via both HDMI and DP. On the same hardware with Linux/Windows I can get 3840x2160@60hz via DP and 3840x2160@30hz via HDMI. I am using platform-id 0x04260000.

Tested with: High Sierra 10.13.1 Lilu 1.2.1 CoreDisplayFixup 1.3.2

PMheart commented 6 years ago

Hi! Sorry for the late reply! I have no idea why/whether it's not working. Actually CoreDisplayFixup is initially written for a friend of mine, and I myself don't have such device to test, so if he/she doesn't tell me that it's not working, then I also don't know what's up... Anyway. Could you please try removing CoreDisplayFixup and using the manual script instead? It would be helpful to trace what's wrong. Thanks in advance.

tuxtard commented 6 years ago

Hi,

I tried applying the mentioned CoreDisplay patcher v4, but I get black screen on the next boot.

What's interesting is that I get 3840x2160 with SwitchResX on my laptop screen (that doesn't even support resolutions bigger than 1920x1080), but not on my external 4K screen. If I try to add custom resolution to the external screen with SwitchResX I get "Not activated - invalid" message. I guess that the problem is with port configuration.

PMheart commented 6 years ago

Hi, nice to see you were here again!

This sounds kind of weird, and for now I have no idea. Sorry. As I said I don't have related device to test, so the research could be a little hard to continue. I wish someone who has such device would be here and kept investigating it.

Best regards, PMheart

tuxtard commented 6 years ago

Hi,

I am willing to investigate further, I just need to know where to start.

PMheart commented 6 years ago

You can start here: https://github.com/PMheart/CoreDisplayFixup/blob/master/CoreDisplayFixup/IntelPatcher.cpp#L25, which declares the process that we need to trace. Make sure that it hasn't been changed. (You can do this via hooks with the help of rd_route) Admittedly this needs more skills, and I guess I could help if I can find some free time, which is sort of hard to get... Sorry!

tuxtard commented 6 years ago

Hi,

I got it working. I was just using the wrong platform id, with 0x0a2e0008 CoreDisplayFixup works just fine.

PMheart commented 6 years ago

Hello! Thanks for your confirmation! The issue will be closed then.