Contribute
Register

HP ZBOOK G5 17

Back to testing and Big Sur works in UMA mode! (same as Catalina cant make it work with WX-4170)

Also, finally figured out a nice workaround for WX-4170 compute using laptop display without snow.
Method only works in Mojave:
Bios in Hybrid Mode.
igfxgl=1 bootflag (forcing no metal on IGPU)
and UMA framebuffer patches even though outputs are being run by WX card.

Results
OSX is forced to only use WX for OpenGL and Metal, but uses IGPU to drive main laptop display.
Benchmarks are similar to hdmi screen mirror dongle trick, so very usable.
But I added PolarisBoost Kext to make them better, but soon figured it was not safe, as it was forcing the GPU clock to stay at 1.200 Ghz all the time, even on idle, and that made the GPU temp under load very bad, so I edited the polarisboost kext and removed the force max flags.
Success!
Benchmarks are almost the same as with external outputs.
Something funny is that H265 encoding using handbrake is still being handled by the IGPU, maybe I can adjust my AppleGVA edits to also force H264 encodes and decodes on IGPU, but keep all metal and compute on the ATI card.

Using the UMA framebuffer edits is to avoid KP if connecting external monitor after the laptop wakes from sleep. It seems like the conectors somehow revert to IGPU, which is very weird. Before sleep, external screens are handled by GPU, but after sleep, they are now handled by IGPU. And that explains why I was getting a KP when plugging external display on hybrid after sleep. Probably also breaks HDMI audio out, but haven't tested yet.
Will continue to troubleshoot this one, but it looks like an DSDT edit.

Also I find that if I plug a monitor (before sleep) and run benchmarks on the external screen while on batt power, something weird happens and performance drops substantially. I tried different framebuffers but this one seems to be ATI related.
Could be Polarisboost helps on internal screen but screws externals?
I'm thinking AGDP related

A nice side effect of this is that CPU temp is lower, so now using this (undervoltable) old Bios that keeps fans spinning faster at lower temps is a bit less noisy.
 
Last edited:
Finally got the WX-4170 VBios directly from a G4 Bios Update, and performance is much better in all my tests.

The only thing that bugs me is the screen snow in discrete mode, but I read somewhere that the screen snow is a compatibility problem with my actual LCD panel, and to make it work I need to somehow edit the EFI or change the screen, but after this last round of tests I don't see the point.

I'm in my "no metal UHD" / "Hybrid" configuration and the numbers are better than in my old Discrete tests, so this new ROM is awesome.

Discrete.png

(Discrete vs Hybrid modes)

Metal Bench.png

METAL

Open CL.png

OPEN CL

To use this in a G4 or G5 Zbook, the rom needs to be flashed to the WX-4170 using atiflash from techpowerup using windows.

I'm using Mojave and have been intensively using this setup for a couple weeks and it is incredibly stable. as far as my backup OS (High sierra), it doesn't like my modified Hybrid mode and gives me a Red screen on boot. But if I remove my igfxgl=1 bootflag then all is good.

Tomorrow I'll try and install Catalina and see if it works.

Catalina is still no go. Something changed in the AMDRadeonX4000.kext and it won't boot if it is enabled. It stalls just as the second stage starts.

Attached the VBIOS ROM for anyone that needs it.
 

Attachments

  • WX-4170.rom.zip
    102.7 KB · Views: 51
Last edited:
140 seems to be working for now, I'll run longer tests, but seems stable enough, thanks for the Bios rollback tip!



Battery is ok, but the WX-4170 is a bit of a hog in terms of wasting power and if it is enabled in bios, it idles wasting 22W.
If disabled UMA mode, and with current CPU friend profile, I get maybe 4-5 hours. Big screen doesn't help.
With WX I get maybe 2 - 2.5hrs both doing light work.


Weird, neither my HS/Mojave/Catalina stall for more than a second and it's just as the bluetooth firmware is being uploaded.

What codec does your Zbook have?
Run a voodoohda dump, I did so many things to try to make mine work, that I'm sure that as long as it's not the conexant one, I can help.

is it the Studio G5 model?


----

One of the things I still want to do is try to make a SSDT to be able to use the Dell Sensors kext from VirtualSMC, but may need some help on that one.
I am sorry, but i cannot find how to do a voodoohda dump, i have searched for hours but it seems so easy that i can't find anything about that :(
Attached my current test EFI with opencore 6.5 , i will try to patch the FN keys on ACPI in the meanwhile to avoid patching the kext at every update

I can boot also your 6.4 with voodoohda to do the dump if i can find how...

Hackintool gives me Device 0x8086A348 Sub Device 0x103C842A

EDIT

might have found that, attached
 

Attachments

  • OCzbook15g5.zip
    12.6 MB · Views: 63
  • DUMP.txt
    23.6 KB · Views: 87
Last edited:
Looks like you also have the CX8400 and the same pin config I have.
Try disabling VoodooHDA and use the applealc.kext I attached to my efi folder and add NVRAM boot arg: alcid=7 or alcid=12 or alcid=14.
I remember those were my 3 options where I got stuck. I just couldn't figure out why the speaker worked sometimes and sometimes not.
One of them is supposed to automatically switch input on headphone plug.
Pretty sure an external microphone will not work unless you use codec commander or plugfix script.

Report back if you have more luck than I did and if all fails, revert back to VoodooHDA.
 
Looks like you also have the CX8400 and the same pin config I have.
Try disabling VoodooHDA and use the applealc.kext I attached to my efi folder and add NVRAM boot arg: alcid=7 or alcid=12 or alcid=14.
I remember those were my 3 options where I got stuck. I just couldn't figure out why the speaker worked sometimes and sometimes not.
One of them is supposed to automatically switch input on headphone plug.
Pretty sure an external microphone will not work unless you use codec commander or plugfix script.

Report back if you have more luck than I did and if all fails, revert back to VoodooHDA.
No luck using your applealc from page 3 , but you said it was made to work just with AMD gpu anyway. Tried 7 12 and 14.

Also still with your map, brightness are on f9 and f10 somehow

rehabman guide were never that easy to read to me (somehow the way he writes taking everything else as given...) and are now even worst when all the stuff he talked about is outdated :( i hope i can find a way to fix this myself
 
Last edited:
No luck using your applealc from page 3 , but you said it was made to work just with AMD gpu anyway. Tried 7 12 and 14.

Also still with your map, brightness are on f9 and f10 somehow

rehabman guide were never that easy to read to me (somehow the way he writes taking everything else as given...) and are now even worst when all the stuff he talked about is outdated :( i hope i can find a way to fix this myself

My Zbook G5 17 has 3 audio codecs (chips), two are digital only, the intel UHD630, and the WX-4170 (for HDMI audio out) and then the other one is the CX8400 that has speaker/headphone outs and internal/external mic ins. Using AppleALC, I created an ID that uses the CX8400 and has the correct pins, and it "works", but for some unknown reason the speaker output stops working if on battery power or randomly, and no matter what I did, nothing changed that. It could be a problem with AppleALC itself or how AppleHDA talks to the CX8400 or some other unknown that I just don't want to spend days trying to fix, when VoodooHDA works perfectly fine.
Unfortunately I couldn't make HDMI outputs work using VoodooHDA, only using AppleALC, so I found a dirty trick of using both, which you shouldn't do, since they are mutually exclusive kexts, but in my case I edited them so they don't attach themselves to the same codec, and each one drives the one that they can drive properly. Voodoo for the CX8400 and ALC for HDMI (using the WX-4170)
I'm not sure you can do this trick with the built in on the UHD630.

The brightness keys are tricky, the mapping is very confusing, I remember it took a while to get it sorted out.
I'll try to add the edits to a SSDT so they can survive updates.
 
My Zbook G5 17 has 3 audio codecs (chips), two are digital only, the intel UHD630, and the WX-4170 (for HDMI audio out) and then the other one is the CX8400 that has speaker/headphone outs and internal/external mic ins. Using AppleALC, I created an ID that uses the CX8400 and has the correct pins, and it "works", but for some unknown reason the speaker output stops working if on battery power or randomly, and no matter what I did, nothing changed that. It could be a problem with AppleALC itself or how AppleHDA talks to the CX8400 or some other unknown that I just don't want to spend days trying to fix, when VoodooHDA works perfectly fine.
Unfortunately I couldn't make HDMI outputs work using VoodooHDA, only using AppleALC, so I found a dirty trick of using both, which you shouldn't do, since they are mutually exclusive kexts, but in my case I edited them so they don't attach themselves to the same codec, and each one drives the one that they can drive properly. Voodoo for the CX8400 and ALC for HDMI (using the WX-4170)
I'm not sure you can do this trick with the built in on the UHD630.

The brightness keys are tricky, the mapping is very confusing, I remember it took a while to get it sorted out.
I'll try to add the edits to a SSDT so they can survive updates.
First thank for all the help (i hope you got some juice from that undervolt meanwhile :D ) the map is not as important as the audio codec anyway. I understand what you did, i just don't know why i can't get any layout id to work with your kext either. VooDooHDA is not good for my usage (logic pro production)
 
Are you sure you ran the getdump command with voodoohda loaded and then saved the output of the terminal screen?
 
Are you sure you ran the getdump command with voodoohda loaded and then saved the output of the terminal screen?
yep, i doubt it would have worked otherwise! but i'll try again just in case and report asap, thanks a lot

EDIT seems exactly the same
 

Attachments

  • DUMP2.txt
    23.7 KB · Views: 61
Last edited:
yep, i doubt it would have worked otherwise! but i'll try again just in case and report asap, thanks a lot

EDIT seems exactly the same
I looked into the Applealc speaker problem and it seems to be related with battery polling. I believe the system is updating some ACPI variable on every battery poll and somehow that is triggering a mute on the speaker.
If AppleALC is more important than battery reading, just disable whichever Battery.kext you use (it doesn't matter if it's Acpibatterymanager or SMCBattery, they both do it so I donb't think the problem lies in their code, but rather in how OSX queries/writes back to the EC) I couldn't narrow it down more than 3 possible regions, but I tried renaming them and still it mutes.
As long as the ac is plugged it's ok. If system doesn't sleep I believe it may be ok (but may also just take a bit longer to trigger the mutes), and if system sleeps or goes into battery power and the battery kext is loaded, then it will mute and not show anything on system log. So the system is unaware the speaker muted, and if you switch back to headphones and then back to speaker, you get sound for a few seconds, then battery polls, then speaker mutes.
Comparing my DSDT with a MBP's DSDT, the possible conflicting regions are:
PS0C
PRST
PBST
This last one in particular seems interesting as it appears the battery device updates this region on polls, and in the Zbook this region belongs to / and if changed, then a cascade of other settings and devices get triggered.
Also another option is that an ACPI variable that get's set on startup doesn't get properly updated on wake, and that triggers the mutes when the poll makes the EC do a cycle or something...
I'll keep looking when I have more time.
In the meantime, you can use my AppleALC with alcid=14 or the current one on acidantera alcid=12 (just no mute button enabled on this version)
 
Last edited:
Back
Top