From 8d02a7984d4fbc1f5484389285589eadadd42e96 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Wed, 29 Sep 2021 11:31:41 -0600 Subject: [PATCH] Limit MacBookPro6,2 G State Closes https://github.com/dortania/OpenCore-Legacy-Patcher/issues/520 --- CHANGELOG.md | 1 + Resources/Build.py | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c53ab1920..b9b4f6b8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ - Applicable for dual GPU MacBookPro5,x and demuxed MacBookPro8,x - Increment Binaries: - PatcherSupportPkg 0.1.5 release +- Limit MacBookPro6,2 G State ## 0.2.5 diff --git a/Resources/Build.py b/Resources/Build.py index d50f61ad0..5e7f5d829 100644 --- a/Resources/Build.py +++ b/Resources/Build.py @@ -867,11 +867,26 @@ class BuildOpenCore: new_amc_ls = Path(self.constants.amc_contents_folder) / Path("Info.plist") amc_config = plistlib.load(Path(new_amc_ls).open("rb")) amc_config["IOKitPersonalities"]["AppleMuxControl"]["ConfigMap"][self.spoofed_board] = amc_config["IOKitPersonalities"]["AppleMuxControl"]["ConfigMap"].pop(self.model) + for entry in list(amc_config["IOKitPersonalities"]["AppleMuxControl"]["ConfigMap"]): + if not entry.startswith(self.spoofed_board): + amc_config["IOKitPersonalities"]["AppleMuxControl"]["ConfigMap"].pop(entry) plistlib.dump(amc_config, Path(new_amc_ls).open("wb"), sort_keys=True) if self.model not in ModelArray.NoAGPMSupport: new_agpm_ls = Path(self.constants.agpm_contents_folder) / Path("Info.plist") agpm_config = plistlib.load(Path(new_agpm_ls).open("rb")) agpm_config["IOKitPersonalities"]["AGPM"]["Machines"][self.spoofed_board] = agpm_config["IOKitPersonalities"]["AGPM"]["Machines"].pop(self.model) + if self.model == "MacBookPro6,2": + # Force G State to not exceed moderate state + # Ref: https://github.com/fabioiop/MBP-2010-GPU-Panic-fix + print("- Patching G State for MacBookPro6,2") + for gpu in ["Vendor10deDevice0a34", "Vendor10deDevice0a29"]: + agpm_config["IOKitPersonalities"]["AGPM"]["Machines"][self.spoofed_board][gpu]["BoostPState"] = [2, 2, 2, 2] + agpm_config["IOKitPersonalities"]["AGPM"]["Machines"][self.spoofed_board][gpu]["BoostTime"] = [2, 2, 2, 2] + + for entry in list(agpm_config["IOKitPersonalities"]["AGPM"]["Machines"]): + if not entry.startswith(self.spoofed_board): + agpm_config["IOKitPersonalities"]["AGPM"]["Machines"].pop(entry) + plistlib.dump(agpm_config, Path(new_agpm_ls).open("wb"), sort_keys=True) if self.model in ModelArray.AGDPSupport: new_agdp_ls = Path(self.constants.agdp_contents_folder) / Path("Info.plist") @@ -879,6 +894,9 @@ class BuildOpenCore: agdp_config["IOKitPersonalities"]["AppleGraphicsDevicePolicy"]["ConfigMap"][self.spoofed_board] = agdp_config["IOKitPersonalities"]["AppleGraphicsDevicePolicy"]["ConfigMap"].pop( self.model ) + for entry in list(agdp_config["IOKitPersonalities"]["AppleGraphicsDevicePolicy"]["ConfigMap"]): + if not entry.startswith(self.spoofed_board): + agdp_config["IOKitPersonalities"]["AppleGraphicsDevicePolicy"]["ConfigMap"].pop(entry) plistlib.dump(agdp_config, Path(new_agdp_ls).open("wb"), sort_keys=True) @staticmethod