diff --git a/Changelog.md b/Changelog.md index 24f3d4d9..fedcf4f4 100644 --- a/Changelog.md +++ b/Changelog.md @@ -3,6 +3,8 @@ WhateverGreen Changelog #### v1.4.9 - Added per-GPU disabling API: inject `disable-gpu` to disable - Added per-GPU disabling kernel version specification: inject `disable-gpu-min` / `disable-gpu-max` to select kernel version to disable (inclusive range) +- Added IGPU disabling API: inject `disable-gpu` to disable or use `-wegnoigpu` boot argument +- Optimised Rocket Lake startup as IGPU is unsupported #### v1.4.8 - Fixed debug messages from cursor manipulation with NVIDIA GPUs on macOS 11 diff --git a/README.md b/README.md index 09d34e6b..e241b100 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,8 @@ Read [FAQs](https://github.com/acidanthera/WhateverGreen/blob/master/Manual/) an - `-wegdbg` to enable debug printing (available in DEBUG binaries). - `-wegoff` to disable WhateverGreen. - `-wegbeta` to enable WhateverGreen on unsupported OS versions (11 and below are enabled by default). -- `-wegnoegpu` to disable external GPU (or add `disable-external-gpu` property to IGPU). +- `-wegnoegpu` to disable all external GPUs (or add `disable-gpu` property to each GFX0). +- `-wegnoigpu` to disable internal GPU (or add `disable-gpu` property to IGPU) - `-radvesa` to disable ATI/AMD video acceleration completely. - `-rad24` to enforce 24-bit display mode. - `-raddvi` to enable DVI transmitter correction (required for 290X, 370, etc.). diff --git a/WhateverGreen/kern_igfx.cpp b/WhateverGreen/kern_igfx.cpp index b0487554..b162616c 100644 --- a/WhateverGreen/kern_igfx.cpp +++ b/WhateverGreen/kern_igfx.cpp @@ -157,6 +157,9 @@ void IGFX::init() { modRPSControlPatch.available = true; modTypeCCheckDisabler.enabled = true; break; + case CPUInfo::CpuGeneration::RocketLake: + gPlatformGraphicsSupported = false; + break; default: SYSLOG("igfx", "found an unsupported processor 0x%X:0x%X, please report this!", family, model); break; @@ -187,7 +190,9 @@ void IGFX::processKernel(KernelPatcher &patcher, DeviceInfo *info) { auto cpuGeneration = BaseDeviceInfo::get().cpuGeneration; - if (info->videoBuiltin) { + if (info->videoBuiltin && !gPlatformGraphicsSupported) { + switchOffGraphics = switchOffFramebuffer = true; + } else if (info->videoBuiltin) { applyFramebufferPatch = loadPatchesFromDevice(info->videoBuiltin, info->reportedFramebufferId); #ifdef DEBUG diff --git a/WhateverGreen/kern_igfx.hpp b/WhateverGreen/kern_igfx.hpp index 6cadd85c..84d74765 100644 --- a/WhateverGreen/kern_igfx.hpp +++ b/WhateverGreen/kern_igfx.hpp @@ -200,6 +200,11 @@ class IGFX { */ bool gPlatformListIsSNB {false}; + /** + * IGPU support + */ + bool gPlatformGraphicsSupported {true}; + /** * Private self instance for callbacks */