Add backend for GPU accel patches

This commit is contained in:
Mykola Grymalyuk
2021-03-18 16:04:28 -06:00
parent ec3ecdca38
commit 6c304402dd
414 changed files with 10817 additions and 54 deletions
+10 -11
View File
@@ -170,23 +170,22 @@ class Constants:
# Apple Extensions
@property
def applebcm_path(self): return self.payload_apple_kexts_path / Path("AppleBCM5701Ethernet.kext")
def applebcm_path(self): return self.payload_apple_kexts_path / Path("misc-kexts/AppleBCM5701Ethernet.kext")
@property
def applehda_path(self): return self.payload_apple_kexts_path / Path("AppleHDA.kext")
def applehda_path(self): return self.payload_apple_kexts_path / Path("misc-kexts/AppleHDA.kext")
@property
def geforcega_path(self): return self.payload_apple_kexts_path / Path("GeForceGA.bundle")
def iosurface_path(self): return self.payload_apple_kexts_path / Path("misc-kexts/IOSurface.kext")
# GPU Kexts and Bundles
@property
def geforcetesla_path(self): return self.payload_apple_kexts_path / Path("GeForceTesla.kext")
def legacy_nvidia_path(self): return self.payload_apple_kexts_path / Path("legacy-nvidia")
@property
def geforceteslagl_path(self): return self.payload_apple_kexts_path / Path("GeForceTeslaGLDriver.bundle")
def legacy_amd_path(self): return self.payload_apple_kexts_path / Path("legacy-amd")
@property
def geforceteslava_path(self): return self.payload_apple_kexts_path / Path("GeForceTeslaVADriver.bundle")
def legacy_intel_gen1_path(self): return self.payload_apple_kexts_path / Path("intel-gen1")
@property
def iosurface_path(self): return self.payload_apple_kexts_path / Path("IOSurface.kext")
@property
def nvdanv50haltesla_path(self): return self.payload_apple_kexts_path / Path("NVDANV50HalTesla.kext")
@property
def nvdaresmantesla_path(self): return self.payload_apple_kexts_path / Path("NVDAResmanTesla.kext")
def legacy_intel_gen2_path(self): return self.payload_apple_kexts_path / Path("intel-gen2")
# Apple Frameworks
@property
+88 -36
View File
@@ -269,42 +269,94 @@ LegacyAudio = [
## GPU
LegacyGPU = [
"MacBook5,1",
"MacBook5,2",
"MacBook6,1",
"MacBook7,1",
"MacBookAir2,1",
"MacBookAir3,1",
"MacBookAir3,2",
"MacBookAir4,1",
"MacBookAir4,2",
"MacBookPro4,1",
"MacBookPro5,1",
"MacBookPro5,2",
"MacBookPro5,3",
"MacBookPro5,4",
"MacBookPro5,5",
"MacBookPro6,1",
"MacBookPro6,2",
"MacBookPro7,1",
"MacBookPro8,1",
"MacBookPro8,2",
"MacBookPro8,3",
"Macmini3,1",
"Macmini4,1",
"Macmini5,1",
"Macmini5,2",
"Macmini5,3",
"iMac7,1",
"iMac8,1",
"iMac9,1",
"iMac10,1",
"iMac11,1",
"iMac11,2",
"iMac11,3",
"iMac12,1",
"iMac12,2",
"Dortania1,1"
"MacBook5,1", # Nvidia 9000
"MacBook5,2", # Nvidia 9000
"MacBook6,1", # Nvidia 9000
"MacBook7,1", # Nvidia 300
"MacBookAir2,1", # Nvidia 9000
"MacBookAir3,1", # Nvidia 300
"MacBookAir3,2", # Nvidia 300
"MacBookAir4,1", # Intel 3000
"MacBookAir4,2", # Intel 3000
"MacBookPro4,1", # Nvidia 8000
"MacBookPro5,1", # Nvidia 9000
"MacBookPro5,2", # Nvidia 9000
"MacBookPro5,3", # Nvidia 9000
"MacBookPro5,4", # Nvidia 9000
"MacBookPro5,5", # Nvidia 9000
"MacBookPro6,1", # Intel 100 + Nvidia 300
"MacBookPro6,2", # Intel 100 + Nvidia 300
"MacBookPro7,1", # Nvidia 300
"MacBookPro8,1", # Intel 3000
"MacBookPro8,2", # Intel 3000 + AMD 6000
"MacBookPro8,3", # Intel 3000 + AMD 6000
"Macmini3,1", # Nvidia 9000
"Macmini4,1", # Nvidia 300
"Macmini5,1", # Intel 3000
"Macmini5,2", # AMD 6000
"Macmini5,3", # Intel 3000
"iMac7,1", # AMD 2000
"iMac8,1", # AMD 2000
"iMac9,1", # Nvidia 9000
#"iMac10,1", # Nvidia 9000 and AMD 4000
"iMac11,1", # AMD 4000
"iMac11,2", # AMD 4000 and 5000
"iMac11,3", # AMD 5000
"iMac12,1", # AMD 6000
"iMac12,2", # AMD 6000
"Dortania1,1" # RTX 3080
]
LegacyGPUNvidia = [
"MacBook5,1", # Nvidia 9000
"MacBook5,2", # Nvidia 9000
"MacBook6,1", # Nvidia 9000
"MacBook7,1", # Nvidia 300
"MacBookAir2,1", # Nvidia 9000
"MacBookAir3,1", # Nvidia 300
"MacBookAir3,2", # Nvidia 300
"MacBookPro4,1", # Nvidia 8000
"MacBookPro5,1", # Nvidia 9000
"MacBookPro5,2", # Nvidia 9000
"MacBookPro5,3", # Nvidia 9000
"MacBookPro5,4", # Nvidia 9000
"MacBookPro5,5", # Nvidia 9000
"MacBookPro6,1", # Intel 100 + Nvidia 300
"MacBookPro6,2", # Intel 100 + Nvidia 300
"MacBookPro7,1", # Nvidia 300
"Macmini3,1", # Nvidia 9000
"Macmini4,1", # Nvidia 300
"iMac9,1", # Nvidia 9000
#"iMac10,1", # Nvidia 9000 and AMD 4000
]
LegacyGPUAMD = [
"MacBookPro8,2", # Intel 3000 + AMD 6000
"MacBookPro8,3", # Intel 3000 + AMD 6000
"Macmini5,2", # AMD 6000
"iMac7,1", # AMD 2000
"iMac8,1", # AMD 2000
#"iMac10,1", # Nvidia 9000 and AMD 4000
"iMac11,1", # AMD 4000
"iMac11,2", # AMD 4000 and 5000
"iMac11,3", # AMD 5000
"iMac12,1", # AMD 6000
"iMac12,2", # AMD 6000
]
LegacyGPUIntelGen1 = [
"MacBookPro6,1", # Intel 100 + Nvidia 300
"MacBookPro6,2", # Intel 100 + Nvidia 300
]
LegacyGPUIntelGen2 = [
"MacBookAir4,1", # Intel 3000
"MacBookAir4,2", # Intel 3000
"MacBookPro8,1", # Intel 3000
"MacBookPro8,2", # Intel 3000 + AMD 6000
"MacBookPro8,3", # Intel 3000 + AMD 6000
"Macmini5,1", # Intel 3000
"Macmini5,3", # Intel 3000
]
LegacyHID = [
+28 -7
View File
@@ -85,14 +85,35 @@ class PatchSysVolume:
# Now add our patches
# Kexts
print("- Adding supported Binaries for GPU Accleration")
print("- Adding legacy Nvidia Kexts and Bundles")
subprocess.run(f"sudo cp -R {self.constants.geforcega_path} {self.mount_extensions}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
subprocess.run(f"sudo cp -R {self.constants.geforcetesla_path} {self.mount_extensions}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
subprocess.run(f"sudo cp -R {self.constants.geforceteslagl_path} {self.mount_extensions}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
subprocess.run(f"sudo cp -R {self.constants.geforceteslava_path} {self.mount_extensions}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
if self.model in ModelArray.LegacyGPUNvidia:
print("- Adding legacy Nvidia Kexts and Bundles")
subprocess.run(f"sudo ditto {self.constants.legacy_nvidia_path} {self.mount_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
if self.model in ModelArray.LegacyGPUAMD:
print("- Adding legacy AMD Kexts and Bundles")
subprocess.run(f"sudo ditto {self.constants.legacy_amd_path} {self.mount_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
if self.model in ModelArray.LegacyGPUIntelGen1:
print("- Adding legacy Intel 1st Gen Kexts and Bundles")
subprocess.run(f"sudo ditto {self.constants.legacy_intel_gen1_path} {self.mount_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
if self.model in ModelArray.LegacyGPUIntelGen2:
print("- Adding legacy Intel 2nd Gen Kexts and Bundles")
subprocess.run(f"sudo ditto {self.constants.legacy_intel_gen2_path} {self.mount_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
if self.model == "iMac10,1":
current_gpu: str = subprocess.run("system_profiler SPDisplaysDataType".split(), stdout=subprocess.PIPE, stderr=subprocess.STDOUT).stdout.decode()
self.constants.current_gpuv = [line.strip().split(": ", 1)[1] for line in current_gpu.split("\n") if line.strip().startswith(("Vendor"))][0]
if self.constants.current_gpuv == "AMD (0x1002)":
print("- Adding legacy AMD Kexts and Bundles")
subprocess.run(f"sudo ditto {self.constants.legacy_amd_path} {self.mount_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
else:
print("- Adding legacy Nvidia Kexts and Bundles")
subprocess.run(f"sudo ditto {self.constants.legacy_nvidia_path} {self.mount_frameworks}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
print("- Adding Catalina's IOSurface.kext")
subprocess.run(f"sudo cp -R {self.constants.iosurface_path} {self.mount_extensions}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
subprocess.run(f"sudo cp -R {self.constants.nvdanv50haltesla_path} {self.mount_extensions}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
subprocess.run(f"sudo cp -R {self.constants.nvdaresmantesla_path} {self.mount_extensions}".split(), stdout=subprocess.PIPE).stdout.decode().strip().encode()
# Frameworks
print("- Merging legacy Frameworks")