From 3d63cb16541286ed8f4489fef7be78beadd90a61 Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Tue, 27 Sep 2022 08:45:37 -0600 Subject: [PATCH] sys_patch_detect: Add Polaris support for pre-AVX2.0 --- CHANGELOG.md | 4 +++- data/sys_patch_dict.py | 4 ++-- resources/constants.py | 2 +- resources/sys_patch_detect.py | 10 +++++++++- 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dcc5fedc..81a75b3f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,8 @@ - Intel: Ivy Bridge, Haswell, Broadwell and Skylake - Nvidia: Kepler - AMD: GCN 1 through 3 + - AMD: Polaris (on pre-AVX2.0 systems) + - Boot in safe mode to avoid stock driver loading - Raise SIP requirement to 0x803 for root patching - Add Ventura Boot Picker icons - Implement KDK-less root patching for Metal Intel and Nvidia GPUs @@ -33,7 +35,7 @@ - OpenCorePkg 0.8.3 release - Lilu 1.6.2 - release - FeatureUnlock 1.0.9 release - - PatcherSupportPkg 0.6.5 - release + - PatcherSupportPkg 0.6.6 - release - BrcmPatchRAM 2.6.3 - release - AutoPkgInstaller 1.0.1 - release - CryptexFixup 1.0.0 - rolling (1e41456) diff --git a/data/sys_patch_dict.py b/data/sys_patch_dict.py index 2467d5033..acc79a8f2 100644 --- a/data/sys_patch_dict.py +++ b/data/sys_patch_dict.py @@ -601,6 +601,7 @@ def SystemPatchDictionary(os_major, os_minor, non_metal_os_support): "AMD7000Controller.kext": "12.5", "AMD8000Controller.kext": "12.5", "AMD9000Controller.kext": "12.5", + "AMD9500Controller.kext": "12.5", "AMDRadeonX4000.kext": "12.5", "AMDRadeonX4000HWServices.kext": "12.5", "AMDFramebuffer.kext": "12.5", @@ -615,8 +616,7 @@ def SystemPatchDictionary(os_major, os_minor, non_metal_os_support): "/System/Library/Extensions": [ # Due to downgraded AMDSupport.kext # In the future, we will have to downgrade the entire AMD stack - # to support non-AVX2.0 machines with Polaris or newer - "AMD9500Controller.kext", + # to support non-AVX2.0 machines with Vega or newer "AMD10000Controller.kext", ], }, diff --git a/resources/constants.py b/resources/constants.py index b16cc8615..95b8266e8 100644 --- a/resources/constants.py +++ b/resources/constants.py @@ -13,7 +13,7 @@ class Constants: def __init__(self): # Patcher Versioning self.patcher_version = "0.5.0" # OpenCore-Legacy-Patcher - self.patcher_support_pkg_version = "0.6.5" # PatcherSupportPkg + self.patcher_support_pkg_version = "0.6.6" # PatcherSupportPkg self.url_patcher_support_pkg = "https://github.com/dortania/PatcherSupportPkg/releases/download/" self.nightly_url_patcher_support_pkg = "https://nightly.link/dortania/PatcherSupportPkg/workflows/build/master/" self.discord_link = "https://discord.gg/rqdPgH8xSN" diff --git a/resources/sys_patch_detect.py b/resources/sys_patch_detect.py index 3d5de4506..324122a77 100644 --- a/resources/sys_patch_detect.py +++ b/resources/sys_patch_detect.py @@ -114,11 +114,19 @@ class detect_root_patch: device_probe.AMD.Archs.Legacy_GCN_7000, device_probe.AMD.Archs.Legacy_GCN_8000, device_probe.AMD.Archs.Legacy_GCN_9000, + device_probe.AMD.Archs.Polaris, ]: if self.constants.detected_os > os_data.os_data.monterey: translated = subprocess.run("sysctl -in sysctl.proc_translated".split(), stdout=subprocess.PIPE).stdout.decode() if translated: continue + + if gpu.arch == device_probe.AMD.Archs.Polaris: + # Check if host supports AVX2.0 + # If not, enable legacy GCN patch + if "AVX2" in self.constants.computer.cpu.leafs: + continue + self.legacy_gcn = True self.supports_metal = True self.requires_root_kc = True @@ -173,7 +181,7 @@ class detect_root_patch: self.iron_gpu = False self.sandy_gpu = False self.legacy_keyboard_backlight = False - + if self.constants.detected_os <= os_data.os_data.monterey: # Always assume Root KC requirement on Monterey and older self.requires_root_kc = True