dortania / bugtracker

Dortania Bugtracker
108 stars 7 forks source link

[OCLP] dGPU issue on MBP13,3 / AMD "Berbice" and how to fix it #292

Closed OnesuchDev closed 1 year ago

OnesuchDev commented 1 year ago

The MacBookPro13,3 is in a unique situation as it has an unsupported iGPU but an AMD Polaris dGPU. However, the dGPU does not work correctly, since part of the support for the "ATY,Berbice" framebuffer was removed in Ventura; it shows as AMD Radeon Polaris and gMux does not work.

I was able to resolve this in a hacky way by replacing the string "ATY,Longavi" (the framebuffer from the nearly identical 14,3) with "ATY,Berbice" in AMD9500Controller, then replacing all of the properties for ATY,Longavi with the ones from ATY,Berbice (which are still there, and unused).

This could be added in a more sustainable way by injecting the Berbice properties from Monterey into Longavi and spoofing the framebuffer name, both using WhateverGreen. I verified that the connector config is identical between Longavi and Berbice. However, I don't know enough about the code structure of OCLP or about WhateverGreen to do this myself.

khronokernel commented 1 year ago

If the frambuffer was removed outright from the binary, changing it to Longavi is a bit concerning as each family has specific characteristics that Apple assumes for the GPUs (especially mobile models with power management)

Since the 13,3 already includes root patches for iGPU (as mentioned in your other issue), adding root patches for the Polaris card may be the more reliable solution compared to tacking on support to the other family.

Will add support for this over the weekend, however please use discord for future issues. OCLP's bug tracker is closed for a reason, we'd appreciate not circumventing it