- Jun 13, 2016
- HP Elitebook 840 G1
- HD 4400, 1600x900
- Mobile Phone
I couldn't find any VBIOS in either one of those installers.
Also just an update on my tests. I think there's a problem with the dual GPU config.
I'm not sure what configuration is used on Macbooks with dual GPU regarding which GPU drives which display, but in my Zbook, when in Hybrid mode, the GPU can't run the internal display (unless through the IGPU using switchable graphics which won't work on Mac) and the IGPU is connected directly, so I can't use an empty framebuffer to force the WX4170 to drive the internal while keeping the IGPU for h264 and other hardware acceleration things.
But in GPU only mode, the IGPU is completely disabled so can't use it in tandem.
I think it is a catch with these machines. It appears they have multiplexing capabilities which is awesome, so you can use different modes, but they have default settings that have no easy solution.
Internal and external ports connected to IGPU and DGPU is turned off entirely (doesn't even generate heat)
Internal display connected to IGPU
External displays connected to DGPU
DGPU connected to internal display using switchable graphics to IGPU, so direct draw works on Windows/Linux, but not on Mac.
Internal and external ports connected to DGPU, but it looks like the IGPU is ignored for computation only. Maybe there's a empty framebuffer/tweak/combination I'm missing that will enable this.
My screen still becomes noise when it turns off.
That said, I'm using Hybrid mode and I've managed to force use of the DGPU for h264 encoding and decoding, and other tasks, but unfortunately not all the openGL as I would like.
What I did was use shikigva=80 in open core config
Follow this: https://forums.macrumors.com/threads/activate-amd-hardware-acceleration.2180095/page-9#post-27442938
Changing the hex values from the post to match my SMBIOS platform Mac-827FB448E656EC26 - (38 32 37 46 42 34 34 38 45 36 35 36 45 43 32 36)
And merged some items on the Resources info.plist
View attachment 498217
and the following commands:
defaults write com.apple.AppleGVA gvaForceAMDHEVCDecode -bool YES
defaults write com.apple.AppleGVA gvaForceAMDKE -bool YES
defaults write com.apple.AppleGVA forceATI -bool YES
And now hardware encoding and decoding work really smooth, way faster than with shikigva. Removed that opencore boot flag and it seems to be better overall. (still no DRM or openGL though)
What this does is create the file com.apple.AppleGVA.plist in user/library/preferences
and together with the shikigva flag in opencore, forces some things on the 4170 GPU.
To test you can open Quicktime and do a screen recording and monitor using activity monitor and you should see the Radeon Polaris being used for recording and also if you export resizing, the polaris GPU is used.
This didn't work for Handbrake though.I can now use polaris DGPU for harware encoding using apps that use the VideoToolbox. Also have zero glitches on playback or export with Davinci Resolve and a big improvement in performance.
Guess shikigva could have been the one causing these performance glitches.
Also tested using external monitor and swaping the main display to the external to run some benchmarks and openGL apps and they work, but not at 100% the speed/performance I saw when using DGPU only.
So it looks like the combo actually slows down the 4170...
View attachment 498303
Much better as you can see from previous result.
View attachment 498219
DRM works on external displays but not on internal.
And I doubt DRM will ever work on internal display, since the one doing the drawing is the IGPU, even if the decoding is being done by the polaris card, and because the IGPU doesn't have the Apple special sauce, it's most likely never going to happen.
It looks like to force all metal or opengl on the polaris card, I need to somehow convince gfxCardStatus app that this is a dual GPU Macbook Pro.
Brightness adjustment steps seem less responsive if the WX4170 is used. If I use the quadro card or IGPU only, brightness steps are better matched to the display. This could be an easy fix.
USB-C/Thunderbolt display out doesn't work with my USBC-HDMI adaptor (also on windows) so it could just be an incompatibility with the WX4170 and my USBC-HDMI adaptor.
It works with the Quadro card and in UDMA mode, so it's not the output or the adapter, but rather the combo using the WX card.
After today's success with hardware encode/decode, I'll try to fix the brightness steps and keep the polaris in the laptop a bit longer
I'm starting to think that dual GPU on these laptops using OSX may not be the best option. UDMA works really well for most things, and for me, using Windows/Linux, I prefer the Quadro card I have that is 300% faster than the 4170, but this is promising. Hopefully we can get a 100% dual GPU laptop.
My next tests will be to try to find a way to inject the VBIOS from the Quadro card and see if I can use webdrivers on High Sierra. But this is also not simple since the Nvidia card doesn't have a EEPROM chip, so I would need to flash one and solder it on, or try to software load the VBIOS using an SSDT, or some other method.
And then I'm not sure the webdrivers will work with the card.
Also almost forgot, if the laptop wakes from sleep and then you plug a display, it may reboot (sporadic). This never happens if the computer hasn't sleept, or if the display was there before sleep.
It looks like the hotplug reboot problem with IGPU's but don't know where to go to fix on the WX.
Any luck with your system?
Hello i am following this very interesting thread, sadly i have a 15 inch zbook with nvidia gpu on the motherboard, but i wanted to give some hints; on some bioses it is possible to use the efi shell to modify hidden parameters and force the igpu on in dedicated mode, like on dell m4700 , as found on the github https://github.com/1Revenger1/Dell-M4700-MacOS-Resources
If Optimus is set to "Disabled" or you are otherwise forced to use the dGPU - it is possible to enable the iGPU to use headless for airPlay and h.264 encoding using the below instructions:
// TODO: General idea below, flesh out below and add screenshots possibly?
- Download the exe to update the BIOS from Dell's website
- Extract bios with binwalker binwalk -e whatever.exe
- Use pfsextractor on the uncompressed output
- Use UEFITools to find the Setup section and extract the body of that Image.
- Use IFRExtractor on the extracted image. You should get a text file output.
- Look for settings to enable the iGPU.
- Use setup_var to change