Contribute
Register

Radeon RX 4XX/5XX standalone system, AMDRadeonX4250.kext (GVA support H264) does not support HEVC HW

Status
Not open for further replies.
This workaround (revert the AppleGVA.framework) works for me. My config:
- iMac15,1 SMBIOS
- Latests WEG/LILU
- Gigabyte RX 580 Gaming G8
- Override AppleGVA.framework from Mojave 10.14.0
- Bootargs: none
- IGPU: Disabled

Results:
- iTunes DRM works like a charm.
- Netflix on Safari works like a charm.
- Airplay don't; I was thinking to revert the AMD kexts from Mojave 10.14.0, but I'm not sure if I'm in a correct way.

Thanks for sharing!

Could you please share the AppleGVA.framework file from 10.14.0?
 
Does replacing this file also resolve the issue of jpegs not loading in Preview? Or are you using the NoVPAJpeg kext to remedy that issue?
Correct, for jpg and quicklook you must use the NoVPAJpeg extension among WEG and Lilu.
 
I have similar hardware as yours, Z77P-D3+ E3-1230 v2 + RX 560, I have been following this tread for a while. 10.14.1 upgrade did broke the ability of H264/HEVC hardware decoding which worked with 10.14. But I managed to fixed it:

1. Use SMBIOS MacPro 6,1 (match the best my hardware)
2. Use boot args: shikigva=32 shiki-id=Mac-7DF2A3B5E5D671ED (the first arg enables replacement of board-id and defaults to iMac 14,2's board-id. but I found that iMac14,2 does not have H264 decoding ability, so with the second arg which replace board-id with iMac13,3's, now I am able to get H264 decoding working.)
3. As for HEVC, the structure of AMDRadeonX4000.kext/info.plist has changed a little bit on 10.14.1, I modified with new one as attached, now HEVC decoding works perfect.

Test Videos:
jellyfish-120-mbps-4k-uhd-h264.mkv
jellyfish-120-mbps-4k-uhd-hevc-10bit.mkv

Now both HEVC and H264 uses 4% CPU with mpv player 0.29.1

Note that for the attached kext, anyone who is interested may need to modify the info.plist to match your GPU id, I only added mine: IOPCIMatch 0x67FF1002

To see your id, check: About this Mac -- System Report -- Graphics/Displays -- Device ID and Vendor


This seems like the most appropriate thread. It does seem like Mojave 10.14.1 has broken DGPU-only setups for decoding. I'm running a Xeon, so no integrated GPU is even available (there's another report here of someone on an X299 setup, so also no IGPU).

My current config:

- MacPro5,1 SMBIOS
- Latest WEG/LILU, with boot-args "agdpmod=pikera shikigva=32 shiki-id=Mac-7BA5B2D9E42DDD94" (so using iMacPro1,1 SMBIOS for GVA)
- Sapphire Radeon NITRO+ RX 580 (I also tested on a Sapphire Radeon Pulse RX 570)

This worked fine in 10.14.0. I don't use iTunes DRM/Airplay or FCPX, but things that did work: Exporting videos out of Photos app, system-provided hardware decoding (specifically videos in Vivaldi browser, since they fall back to macOS due to not providing their own video stack). Self-compiled VDADecoderChecker reported "Hardware acceleration is fully supported".

In 10.14.1, I can't get any encoding. Stuff I've tried:

- Other board-ids, either in SMBIOS or via WEG
- The Ellesmere.kext from post #200 in this thread (also tried swapID.kext to downgrade to Baffin)
- Removing WEG/Lilu
- Other Shiki flags in https://github.com/acidanthera/WhateverGreen/blob/master/WhateverGreen/kern_shiki.hpp#L34
Code:
defaults write com.apple.AppleGVA forceATI -boolean yes
defaults write com.apple.coremedia hardwareVideoDecoder force

None of those things worked for decoding acceleration.

You can replace AppleGVA.framework in /System/Library/PrivateFrameworks with the 10.14.0 version, which does work. I don't like this solution, though, because it's likely to cause more problems, especially in the long run.

Perhaps this patch no longer works? It's way out of my depth, though. I don't have that flag set now, but I did experiment with it: https://github.com/acidanthera/WhateverGreen/blob/master/WhateverGreen/kern_shiki.cpp#L211

I attached the 10.14.0 AppleGVA.framework in case anybody on 10.14.1 also wants to revert and doesn't want to go through the trouble of digging it out.

I'll keep an eye on this thread for a solution. For my uses, I don't even mind falling back to software decoding/encoding. System video decoding just breaks for me, though (which I don't really understand, because real MacPro5,1 users must be in the same situation?)
 

Attachments

  • Screen Shot 2018-11-03 at 19.21.03.png
    Screen Shot 2018-11-03 at 19.21.03.png
    144.5 KB · Views: 168
  • HEVC.10.14.1.kext.zip
    2.8 KB · Views: 89
Last edited:
Correct, for jpg and quicklook you must use the NoVPAJpeg extension among WEG and Lilu.

I don't have a problem with jpeg preview using SMBIOS of MacPro6,1
 
I don't have a problem with jpeg preview using SMBIOS of MacPro6,1

Thanks, I've used your dummy kext and updated to do the 'swap' (because my card RX 580 is routed to use the Ellesmere instead Baffin).
I didn't have the need to use the params shikigva=32 and shiki-id, with my SMBIOS iMac15,1 is ok.
Also, I've reverted the AppleGVA.framework from the Mojave 10.14.1.

Now, the results are:
- Full VDA: Yes
- iTunes DRM: Yes (streaming movies and extras)
- Netflix on Safari: Yes
- Samples videos (H264 and HEVC) average 4% and peaks of 15% of CPU.
- JPEG on quicklook: No, so I've reinstalled the NoVPAJpeg.kext on /EFI/.../Others
- Airplay: Yes

Attached are the kext modified by me.
Thanks!
 

Attachments

  • HEVC.10.14.1.kext.zip
    1.4 KB · Views: 123
  • config.plist
    5.1 KB · Views: 195
Last edited:
I have similar hardware as yours, Z77P-D3+ E3-1230 v2 + RX 560, I have been following this tread for a while. 10.14.1 upgrade did broke the ability of H264/HEVC hardware decoding which worked with 10.14. But I managed to fixed it:

1. Use SMBIOS MacPro 6,1 (match the best my hardware)
2. Use boot args: shikigva=32 shiki-id=Mac-7DF2A3B5E5D671ED (the first arg enables replacement of board-id and defaults to iMac 14,2's board-id. but I found that iMac14,2 does not have H264 decoding ability, so with the second arg which replace board-id with iMac13,3's, now I am able to get H264 decoding working.)
3. As for HEVC, the structure of AMDRadeonX4000.kext/info.plist has changed a little bit on 10.14.1, I modified with new one as attached, now HEVC decoding works perfect.

Test Videos:
jellyfish-120-mbps-4k-uhd-h264.mkv
jellyfish-120-mbps-4k-uhd-hevc-10bit.mkv

Now both HEVC and H264 uses 4% CPU with mpv player 0.29.1

If you don't mind, could you share your config file? I'm trying to get H264 decoding working on my system. I am currently using iMac14,2 profile. I used the second arg you have posted but no luck with it. When I try to check for H264 support in VideoProc app, the system just hangs. I have a RX 480 card and am pretty sure it supports H264 decoding.
 
Thanks, I've used your dummy kext and updated to do the 'swap' (because my card RX 580 is routed to use the Ellesmere instead Baffin).
I didn't have the need to use the params shikigva=32 and shiki-id, with my SMBIOS iMac15,1 is ok.
Also, I've reverted the AppleGVA.framework from the Mojave 10.14.1.

Now, the results are:
- Full VDA: Yes
- iTunes DRM: Yes (streaming movies and extras)
- Netflix on Safari: Yes
- Samples videos (H264 and HEVC) average 4% and peaks of 15% of CPU.
- JPEG on quicklook: No, so I've reinstalled the NoVPAJpeg.kext on /EFI/.../Others
- Airplay: Yes and no, it shows in the tray for a few seconds and then disappear. After a couple of minutes bring back and disappear few seconds later (maybe is my AppleTV which is having issues with its connection).

Attached are the kext modified by me.
Thanks!
Hi, do you have disabled or enabled IGPU? Did you try if checker in VideoProc works for you? Thanks.
 
Last edited:
Status
Not open for further replies.
Back
Top