• Stars
    star
    3,236
  • Rank 13,864 (Top 0.3 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created over 7 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Various patches necessary for certain ATI/AMD/Intel/Nvidia GPUs

WhateverGreen

Build Status Scan Status

Lilu plugin providing patches to select GPUs on macOS. Requires Lilu 1.5.6 or newer.

Features

  • Fixes boot to black screen on AMD and NVIDIA
  • Fixes sleep wake to black screen on AMD
  • Fixes boot screen distortion in certain cases
  • Fixes transmitter/encoder in autodetected connectors for multimonitor support (-raddvi)
  • Fixes HD 7730/7750/7770/R7 250/R7 250X initialisation (radpg=15)
  • Allows tuning of aty_config, aty_properties, cail_properties via ACPI
  • Allows enforcing 24-bit mode on unsupported displays (-rad24)
  • Allows booting without video acceleration (-radvesa)
  • Allows automatically setting GPU model name or providing it manually for RadeonFramebuffer
  • Allows specifying custom connectors via device properties for RadeonFramebuffer
  • Allows tuning autodetected connector priority via device properties (HD 7xxx or newer)
  • Fixes an issue in AppleGraphicsDevicePolicy.kext so that we could use a MacPro6,1 board-id/model combination, without the usual hang with a black screen. Patching AppleGraphicsDevicePolicy.kext
  • Modifies macOS to recognize NVIDIA's web drivers as platform binaries. This resolves the issue with transparent windows without content, which appear for applications that use Metal and have Library Validation enabled. Common affected applications are iBooks and Little Snitch Network Monitor, though this patch is universal and fixes them all. NVWebDriverLibValFix
  • Injects IOVARendererID into GPU properties (required for Shiki-based solution for non-freezing Intel and/or any discrete GPU)
  • For Intel HD digital audio HDMI, DP, Digital DVI (Patches connector-type DP -> HDMI)
  • Fixes NVIDIA GPU interface stuttering on 10.13 (official and web drivers)
  • Fixes the kernel panic caused by an invalid link rate reported by DPCD on some laptops with Intel IGPU.
  • Fixes the infinite loop on establishing Intel HDMI connections with a higher pixel clock rate on Skylake, Kaby Lake and Coffee Lake platforms.
  • Implements the driver support for onboard LSPCON chips to enable DisplayPort to HDMI 2.0 output on some platforms with Intel IGPU.
  • Enforces complete modeset on non-built-in displays on Kaby Lake and newer to fix booting to black screen.
  • Allows non-supported cards to use HW video encoder (-radcodec)
  • Fixes choppy video playback on Intel Kaby Lake and newer.
  • Fixes black screen on Intel HD since 10.15.5.
  • Adds workaround for rare force wake timeout panics on Intel KBL and CFL.
  • Supports all valid Core Display Clock (CDCLK) freqencies on Intel ICL platforms.
  • Fixes the kernel panic caused by an incorrectly calculated amount of DVMT pre-allocated memory on Intel ICL platforms.
  • Makes brightness transitions smoother on Intel IVB+ platforms.
  • Fixes the short period garbled screen issue after the system boots on Intel ICL platforms.
  • Fixes the PWM backlight control of the built-in display that is directly wired to AMD Radeon RX 5000 series graphic cards.
  • Fixes the freeze during iGPU initialization that may occur on certain laptops such as Chromebooks on macOS 10.15 and later.

Documentation

Read FAQs and avoid asking any questions. No support is provided for the time being.

Boot arguments

Global
Boot argument DeviceProperties Description
-cdfon enable-hdmi20 Enable HDMI 2.0 patches on iGPU and dGPU (Not implemented for macOS 11+)
-wegbeta N/A Enable WhateverGreen on unsupported OS versions (14 and below are enabled by default)
-wegdbg N/A Enable debug printing (available in DEBUG binaries)
-wegoff N/A Disable WhateverGreen
Switch GPU
Boot argument DeviceProperties Description
-wegnoegpu disable-gpu property to each GFX0 Disable all external GPUs
-wegnoigpu disable-gpu property to IGPU Disable internal GPU
-wegswitchgpu switch-to-external-gpu property to IGPU Disable internal GPU when external GPU is installed
AMD Radeon
Boot argument DeviceProperties Description
-rad24 N/A Enforce 24-bit display mode
-radcodec N/A Force the spoofed PID to be used in AMDRadeonVADriver
-raddvi N/A Enable DVI transmitter correction (required for 290X, 370, etc.)
-radvesa N/A Disable ATI/AMD video acceleration completely
radpg=15 N/A Disable several power-gating modes (see FAQ Radeon, required for Cape Verde GPUs: Radeon HD 7730/7750/7770/R7 250/R7 250X)
Board-id
Boot argument DeviceProperties Description
agdpmod=ignore agdpmod property to external GPU Disables AGDP patches (vit9696,pikera value is implicit default for external GPUs)
agdpmod=pikera agdpmod property to external GPU Replaces board-id with board-ix
agdpmod=vit9696 agdpmod property to external GPU Disable check for board-id
Nvidia
Boot argument DeviceProperties Description
-ngfxdbg N/A Enable NVIDIA driver error logging
ngfxcompat=1 force-compat Ignore compatibility check in NVDAStartupWeb
ngfxgl=1 disable-metal Disable Metal support on NVIDIA
ngfxsubmit=0 disable-gfx-submit Disable interface stuttering fix on 10.13
Intel HD Graphics
Boot argument DeviceProperties Description
-igfxblr enable-backlight-registers-fix property on IGPU Fix backlight registers on KBL, CFL and ICL platforms
-igfxbls enable-backlight-smoother property on IGPU Make brightness transitions smoother on IVB+ platforms. Read the manual
-igfxblt enable-backlight-registers-alternative-fix property on IGPU An alternative to the Backlight Registers Fix and make Backlight Smoother work on KBL/CFL platforms running macOS 13.4 or later. Read the manual
-igfxcdc enable-cdclk-frequency-fix property on IGPU Support all valid Core Display Clock (CDCLK) frequencies on ICL platforms. Read the manual
-igfxdbeo enable-dbuf-early-optimizer property on IGPU Fix the Display Data Buffer (DBUF) issues on ICL+ platforms. Read the manual
-igfxdump N/A Dump IGPU framebuffer kext to /var/log/AppleIntelFramebuffer_X_Y (available in DEBUG binaries)
-igfxdvmt enable-dvmt-calc-fix property on IGPU Fix the kernel panic caused by an incorrectly calculated amount of DVMT pre-allocated memory on Intel ICL platforms
-igfxfbdump N/A Dump native and patched framebuffer table to ioreg at IOService:/IOResources/WhateverGreen
-igfxhdmidivs enable-hdmi-dividers-fix property on IGPU Fix the infinite loop on establishing Intel HDMI connections with a higher pixel clock rate on SKL, KBL and CFL platforms
-igfxi2cdbg N/A Enable verbose output in I2C-over-AUX transactions (only for debugging purposes)
-igfxlspcon enable-lspcon-support property on IGPU Enable the driver support for onboard LSPCON chips.
Read the manual
-igfxmlr enable-dpcd-max-link-rate-fix property on IGPU Apply the maximum link rate fix
-igfxmpc enable-max-pixel-clock-override and max-pixel-clock-frequency properties on IGPU Increase max pixel clock (as an alternative to patching CoreDisplay.framework
-igfxnohdmi disable-hdmi-patches Disable DP to HDMI conversion patches for digital sound
-igfxnotelemetryload disable-telemetry-load property on IGPU Disables iGPU telemetry loading that may cause a freeze during startup on certain laptops such as Chromebooks
-igfxsklaskbl N/A Enforce Kaby Lake (KBL) graphics kext being loaded and used on Skylake models (KBL device-id and ig-platform-id are required. Not required on macOS 13 and above)
-igfxtypec N/A Force DP connectivity for Type-C platforms
-igfxvesa N/A Disable Intel Graphics acceleration
igfxagdc=0 disable-agdc property on IGPU Disable AGDC
igfxfcms=1 complete-modeset property on IGPU Force complete modeset on Skylake or Apple firmwares
igfxfcmsfbs= complete-modeset-framebuffers property on IGPU Specify indices of connectors for which complete modeset must be enforced. Each index is a byte in a 64-bit word; for example, value 0x010203 specifies connectors 1, 2, 3. If a connector is not in the list, the driver's logic is used to determine whether complete modeset is needed. Pass -1 to disable.
igfxframe=frame AAPL,ig-platform-id or AAPL,snb-platform-id property on IGPU Inject a dedicated framebuffer identifier into IGPU (only for TESTING purposes)
igfxfw=2 igfxfw property on IGPU Force loading of Apple GuC firmware
igfxgl=1 disable-metal Disable Metal support on Intel
igfxmetal=1 enable-metal Force enable Metal support on Intel for offline rendering
igfxonln=1 force-online property on IGPU Force online status on all displays
igfxonlnfbs=MASK force-online-framebuffers property on IGPU Specify indices of connectors for which online status is enforced. Format is similar to igfxfcmsfbs
igfxpavp=1 igfxpavp property on IGPU Force enable PAVP output
igfxrpsc=1 rps-control property on IGPU Enable RPS control patch (improves IGPU performance)
igfxsnb=0 N/A Disable IntelAccelerator name fix for Sandy Bridge CPUs
Backlight
Boot argument DeviceProperties Description
applbkl=3 applbkl property Enable PWM backlight control of AMD Radeon RX 5000 series graphic cards read here.
applbkl=0 applbkl property on IGPU Disable AppleBacklight.kext patches for IGPU.
In case of custom AppleBacklight profile read here
2nd Boot stage
Boot argument DeviceProperties Description
gfxrst=1 N/A Prefer drawing Apple logo at 2nd boot stage instead of framebuffer copying
gfxrst=4 N/A Disable framebuffer init interaction during 2nd boot stage
Misc
Boot argument DeviceProperties Description
wegtree=1 rebuild-device-tree property Force device renaming on Apple FW

Credits

  • Apple for macOS
  • AMD for ATOM VBIOS parsing code
  • The PCI ID Repository for multiple GPU model names
  • Andrey1970AppleLife for FAQs
  • FireWolf for the DPCD maximum link rate fix, infinite loop fix for Intel HDMI connections, LSPCON driver support, Core Display Clock frequency fix for ICL platforms, DVMT pre-allocated memory calculation fix for ICL platforms, Backlight Smoother for IVB+ platforms, Display Data Buffer fix for ICL platforms, and Backlight Registers Alternative Fix.
  • Floris497 for the CoreDisplay patches
  • Fraxul for original CFL backlight patch
  • headkaze for Intel framebuffer patching code and CFL backlight patch improvements
  • hieplpvip for initial AppleBacklight patching plugin
  • igork for power-gating patch discovery and various FP research
  • lvs1974 for continuous implementation of Intel and NVIDIA fixing code
  • mologie for creating NVWebDriverLibValFix.kext which forces macOS to recognize NVIDIA's web drivers as platform binaries
  • PMheart for CoreDisplay patching code and Intel fix backporting
  • RehabMan for various enhancements
  • RemB for continuing sleep-wake research and finding the right register for AMD issues
  • Vandroiy for maintaining the GPU model detection database
  • YungRaj and syscl for Intel fix backporting
  • vit9696 for writing the software and maintaining it

More Repositories

1

OpenCorePkg

OpenCore bootloader
C
13,029
star
2

Lilu

Arbitrary kext and process patching on macOS
C
3,585
star
3

AppleALC

Native macOS HD audio for not officially supported codecs
C++
3,439
star
4

VirtualSMC

SMC emulator layer
C++
1,664
star
5

BrcmPatchRAM

C++
1,037
star
6

MaciASL

ACPI editing IDE for macOS
Objective-C
749
star
7

OcBinaryData

733
star
8

NVMeFix

C++
685
star
9

AirportBrcmFixup

An open source kernel extension providing a set of patches required for non-native Airport Broadcom Wi-Fi cards.
C++
643
star
10

MacHyperVSupport

Hyper-V integration support for macOS
C++
620
star
11

AppleSupportPkg

AppleSupportPkg - contains UEFI drivers for Apple environment support
559
star
12

CPUFriend

Dynamic macOS CPU power management data injection
C++
535
star
13

VoodooPS2

C++
513
star
14

IntelMausi

Intel Ethernet LAN driver for macOS
C
390
star
15

bugtracker

Acidanthera Bugtracker
375
star
16

HibernationFixup

A Lilu plugin intended to fix hibernation compatibility issues
C++
371
star
17

FeatureUnlock

Add Sidecar support to unsupported models
C++
362
star
18

gfxutil

Device Properties conversion tool
C
274
star
19

MacInfoPkg

Mac Platform Information
249
star
20

RestrictEvents

C++
249
star
21

CpuTscSync

It is a Lilu plugin, combining functionality of VoodooTSCSync and disabling xcpm_urgency if TSC is not in sync. It should solve kernel panics after wake.
C++
171
star
22

MacKernelSDK

macOS kernel SDK targeting various XNU versions
C
167
star
23

AptioFixPkg

AptioFixPkg drivers to workaround macOS compatibility with APTIO UEFI FW
161
star
24

Shiki

Protected video playback support and hardware video acceleration on various hardware.
152
star
25

VoodooInput

Generic Multitouch Handler kernel extension for macOS
C++
151
star
26

BrightnessKeys

Handler for brightness keys without DSDT patches
C++
132
star
27

RTCMemoryFixup

open source kernel extension providing a way to emulate some offsets in your CMOS (RTC) memory
C++
97
star
28

macserial

Decode mac serial number
96
star
29

CryptexFixup

Various patches to install Rosetta Cryptex
C++
88
star
30

BT4LEContinuityFixup

72
star
31

OcSupportPkg

OpenCore common libraries
71
star
32

IOJones

Realtime I/O Registry viewer
60
star
33

DebugEnhancer

A Lilu plugin intended to enable debug output in the macOS kernel
C++
58
star
34

audk

Acidanthera UEFI Development Kit based on EDK II edk2-stable202405
C
57
star
35

dmidecode

dmidecode version with macOS specific improvements
C
40
star
36

ocbuild

Shell
39
star
37

EmeraldSDHC

SD host controller support for macOS
C++
39
star
38

OpenCoreShell

Patched UDK Shell adopted for wide firmware range
38
star
39

EfiPkg

38
star
40

UEFIGraphicsFB

UEFI framebuffer driver for macOS
C++
28
star
41

mac-efi-firmware

C
24
star
42

CpuTopologySync

Rebuild asymmetric CPU topology on macOS.
23
star
43

DuetPkg

Duet UEFI firmware emulator
15
star
44

ocmtoc

C
7
star
45

OcLegacyPkg

Legacy OpenCorePkg repository left for historical purposes
7
star