Jump to content

No graphics / USB / Audio after wake


anor4k
 Share

586 posts in this topic

Recommended Posts

What AMD kexts do/don't load in safe mode?

Using a HD7xxx Card the Kext which loads in normal boot and not in safe mode is AMDRadeonX4000.kext.

On HD6xxx Cards it is AMDRadeonX3000.kext, but we knew this since a while, it is also mentioned in this thread.

 

What would be great is, if someone with reverse engineering knowledge could take a look at the differences between the current X4000 and the Yosemite X4000 (or the equivalent X3000).

Link to comment
Share on other sites

I give a try, thanks!  :thumbsup_anim:

 

EDIT: Nop not working on my hack...my hdd is 1-2 year old. i dont have older disk right now to check. 

 

Old disk connected to sata2 or sata3 port? can you please connect your ssd to sata2 port and check sleep again?

Wake works every time?

I've connected the drive to the last port and that makes the difference, it's not working every time but on 80-90% wake is successfull.

  • Like 2
Link to comment
Share on other sites

I've connected the drive to the last port and that makes the difference, it's not working every time but on 80-90% wake is successfull.

I cant now verify because i swap my amd card with my friends nvidia card. 750ti (wake working now.)

Can you upload an ioreg export?

Motherboard model?

Link to comment
Share on other sites

I've connected the drive to the last port and that makes the difference, it's not working every time but on 80-90% wake is successfull.

 

Can you please post a complete ACPI dump of your machine (with patched DSDT in place in case you are using a patched DSDT).

 

Mieze

Link to comment
Share on other sites

7950glviewer.png

I just checked my setup in OpenGL viewer, dunno if its still relevant.

 

Clover 3280 with no gfx injection.

FakeSMC.kext is 6.11.1328

FakePCIID.kext & FakePCIID_XHCIMux.kext along with .ssdt for usb3

Intel disabled in UEFI.

7950 Sapphire, reference layout ( 810MHz) in PCIe slot 1

7950 Sapphire boost ( 925MHz), 4 port layout (2xDVI,hdmi,DP) PCIe slot 2 monitors connected to DVI and DP. This card is set as first boot in UEFI.

 

Last posts in kernel log before sleep:

26. okt. 2015, 18.27.21 kernel[0]: PM response took 3070 ms (61, powerd)
26. okt. 2015, 18.27.21 kernel[0]: kern_open_file_for_direct_io(0)
26. okt. 2015, 18.27.21 kernel[0]: kern_open_file_for_direct_io took 0 ms
26. okt. 2015, 18.27.21 kernel[0]: Opened file /var/log/SleepWakeStacks.bin, size 172032, extents 1, maxio 2000000 ssd 1
26. okt. 2015, 18.27.21 kernel[0]: polled file major 1, minor 3, blocksize 4096, pollers 5

 

It's instant wake with black screens.

after powerdown and booting this is kernelog:

26. okt. 2015, 18.28.38 kernel[0]: Sleep failure code 0x00000000 0x27006700

26. okt. 2015, 18.28.57 kernel[0]: AMDRadeonX4000_AMDAccelDevice: IOUserClient outputCount count mismatch
26. okt. 2015, 18.28.57 kernel[0]: AMDRadeonX4000_AMDAccelDevice: IOUserClient outputCount count mismatch

Link to comment
Share on other sites

Hey guys,

 

I've been tinkering with this issue for a while now, before I found this thread. Here's what I can share hoping it may be helpful:

 

When booting with Intel Graphics as first graphics device to initialize, wake works just fine (as mentioned here before, but for UEFI - confirmed for legacy!).

Even if I connect HDMI from onboard (Intel) to external (Radeon) graphics card, I have dual screen (DVI & HDMI, both on Radeon) and system still wakes flawlessly. I can even reboot with this configuration (not seeing anything during boot until monitors turn on at login screen) and still works fine. In this scenario OSX sees both graphics devices. I wasn't able to boot with PCI-E as first to initialize (so I'm not "blind-booting") and still having Intel Graphics activated - to see what difference that makes.

 

Hope this finding helps somehow to narrow down the cause. Without being a developer, it does not make much sense to me, that the problem is gone only with additional hardware activated (or maybe it does? Maybe something necessary not loading when on PEG?). Also thought of something HDMI-Audio-related being the cause, though error messages indicate framebuffer issues - which on the other hand does not explain why it works well with additional intel graphics active... 

 

Let me know if I can do anything to help resolve this.

 

Cheers,

Reno

  • Like 1
Link to comment
Share on other sites

Hey guys,

 

I've been tinkering with this issue for a while now, before I found this thread. Here's what I can share hoping it may be helpful:

 

When booting with Intel Graphics as first graphics device to initialize, wake works just fine (as mentioned here before, but for UEFI - confirmed for legacy!).

Even if I connect HDMI from onboard (Intel) to external (Radeon) graphics card, I have dual screen (DVI & HDMI, both on Radeon) and system still wakes flawlessly. I can even reboot with this configuration (not seeing anything during boot until monitors turn on at login screen) and still works fine. In this scenario OSX sees both graphics devices. I wasn't able to boot with PCI-E as first to initialize (so I'm not "blind-booting") and still having Intel Graphics activated - to see what difference that makes.

 

Hope this finding helps somehow to narrow down the cause. Without being a developer, it does not make much sense to me, that the problem is gone only with additional hardware activated (or maybe it does? Maybe something necessary not loading when on PEG?). Also thought of something HDMI-Audio-related being the cause, though error messages indicate framebuffer issues - which on the other hand does not explain why it works well with additional intel graphics active... 

 

Let me know if I can do anything to help resolve this.

 

Cheers,

Reno

 

That's really interesting news. Well, it might be the case that the activated onboard graphics causes something to load which doesn't load when using AMD graphics only. On the other hand the power management routines in the DSDT depend on the selected primary graphics device, e.g. the execution paths are different if you have a discrete graphics card as the primary device than those for a system with onboard graphics as the primary device.

 

It would be interesting to know if the system still wakes up properly when you set ig-platform-id to a value which defines 0 ports.

 

@wern apfel: Thank you very much. I will examine it carefully. Maybe it gives us a hint. The fact that it wakes up most of the times could be an indication for a race condition in the wakeup procedure.

 

Mieze

Edited by Mieze
Link to comment
Share on other sites

I think the problem is not in ACPI/PowerManagement.

If no QE/CI then Radeon will wake up.

 

There is interesting observation about invalid client count. Looks like the system can't wake a non-existing connector. In the case of additional Intel card it can.  :huh:

Link to comment
Share on other sites

 

It would be interesting to know if the system still wakes up properly when you set ig-platform-id to a value which defines 0 ports.

 

Hi Mieze,

 

just tried it, set ig-platform-id to 0x01620006. System boots with Intel Graphics active (monitor@onboardHDMI) works normally, though "System Report" now only shows Radeon, no Intel gfx. But system still wakes normally. What does this mean? 

Link to comment
Share on other sites

@Ren

 

Hi Mieze,

 

just tried it, set ig-platform-id to 0x01620006. System boots with Intel Graphics active (monitor@onboardHDMI) works normally, though "System Report" now only shows Radeon, no Intel gfx. But system still wakes normally. What does this mean? 

 

Ah, my fault! I didn't read your specs and forgot that your machine has got HD3000 graphics, not HD4000 as I assumed. Well, my original iMac12,1 doesn't have this property for the IGPU at all. Try to disable injection for onboard graphics completely and try again. This should disable onboard graphics output within OS X.

 

Mieze

Link to comment
Share on other sites

Thanks for your response Mieze,

 

without injection in Clover it still works well, no matter if 0 or 1 ports is set. Only difference is that without injection, the Onboard graphics is correctly detected as HD3000, while Clover injection showed HD2000 - why ever...

Therefore, as long as IGPU is active, sleep/wake works well... No matter with what settings. Again the question: what does this tell us? Do you have an assumption you are trying to confirm?

Link to comment
Share on other sites

Thanks for your response Mieze,

 

without injection in Clover it still works well, no matter if 0 or 1 ports is set. Only difference is that without injection, the Onboard graphics is correctly detected as HD3000, while Clover injection showed HD2000 - why ever...

Therefore, as long as IGPU is active, sleep/wake works well... No matter with what settings. Again the question: what does this tell us? Do you have an assumption you are trying to confirm?

On recent iMacs with discrete graphics the IGPU isn't disabled, but it's configured to have 0 ports. That's the major difference between hacks and Apple machines with regard to graphics. My theory is that we have to leave it enabled and in a certain way you already confirmed that. The problem is now that we need to find the configuration which works best.

 

Mieze

Link to comment
Share on other sites

Ok, apparently everything is fine as long as Intel Gfx is active. Problem is, I only get it working, when it is set as the primary Gfx. In that case, no matter with what settings (0or1 port, inject or not..) wake works just fine. 

As soon as I set PEG to primary, IGPU is not recognized by Clover. Under "Graphics" in Options in Clover Bootmenu, there is only the Radeon Card detected. When IGPU is set as primary Clover detects both. 

Also, when not set primary, IGPU does not work correctly. On the according monitor, there are only colored lines, only the mouse pointer is displayed correctly, everything else is totally messed up. I remember this worked well under Chameleon and ML/Yosemite... And wake does not work again.

I wonder if - should Clover correctly detect Intel Gfx although not primary - this might resolve our problems. I would happily spare 32 Mb of RAM for Intel Gfx, if in return I could have working sleep/wake :)

@Slice: Are there known issues with Clover and IGPU+dedicatedGPU configurations? Or is this a local problem with my hardware?

 

Thanks

Reno

Link to comment
Share on other sites

@Slice: Are there known issues with Clover and IGPU+dedicatedGPU configurations? Or is this a local problem with my hardware?

 

Thanks

Reno

 

This is a known issue. I think there was a patch posted in either the Clover general discussion/Clover issue reporting threads that initialized the IGPU before the PCIe GPU so you could inject both when PEG is set to primary.

Link to comment
Share on other sites

On recent iMacs with discrete graphics the IGPU isn't disabled, but it's configured to have 0 ports. That's the major difference between hacks and Apple machines with regard to graphics. My theory is that we have to leave it enabled and in a certain way you already confirmed that. The problem is now that we need to find the configuration which works best.

 

Mieze

As I posted a few days ago (#91), my MacPro3,1 is the living proof that the problem doesn't affect real Macs even if they don't have an iGPU, so it must be possible to solve that issue in a more generic way  :)

ioreg dumps are there, too, maybe you can read more from them than I can...

Link to comment
Share on other sites

This is a known issue. I think there was a patch posted in either the Clover general discussion/Clover issue reporting threads that initialized the IGPU before the PCIe GPU so you could inject both when PEG is set to primary.

Clover did no graphics initialization. Pause.... It is BIOS work.

Injection is a set of pairs / and the set is not ordered.

 

I can't make Radeon wake with any Intel injections and initializations. I want another way.

Link to comment
Share on other sites

 Share

×
×
  • Create New...