From 943071c2cd412cd73c139fa5ff4e88368bc4c60e Mon Sep 17 00:00:00 2001 From: Mykola Grymalyuk Date: Tue, 19 Jul 2022 12:07:42 -0600 Subject: [PATCH] sys_patch_dict.py: split Kepler patchset Ref: https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1004 --- CHANGELOG.md | 5 +++++ data/sys_patch_dict.py | 35 ++++++++++++++++++++++++++++++----- resources/sys_patch_detect.py | 3 ++- 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ab30ce111..753d3cbc0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # OpenCore Legacy Patcher changelog ## 0.4.9 +- Split Kepler userspace and kernel space patches + - Only installs kernel space patches on 12.5 and newer + - Avoids lock out of user, however breaks graphics acceleration + - Install 12.4 or older for full graphics acceleration on Kepler + - Reference: [macOS 12.5: Nvidia Kepler and WindowServer crashing #1004](https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1004) ## 0.4.8 - Ensure Apple Silicon-specific installers are not listed diff --git a/data/sys_patch_dict.py b/data/sys_patch_dict.py index b11b8d89d..fce136de0 100644 --- a/data/sys_patch_dict.py +++ b/data/sys_patch_dict.py @@ -277,7 +277,7 @@ def SystemPatchDictionary(os_major, os_minor, non_metal_os_support): }, }, }, - "Nvidia Kepler": { + "Nvidia Kepler (Kernel Space)": { "Display Name": "Graphics: Nvidia Kepler", "OS Support": { "Minimum OS Support": { @@ -292,11 +292,7 @@ def SystemPatchDictionary(os_major, os_minor, non_metal_os_support): }, "Install": { "/System/Library/Extensions": { - "GeForceAIRPlugin.bundle": "11.0 Beta 3", - "GeForceGLDriver.bundle": "11.0 Beta 3", - "GeForceMTLDriver.bundle": "11.0 Beta 3", "GeForce.kext": "12.0 Beta 6", - "GeForceVADriver.bundle": "12.0 Beta 6", "NVDAGF100Hal.kext": "12.0 Beta 6", "NVDAGK100Hal.kext": "12.0 Beta 6", "NVDAResman.kext": "12.0 Beta 6", @@ -304,6 +300,35 @@ def SystemPatchDictionary(os_major, os_minor, non_metal_os_support): }, }, }, + # With macOS 12.5 Beta 3, Apple broke Metal rendering with Kepler + # Specifically, MPSImage/MPSCore stall out trying to render the desktop. + # This will eventually trigger the watchdog, and kick the user back to the login screen. + # + # Reference + # - https://github.com/dortania/OpenCore-Legacy-Patcher/issues/1004 + "Nvidia Kepler (Userspace)": { + "Display Name": "", + "OS Support": { + "Minimum OS Support": { + # 12.0 beta 7 (XNU 21.1) + "OS Major": os_data.os_data.monterey, + "OS Minor": 1 + }, + "Maximum OS Support": { + # 12.5 (XNU 21.6) + "OS Major": os_data.os_data.monterey, + "OS Minor": 6 + }, + }, + "Install": { + "/System/Library/Extensions": { + "GeForceAIRPlugin.bundle": "11.0 Beta 3", + "GeForceGLDriver.bundle": "11.0 Beta 3", + "GeForceMTLDriver.bundle": "11.0 Beta 3", + "GeForceVADriver.bundle": "12.0 Beta 6", + }, + }, + }, "Nvidia Web Drivers": { "Display Name": "Graphics: Nvidia Web Drivers", "OS Support": { diff --git a/resources/sys_patch_detect.py b/resources/sys_patch_detect.py index 1220019ca..7d4419f3a 100644 --- a/resources/sys_patch_detect.py +++ b/resources/sys_patch_detect.py @@ -362,7 +362,8 @@ class detect_root_patch: if hardware_details["Graphics: Nvidia Kepler"] is True: required_patches.update({"Metal Common": all_hardware_patchset["Graphics"]["Metal Common"]}) required_patches.update({"Modern GVA": all_hardware_patchset["Graphics"]["Modern GVA"]}) - required_patches.update({"Nvidia Kepler": all_hardware_patchset["Graphics"]["Nvidia Kepler"]}) + required_patches.update({"Nvidia Kepler (Kernel Space)": all_hardware_patchset["Graphics"]["Nvidia Kepler (Kernel Space)"]}) + required_patches.update({"Nvidia Kepler (Userspace)": all_hardware_patchset["Graphics"]["Nvidia Kepler (Userspace)"]}) for gpu in self.constants.computer.gpus: # Handle mixed GPU situations (ie. MacBookPro11,3: Haswell iGPU + Kepler dGPU) if gpu.arch == device_probe.Intel.Archs.Haswell: