/WhateverGreen

Various patches necessary for certain ATI/AMD GPUs

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

WhateverGreen

Lilu plugin providing patches to select ATI/AMD GPUs. Requires Lilu 1.1.6 or newer.

Features

  • Fixes boot to black screen
  • Fixes sleep wake to black screen
  • Fixes boot logo distortion in certain cases (-radlogo)
  • Fixes transmitter/encoder in autodetected connectors for multimonitor support (-raddvi)
  • Fixes HD 7730/7750/7770/R7 250/R7 250X initialisation (radpg=15)
  • Fixes HDMI audio for natively supported devices if not injected manually
  • 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)

Documentation

Read FAQs and avoid asking any questions:

No support is provided for the time being.

Boot arguments

Add -raddbg to enable debug printing (available in DEBUG binaries).
Add -radvesa to disable ATI/AMD video acceleration completely.
Add -radoff to disable WhateverGreen.
Add -radbeta to enable WhateverGreen on unsupported os versions (10.13 and below are enabled by default).
Add -rad24 to enforce 24-bit display mode.
Add -radlogo to patch boot logo distortion.
Add -raddvi to enable DVI transmitter correction (required for 290X, 370, etc.)
Add radpg=15 to disable several power-gating modes (see FAQ, required for Cape Verde GPUs).

Credits

  • Apple for macOS
  • AMD for ATOM VBIOS parsing code
  • The PCI ID Repository for multiple GPU model names
  • igork for power-gating patch discovery
  • RemB for continuing sleep-wake research and finding the right register
  • Vandroiy for maintaining the GPU model detection database
  • vit9696 for writing the software and maintaining it