Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Status
The first post of this thread is a WikiPost and can be edited by anyone with the appropiate permissions. Your edits will be public.
With the injection of the board ID in SMBIOS on a reboot from Mojave to Catalina I got again stalling on boot :
Waiting for an external debugger...
So I removed the board ID injection. It looks like Cat does not like it somehow. Now there is another strange thing from the WEG -wegtree:
1573823915322.png

Slot 1 GPU 1 and Slot 1 GPU2, where it should be Slot 2 GPU1, but I guess that is required for multiGPU configuration spoofing iMac Pro layout.
 
  • Like
Reactions: h9826790
Update on the 3,1 ...
Got OpenCore to boot blindly with verbose OS boot... (and eventually HEVC encode enabled as well)

Tried to limit the amount of injection for iMacPro as much as possible ... apparently too limited.

Only doing limited SMBIOS update and started with the most basic possible as to rely on as many values from the 3,1 as possible.

The 3,1 board ID is still seen by the diagnostic tool and no HEVC encode available yet...
Screen Shot 2019-11-15 at 11.48.09 PM.jpg
Code:
$ ffmpeg -hide_banner -i /Volumes/data/Video\ ScreenSavers/b2-1.mov -vcodec hevc_videotoolbox ~/Desktop/file.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Volumes/data/Video ScreenSavers/b2-1.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2015-09-22T20:22:25.000000Z
  Duration: 00:03:59.83, start: 0.000000, bitrate: 3877 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 3874 kb/s, 30 fps, 30 tbr, 30030 tbn, 60060 tbc (default)
    Metadata:
      creation_time   : 2015-09-22T20:22:25.000000Z
      handler_name    : Core Media Video
      encoder         : H.264
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_videotoolbox))
Press [q] to stop, [?] for help
[hevc_videotoolbox @ 0x7fefec808e00] Error: cannot create compression session: -12903
[hevc_videotoolbox @ 0x7fefec808e00] Try -allow_sw 1. The hardware encoder may be busy, or not supported.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

Went a bit further with what was injected ...
Now the debug tool shows the iMacPro board ID

Image2.png

(note this file was being re-encoded from a NAS, not on local storage)

Code:
## PD - Start ##
running 586 sec (started Sat Nov 16 00:07:59 2019, now Sat Nov 16 00:17:45 2019)
boardID: Mac-7BA5B2D9E42DDD94
featureMask: 0x108200
platformFlags: 0
extraSupportFlags: 0

$ ffmpeg -hide_banner -i /Volumes/data/Video\ ScreenSavers/b2-1.mov -vcodec hevc_videotoolbox ~/Desktop/file1.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Volumes/data/Video ScreenSavers/b2-1.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    creation_time   : 2015-09-22T20:22:25.000000Z
  Duration: 00:03:59.83, start: 0.000000, bitrate: 3877 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 3874 kb/s, 30 fps, 30 tbr, 30030 tbn, 60060 tbc (default)
    Metadata:
      creation_time   : 2015-09-22T20:22:25.000000Z
      handler_name    : Core Media Video
      encoder         : H.264
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_videotoolbox))
Press [q] to stop, [?] for help
Output #0, mp4, to '/Users/ludacrisvp/Desktop/file1.mp4':
  Metadata:
    major_brand     : qt
    minor_version   : 0
    compatible_brands: qt
    encoder         : Lavf58.35.100
    Stream #0:0(und): Video: hevc (hevc_videotoolbox) (hev1 / 0x31766568), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 15360 tbn, 30 tbc (default)
    Metadata:
      creation_time   : 2015-09-22T20:22:25.000000Z
      handler_name    : Core Media Video
      encoder         : Lavc58.62.100 hevc_videotoolbox
frame= 7195 fps=102 q=-0.0 Lsize=    6227kB time=00:03:59.80 bitrate= 212.7kbits/s speed=3.39x
video:6195kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.507441%


Also not sure if this should happen or not ... but decided to present as VMware7,1 and retain most of the iMacPro1,1 info (did change bootROM version as another poster did with the OpenCore info) and I still have HEVC encode and am being offered Catalina 10.15.1 update (note that I'm running on Mojave right now)
Screen Shot 2019-11-16 at 12.49.53 AM.jpg


Interesting side note ... using VMware7,1 I can see the correct fan names and RPM info in MFC, but a lot of sensors are missing, but fan speed did ramp up during the quick encode I did and back down to normal after so the Mac is able to do what it needs to fan wise. HWMonitor (hackintosh tool mainly) though sees all the normal sensors it should.

Screen Shot 2019-11-16 at 12.58.11 AM.jpg
 

Attachments

  • Screen Shot 2019-11-16 at 12.12.18 AM.jpg
    Screen Shot 2019-11-16 at 12.12.18 AM.jpg
    59.7 KB · Views: 252
Last edited:
Thanks for all the tests and reports, Ludacrisvp.

For full HWAccel (via OpenCore), I also confirmed only Board-ID matters. We can keep the 5,1 indent indeed.
Full HWAccel 5,1.png


Extra info:

iStat menu read the sensors base on Mac ident. Therefore, as long as we keep the ident as 5,1. All sensors will work correctly.

The little icon here also base on the Mac ident. If you change it to iMac Pro. It will shows the iMac Pro icon. If you change it to 7,1 (in Catalina), it will shows 7,1 icon. [N.B. For those who want full HWAccel, should stay away from Catalina at this moment. CMMChris advised that the HWAccel for Polaris GPU already removed in the latest Catalina beta]
Screenshot 2019-11-16 at 5.25.43 PM.png


You can keep your original serial number, iCloud / iMessage / Appstore... all work.

Since the Board-ID is modded, I believe "WhateverGreen + agdpmod=pikera boot argument" still required to correctly activate the graphic card ports. At least, I can see only 4 FB group when boot with iMac Pro Board-ID with WEG fix. There should be 6 FB group when using RadeonFramebuffer to boot 5,1 natively.
AGDCDiagnose FB.png



P.S. Since not everyone will follow the OpenCore's thread. So, some info may be double posted at here. However, I won't discuss how to run Catalina in this thread. Up to now (16 Nov 2019), my personal suggestion is to stay at Mojave if all you want is just HWAccel.

Despite no idea how safe to run OpenCore on cMP, there is no other way to activate HEVC hardware encoding on cMP at this moment (in macOS). Some binary blob spotted in the private NVRAM after boot from OpenCore, it can be a threat for cMP, but my cMP still alive so far.
 
Last edited:
That makes no sense as the new MacPro7,1 comes with Polaris.

I know, but how about if T2 can take over this job?

And for those who has latest Catalina beta installed, you may open up RadeonX4000 and have a look of the info.plist. All HEVC related entry should be removed. Of course, it may be just a beta bug. But we still better prepare for it.
[automerge]1573907230[/automerge]
Apart from the Framebuffer count, the FeatureMask also shows difference when boot with Board-ID spoofing in AGDCDiagnose. And this item seems not related to the FirmwareFeatureMask (which the value can be set in OpenCore).
AGDCDiagnose FeatureMask.png
 
Last edited:
I know, but how about if T2 can take over this job?

And for those who has latest Catalina beta installed, you may open up RadeonX4000 and have a look of the info.plist. All HEVC related entry should be removed. Of course, it may be just a beta bug. But we still better prepare for it.
[automerge]1573907230[/automerge]
Apart from the Framebuffer count, the FeatureMask also shows difference when boot with iMac Pro Board-ID in AGDCDiagnose. And this item seems no related to the FirmwareFeatureMask (which the value can be set in OpenCore).
View attachment 877485
I start to feel apple is closely it's a ring this thread and all our efforts are counterproductive :)
 
Last edited:
Here are my results with changed board ID + features mask and platform feature:
Code:
ffmpeg -hide_banner -i /Users/g5/Downloads/file_example_MP4_1920_18MG.mp4 -vcodec hevc_videotoolbox ~/Desktop/file.mp4

G5% ffmpeg -hide_banner -i /Users/g5/Downloads/file_example_MP4_1920_18MG.mp4 -vcodec hevc_videotoolbox ~/Desktop/file.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/g5/Downloads/file_example_MP4_1920_18MG.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41isomavc1
    creation_time   : 2015-08-07T09:13:36.000000Z
  Duration: 00:00:30.53, start: 0.000000, bitrate: 4675 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 4486 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc (default)
    Metadata:
      creation_time   : 2015-08-07T09:13:36.000000Z
      handler_name    : L-SMASH Video Handler
      encoder         : AVC Coding
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default)
    Metadata:
      creation_time   : 2015-08-07T09:13:36.000000Z
      handler_name    : L-SMASH Audio Handler
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> hevc (hevc_videotoolbox))
  Stream #0:1 -> #0:1 (aac (native) -> aac (native))
Press [q] to stop, [?] for help
[hevc_videotoolbox @ 0x7fad34809c00] Color range not set for yuv420p. Using MPEG range.
frame=   13 fps=0.0 q=0.0 size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbOutput #0, mp4, to '/Users/g5/Desktop/file.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42mp41isomavc1
    encoder         : Lavf58.20.100
    Stream #0:0(und): Video: hevc (hevc_videotoolbox) (hev1 / 0x31766568), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 30 fps, 15360 tbn, 30 tbc (default)
    Metadata:
      creation_time   : 2015-08-07T09:13:36.000000Z
      handler_name    : L-SMASH Video Handler
      encoder         : Lavc58.35.100 hevc_videotoolbox
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      creation_time   : 2015-08-07T09:13:36.000000Z
      handler_name    : L-SMASH Audio Handler
      encoder         : Lavc58.35.100 aac
frame=   81 fps= 80 q=-0.0 size=       0kB time=00:00:03.96 bitrate=   0.1kbits/frame=  149 fps= 99 q=-0.0 size=       0kB time=00:00:05.97 bitrate=   0.1kbits/frame=  217 fps=108 q=-0.0 size=       0kB time=00:00:07.97 bitrate=   0.0kbits/frame=  285 fps=113 q=-0.0 size=     256kB time=00:00:09.98 bitrate= 210.1kbits/frame=  354 fps=117 q=-0.0 size=     256kB time=00:00:11.98 bitrate= 174.9kbits/frame=  422 fps=120 q=-0.0 size=     256kB time=00:00:14.99 bitrate= 139.9kbits/frame=  490 fps=121 q=-0.0 size=     256kB time=00:00:17.00 bitrate= 123.4kbits/frame=  558 fps=123 q=-0.0 size=     256kB time=00:00:19.00 bitrate= 110.3kbits/frame=  626 fps=124 q=-0.0 size=     512kB time=00:00:21.01 bitrate= 199.6kbits/frame=  694 fps=125 q=-0.0 size=     512kB time=00:00:23.01 bitrate= 182.2kbits/frame=  762 fps=126 q=-0.0 size=     512kB time=00:00:26.02 bitrate= 161.2kbits/frame=  831 fps=127 q=-0.0 size=     512kB time=00:00:28.03 bitrate= 149.6kbits/frame=  901 fps=128 q=-0.0 size=     768kB time=00:00:30.48 bitrate= 206.4kbits/frame=  901 fps=127 q=-0.0 Lsize=     841kB time=00:00:30.52 bitrate= 225.6kbits/s speed= 4.3x   
video:805kB audio:8kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.332317%
[aac @ 0x7fad85809c00] Qavg: 65536.000
G5% ffplay ~/Desktop/file.mp4
ffplay version 4.1.4 Copyright (c) 2003-2019 the FFmpeg developers
  built with Apple clang version 11.0.0 (clang-1100.0.33.12)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.4-with-options --enable-shared --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-gpl --enable-libaom --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --disable-libjack --disable-indev=jack --enable-opencl --enable-videotoolbox --disable-htmlpages --enable-chromaprint --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfdk-aac --enable-libgme --enable-libgsm --enable-libmodplug --enable-libopenh264 --enable-librsvg --enable-librtmp --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtesseract --enable-libtwolame --enable-libvidstab --enable-libvmaf --enable-libwavpack --enable-libwebp --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-openssl --enable-nonfree --enable-decklink --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/include --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --disable-decoder=jpeg2000 --extra-cflags=-I/usr/local/Cellar/openjpeg/2.3.1/include/openjpeg-2.3
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/g5/Desktop/file.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf58.20.100
  Duration: 00:00:30.55, start: 0.000000, bitrate: 225 kb/s
    Stream #0:0(und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 219 kb/s, 30 fps, 30 tbr, 15360 tbn, 15360 tbc (default)
    Metadata:
      handler_name    : L-SMASH Video Handler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 2 kb/s (default)
    Metadata:
      handler_name    : L-SMASH Audio Handler
  99.96 A-V: -0.004 fd=  20 aq=    0KB vq=    0KB sq=    0B f=0/0
 
Yeah, it seems they want the SoC (T2/A10) to handle acceleration going forward. I suspect it's a win-win on mobile (power-wise) and desktop is just the victim. It's just one more thing Apple controls fully without needing 3rd party support.
 
Somebody knows how to interpret these config 1,2,3,4,5? Are these configurable or are they automatic from the WEG?
The various configs are listed in /System/Library/Extensions/AppleGraphicsControl.kext/Contents/Plugins/AppleGraphicsDevicePolicy.kext/Contents/Info.plist
ConfigMap maps each Mac board ID with a config.
If you're asking what the fields in each config means, I could only guess.
 
  • Like
Reactions: startergo
No idea, never try SMBIOS / board-id spoofing on cMP by using Clover.

You may start with pure Clover installation, but no injection, no spoofing. This should work, I did that few years back.

Then start with GFX0 renaming.

If OK, then board-id spoofing.

Anyway, may I know why you prefer to use Clover? I really can't see what's the advantage.

Of course, I will be more than happy if you can make a post about how to use Clover to achieve the same thing. Which give the others one more choice.
 
Anyway, may I know why you prefer to use Clover? I really can't see what's the advantage.

Hi!

I have already installed Catalina to boot from Clover. OpenCore should be considered in early Public Beta stage, which means it can fail and there will be probably heavy changes in the future too. I have zero experience on OpenCore too.
 
Thank you! I'm a bit confused. Do I need FwRuntimeServices.efi or something else too?
You can run any kext you want. In fact if you use USB drive instead of the EFI partition of the internal drive you can easily switch back to normal boot. If you don't spoof any smbios but keep your original you should be safe. The developers of Clover abandoned the development and are now focusing on OC, so everybody in the hackintosh build world should switch over to OC.
 
That’s because Kepler can’t do HEVC decode ... it doesn’t have the hardware.
Ok I have removed the RX-580. Now testing Swordsmith video with 2 Kepler cards. GT-640 Quicktime 10% CPU Usage smooth playback:
1574001290020.png

GT-640 VLC Player stutters. CPU usage 35% GPU usage increased:
1574001572440.png

GTX -Titan Quicktime 9-10& CPU usage smooth playback:
1574001881670.png


GTX-Titan VLC player 35% CPU usage, stuttering, higher GPU usage:
1574002114361.png

FCP is even worst. Conclusion? Even though Quicktime HEVC playback takes 10% CPU load the video playback is smooth. So there is some kind of hardware usage for this App. Not so much for the others though. And when the Polaris card is in, somehow it helps hardware acceleration on the Kepler's as strange as it is shown in the GPU usage before. These tests were done without board-Id SMBIOS spoofing only shiki usage.
 
HS can not take advantage of this with Kepler. Quicktime stutters and CPU usage is above 24%. So for now only Mojave.
 
Last edited:
All tested, nothing changed
This was the exact thing I tested the other day and thought that it was simply enough to add an entry to Info.plist. After some swapping around, I found that patching AppleGVA was also needed.

The patch forces those variables all on, but must do something else too. I just haven't figured out what.
 
I booted my HighSierra blade to run an old Xcode version and while I was waiting some code rsync before compiling it, I noticed that AppleTV+ DRM not only works with Safari (vanilla 10.13.6 MP5,1 + RX 580), but seems to be METAL accelerated in some way for the RX 580.

Obviously, the DRM blackened the video with the screenshoting process, but it just works. :eek:

Screen Shot 2019-11-17 at 23.33.13.png


If Apple can do it, why Netflix/Prime can't use a DRM more sane?
 
Last edited:
Fiddled some more, and found that whether the key is hweBGRA or hwe420 doesn't seem to make a difference, at least not in playback. So perhaps my editing/saving of the file (again) caused the OS to reload the framework and enabled hwaccel for VideoToolbox. <shrug> Either way, it is now working like everybody else.

Upgraded to a Vega 56 from an RX 580.

The Vega does require the iMac Pro 1,1 entry (hwe420) in order to work properly. While video playback worked, FCPX kept failing when trying to export (hardware h.264). I forgot I had customized it for the RX580; made the change in Info.plist to match the Vega and all works well.

Just thought I'd throw that out there for other experimenters (on the AppleGVA mod).
 
  • Like
Reactions: h9826790
This was the exact thing I tested the other day and thought that it was simply enough to add an entry to Info.plist. After some swapping around, I found that patching AppleGVA was also needed.

The patch forces those variables all on, but must do something else too. I just haven't figured out what.

I've revisited this.

When I upgraded to the Vega 56, it turns out I had a bunch of old kexts installed, including WEG and Lilu. So, after removing all that cruft, I started with a fresh, unaltered version of AppleGVA and disabled SIP.

Instead of editing the AppleGVA binary, I simply added a board-id entry in Info.plist for the Mac Pro 5,1. I then turned all the gva variables on (defaults write com.apple.gva...):

Code:
defaults write com.apple.AppleGVA gvaForceAMDKE -bool YES
defaults write com.apple.AppleGVA gvaForceAMDAVCEncode -bool YES
defaults write com.apple.AppleGVA gvaForceAMDAVCDecode -bool YES
defaults write com.apple.AppleGVA gvaForceAMDHEVCDecode -bool YES

I now have hardware-assisted playback of H.264 and H.265 without modifying AppleGVA's binary. Swordsmith and Jellyfish playback beautifully.

Confirmed that it is also loading the GPU in FCPX for H.264 encode.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.