Closed Goshin closed 4 years ago
586
Thank you for your information, but excuse me, would you mind elaborating about the related details for the problem?
Apple GuC is required for proper power management, which does not work on non-Apple computers.
Apple GuC is required for proper power management, which does not work on non-Apple computers.
but It is strange that it only randomly happens about once for five times waking up.
You may try to check syslog messages from IGFX kexts, it usually includes a rather detailed trace.
You may try to check syslog messages from IGFX kexts, it usually includes a rather detailed trace.
Thanks for your advice. Seems the kext only outputs some log when booting.
2020-03-03 17:29:09.147110+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Ring Size: 32 KB
2020-03-03 17:29:09.147113+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Ring Size: 32 KB
2020-03-03 17:29:09.147123+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Scheduler Preemption Enabled!
2020-03-03 17:29:09.147126+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Scheduler Preemption Enabled!
2020-03-03 17:29:09.147127+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionDelayIntervalUS to 400 microseconds
2020-03-03 17:29:09.147130+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionDelayIntervalUS to 400 microseconds
2020-03-03 17:29:09.147131+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionTimerIntervalUS to 2000 microseconds
2020-03-03 17:29:09.147133+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionTimerIntervalUS to 2000 microseconds
2020-03-03 17:29:09.147134+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Will NOT fallback to host-side scheduling if graphics firmware fails to load
2020-03-03 17:29:09.147137+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Will NOT fallback to host-side scheduling if graphics firmware fails to load
2020-03-03 17:29:09.147138+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Tail Coalescing Enabled.
2020-03-03 17:29:09.147140+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Tail Coalescing Enabled.
2020-03-03 17:29:09.147141+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Page Fault Handling Enabled.
2020-03-03 17:29:09.147143+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Page Fault Handling Enabled.
2020-03-03 17:29:09.147144+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Single Channel Index Disabled
2020-03-03 17:29:09.147146+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Single Channel Index Disabled
2020-03-03 17:29:09.147147+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Channel Wait For Complete Disabled
2020-03-03 17:29:09.147149+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Channel Wait For Complete Disabled
2020-03-03 17:29:09.147150+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: Process CSB using HWS.
2020-03-03 17:29:09.147152+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: Process CSB using HWS.
2020-03-03 17:29:09.147153+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: PM notify enabled
2020-03-03 17:29:09.147155+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: PM notify enabled
2020-03-03 17:29:09.147161+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Forced to use Host Preemptive Scheduler
2020-03-03 17:29:09.147163+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Forced to use Host Preemptive Scheduler
2020-03-03 17:29:09.158586+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Address: PPGTT, Separate Address Space
2020-03-03 17:29:09.158589+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Address: PPGTT, Separate Address Space
2020-03-03 17:29:09.158590+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] MultiForceWake Enabled: Using 3D Driver
2020-03-03 17:29:09.158592+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] MultiForceWake Enabled: Using 3D Driver
2020-03-03 17:29:09.158593+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression Enabled.
2020-03-03 17:29:09.158595+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression Enabled.
2020-03-03 17:29:09.158596+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression for IOSurface is Enabled.
2020-03-03 17:29:09.158598+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression for IOSurface is Enabled.
2020-03-03 17:29:09.163776+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Throttle Cap = 100ms.
2020-03-03 17:29:09.163779+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Throttle Cap = 100ms.
2020-03-03 17:29:09.166512+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Graphics accelerator is using scheduler: Host Preemptive
2020-03-03 17:29:09.166516+0100 0x462 Default 0x0 0 0 kernel: (AppleIntelKBLGraphics) [IGPU] Graphics accelerator is using scheduler: Host Preemptive
Though I don't know the reason for the log repeating, to my knowledge, I can't figure out anything strange.
Update:
avoidFirmwareLoading
part solves the UHD630 350MHz issue after waking up._PST
method in the DSDT patch solves the sleep issue.Everything is ok now, though no idea why it is okay to load the firmware on my UHD 630.
boot log
kernel: (AppleIntelKBLGraphics) [IGPU] Ring Size: 32 KB
kernel: (AppleIntelKBLGraphics) [IGPU] Ring Size: 32 KB
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Scheduler Preemption Enabled!
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Scheduler Preemption Enabled!
kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionDelayIntervalUS to 400 microseconds
kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionDelayIntervalUS to 400 microseconds
kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionTimerIntervalUS to 2000 microseconds
kernel: (AppleIntelKBLGraphics) [IGPU] Setting preemptionTimerIntervalUS to 2000 microseconds
kernel: (AppleIntelKBLGraphics) [IGPU] Will NOT fallback to host-side scheduling if graphics firmware fails to load
kernel: (AppleIntelKBLGraphics) [IGPU] Will NOT fallback to host-side scheduling if graphics firmware fails to load
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Tail Coalescing Enabled.
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Tail Coalescing Enabled.
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Page Fault Handling Enabled.
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Page Fault Handling Enabled.
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Single Channel Index Disabled
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Single Channel Index Disabled
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Channel Wait For Complete Disabled
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler Channel Wait For Complete Disabled
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: Process CSB using HWS.
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: Process CSB using HWS.
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: PM notify enabled
kernel: (AppleIntelKBLGraphics) [IGPU] Scheduler: PM notify enabled
kernel: (AppleIntelKBLGraphics) [IGPU] Selected Apple Firmware Scheduler
kernel: (AppleIntelKBLGraphics) [IGPU] Selected Apple Firmware Scheduler
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Address: PPGTT, Separate Address Space
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Address: PPGTT, Separate Address Space
kernel: (AppleIntelKBLGraphics) [IGPU] MultiForceWake Enabled: Using 3D Driver
kernel: (AppleIntelKBLGraphics) [IGPU] MultiForceWake Enabled: Using 3D Driver
kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression Enabled.
kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression Enabled.
kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression for IOSurface is Enabled.
kernel: (AppleIntelKBLGraphics) [IGPU] Render Compression for IOSurface is Enabled.
kernel: (AppleIntelKBLGraphics) [IGPU] Begin Gfx firmware load process
kernel: (AppleIntelKBLGraphics) [IGPU] Begin Gfx firmware load process
kernel: (AppleIntelKBLGraphics) [IGPU] ForceWake Multithread = 0x30002
kernel: (AppleIntelKBLGraphics) [IGPU] ForceWake Multithread = 0x30002
kernel: (AppleIntelKBLGraphics) [IGPU] CONFIG0 (0xD00) = 0x80000000
kernel: (AppleIntelKBLGraphics) [IGPU] CONFIG0 (0xD00) = 0x80000000
kernel: (AppleIntelKBLGraphics) [IGPU] GT_THREAD_STATUS = 0xc00b0000
kernel: (AppleIntelKBLGraphics) [IGPU] GT_THREAD_STATUS = 0x400b0000
kernel: (AppleIntelKBLGraphics) [IGPU] Doing retry #0
kernel: (AppleIntelKBLGraphics) [IGPU] Doing retry #0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Firmware Version: 2.14.0.0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Firmware Version: 2.14.0.0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics accelerator is using scheduler: Apple Firmware
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics accelerator is using scheduler: Apple Firmware
sleep log
kernel: (AppleIntelKBLGraphics) [IGPU] Begin Gfx firmware load process
kernel: (AppleIntelKBLGraphics) [IGPU] Begin Gfx firmware load process
kernel: (AppleIntelKBLGraphics) [IGPU] ForceWake Multithread = 0x30002
kernel: (AppleIntelKBLGraphics) [IGPU] ForceWake Multithread = 0x30002
kernel: (AppleIntelKBLGraphics) [IGPU] CONFIG0 (0xD00) = 0x80000000
kernel: (AppleIntelKBLGraphics) [IGPU] CONFIG0 (0xD00) = 0x80000000
kernel: (AppleIntelKBLGraphics) [IGPU] GT_THREAD_STATUS = 0x400b0000
kernel: (AppleIntelKBLGraphics) [IGPU] GT_THREAD_STATUS = 0x400b0000
kernel: (AppleIntelKBLGraphics) [IGPU] Doing retry #0
kernel: (AppleIntelKBLGraphics) [IGPU] Doing retry #0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Firmware Version: 2.14.0.0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Firmware Version: 2.14.0.0
kernel: (AppleIntelKBLGraphics) [IGPU] A message did not receive a response when firmware went to sleep!
kernel: (AppleIntelKBLGraphics) [IGPU] A message did not receive a response when firmware went to sleep!
kernel: (AppleIntelKBLGraphics) [IGPU] Request to send Host -> Gfx firmware message when the firmware channel is not active!
kernel: (AppleIntelKBLGraphics) [IGPU] Request to send Host -> Gfx firmware message when the firmware channel is not active!
kernel: (AppleIntelKBLGraphics) [IGPU] Begin Gfx firmware load process
kernel: (AppleIntelKBLGraphics) [IGPU] Begin Gfx firmware load process
kernel: (AppleIntelKBLGraphics) [IGPU] ForceWake Multithread = 0x30002
kernel: (AppleIntelKBLGraphics) [IGPU] ForceWake Multithread = 0x30002
kernel: (AppleIntelKBLGraphics) [IGPU] CONFIG0 (0xD00) = 0x80000000
kernel: (AppleIntelKBLGraphics) [IGPU] CONFIG0 (0xD00) = 0x80000000
kernel: (AppleIntelKBLGraphics) [IGPU] GT_THREAD_STATUS = 0x400b0000
kernel: (AppleIntelKBLGraphics) [IGPU] GT_THREAD_STATUS = 0x400b0000
kernel: (AppleIntelKBLGraphics) [IGPU] Doing retry #0
kernel: (AppleIntelKBLGraphics) [IGPU] Doing retry #0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Firmware Version: 2.14.0.0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Firmware Version: 2.14.0.0
kernel: (AppleIntelKBLGraphics) [IGPU] A message did not receive a response when firmware went to sleep!
kernel: (AppleIntelKBLGraphics) [IGPU] A message did not receive a response when firmware went to sleep!
kernel: (AppleIntelKBLGraphics) [IGPU] Begin Gfx firmware load process
kernel: (AppleIntelKBLGraphics) [IGPU] Begin Gfx firmware load process
kernel: (AppleIntelKBLGraphics) [IGPU] ForceWake Multithread = 0x30002
kernel: (AppleIntelKBLGraphics) [IGPU] ForceWake Multithread = 0x30002
kernel: (AppleIntelKBLGraphics) [IGPU] CONFIG0 (0xD00) = 0x80000000
kernel: (AppleIntelKBLGraphics) [IGPU] CONFIG0 (0xD00) = 0x80000000
kernel: (AppleIntelKBLGraphics) [IGPU] GT_THREAD_STATUS = 0x400b0000
kernel: (AppleIntelKBLGraphics) [IGPU] GT_THREAD_STATUS = 0x400b0000
kernel: (AppleIntelKBLGraphics) [IGPU] Doing retry #0
kernel: (AppleIntelKBLGraphics) [IGPU] Doing retry #0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Firmware Version: 2.14.0.0
kernel: (AppleIntelKBLGraphics) [IGPU] Graphics Firmware Version: 2.14.0.0
kernel: (AppleIntelKBLGraphics) [IGPU] A message did not receive a response when firmware went to sleep!
kernel: (AppleIntelKBLGraphics) [IGPU] A message did not receive a response when firmware went to sleep!
Sorry, do you mean that Apple GuC firmware loads for you?
I not sure it is loaded or not. I remove the following code in WhateverGreen/kern_igfx.cpp
, then the strange frequency issue never happens again.
- if (forceOpenGL || moderniseAccelerator || avoidFirmwareLoading) {
- auto startSym = "__ZN16IntelAccelerator5startEP9IOService";
- if (cpuGeneration == CPUInfo::CpuGeneration::SandyBridge)
- startSym = "__ZN16IntelAccelerator5startEP9IOService";
-
- KernelPatcher::RouteRequest request(startSym, wrapAcceleratorStart, orgAcceleratorStart);
- patcher.routeMultiple(index, &request, 1, address, size);
-
- if (loadGuCFirmware && getKernelVersion() <= KernelVersion::Mojave)
- loadIGScheduler4Patches(patcher, index, address, size);
- }
can you determine from the log attached?
Well, it does look like it is using Apple GuC. What I cannot understand is how can it work on a generic computer. What is the manufacturer of your laptop? I can implement the code to conditionally disable Apple-only firmware checks, but that is quite weird.
The ODM model is Tongfang GK5CP6X. Some info about the ODM model:
https://www.reddit.com/r/EVOOGaming/comments/e94z7z/info_tongfang_gk5cp6x/ https://noteb.com/?model/model.php?conf=3926361701696785326_4010&ex=USD
It seems quite normal, but the CPU i7-9750H is also equipped on the MacBook Pro 15,1 (2019), which is the model choice in my SMBIOS config. https://everymac.com/systems/apple/macbook_pro/specs/macbook-pro-core-i7-2.6-six-core-15-mid-2019-touch-bar-specs.html
Maybe we can test on other laptops with a similar condition.
Yes, this makes sense to me. Sure, I will add a way to configure GuC firmware switch-off. It will also make sense to test DRM playback and perform provisioning.
CC @osy86, @Download-Fritz, @07151129
DRM once worked properly for Chrome+widevine and Safari+fairplay (HLS&Smooth) during testing before, and the QuickTime player could also play the trailer mentioned in FAQ.Shiki.en.md
.
Now it is unstable, but I don't remember the changes I made at that time. Now only the Safari and QuickTime player work. HLS+fairplay on Safari is laggy and choppy, while Smooth+fairplay is good.
Trailer content in QuickTime player cannot be captured in the screenshot.
Some errors in the log:
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
com.apple.WebKit.WebContent: (AppleIntelKBLGraphicsVADriver) AVD error: Perf capability check failed: 0xe00002be
Regarding GuC, I pushed changes adding support to forcing Apple GuC firmware loading on any machine. This is what you want to use.
Regarding DRM, bitmovin.com test site is not useful, as it does not use any hardware. Same for Chromium/widevine. iTunes movies, encrypted iTunes trailers, and Apple TV are relevant. You are best to test Apple TV (there are free shows, usually first episodes), as iTunes trailers do not require HDCP, and can be patched fully with software.
So, what I want you to do is to test:
igfxfw=2
and confirm that it is back to normal (i.e. equivalent to commenting the code out).igfxfw=2 igfxpavp=1
and confirm that there are no random freezes when e.g. playing videos, possibly encrypted, but also others in Safari/QuickTime/etc.igfxfw=2 igfxpavp=1 shikigva=128
and confirm that Apple TV works and iTunes encrypted trailers play.We should also advise users to try enabling those flags to get better IGPU performance
Quite possible if it is stable…
Sorry, is it for just Laptops?
Not necessarily. It seems to work with (very few) laptops and may also work with (very few) desktops. Do not expect too much.
@vit9696 thanks for this, I can confirm that im able to watch the trailer attached on the ShikiFAQ with those two boot-args. HP Elite 8300 SFF Intel HD 4000 Graphics using Macmini6,1 SMBIOS
It seems that macmini 6,1 has the same IGPU device IDs that my desktop have.
This is amazing, thanks a lot !
So it seems that macOS does hide DRM content as the screenshot turned out like this.
@Sniki You wrote garbage, because GuC only on SKL+.
@Sniki You wrote garbage, because GuC only on SKL+.
So you what you are saying that i only need igfxpavp=1 for DRM-Content to work ?
Trailer from ShikiFAQ shows without boot-args. It was solved long ago. Old DRM in 480p shows if used simply WEG.
GuC firmware load successfully on my device too with WEG 1.3.8. My Laptop is XPS 9570 Intel i7 8750h.
Also the power management is a lot better.Idle pkg power went down from 2.8Watts to .9 Watts.I dont know if this is all cause of Apple Firmware.But it surely did have an impact.
I added igfxfw=2 igfxpavp=1 boot flags on my Intel UHD620 , but when playing video ,touchpad freezes for a sec or so and then starts again.
I added igfxfw=2 igfxpavp=1 boot flags on my Intel UHD620 , but when playing video ,touchpad freezes for a sec or so and then starts again.
Remove these boot-arguments. igfxpavp=1 not work. igfxfw=2 works only at 14 nanometer chipsets.
I have Intel i5-8250u, which is 14nm.
It not chipset, it CPU.
Related specs of my laptop:
The
avoidFirmwareLoading
fix in WhateverGreen resolves the sleep issue on my laptop. Without WhateverGreen, the laptop won't sleep properly, stuck after the screen turns off.However, occasionally, when the laptop wakes up from sleep, the lowest frequency of the UHD 630 will be locked to 350MHz and the laptop will not be able to sleep again, just like what happens when WhateverGreen or the
avoidFirmwareLoading
is removed.I tried removing all the other patches in WhateverGreen but it was not helpful. Hence it is not caused by the other parts of WhateverGreen.
Does anyone have any idea what causes this? Does the firmware loading happen when waking up?
Feel free to ask me for more related information. Thanks in advance.