Contribute
Register

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

Joined
Sep 15, 2015
Messages
151
Motherboard
Gigabyte GA-Z97X-GAMING 3
CPU
i7-4790K
Graphics
Sapphire Nitro RX 480 OC
Mac
MacBook Pro
I think the situation of which encoder and decoder it uses is more complicated than it seems at first glance.

I'm using 10.14.4 with an iMac 14,2 board id. WEG with no extra boot arguments. Vega 56 and a connectorless intel iGPU enabled (i7-8700k)

First thing: just because VDADecoderChecker says 'successfully connected to Intel plugin, offline GenXX' does NOT mean that's the hardware decoder in use. That message seems to be part of some device enumeration AppleGVA does and doesn't indicate the final device that is chosen.

The only reliable way to see what hardware decoder/encoder it picked is to set these:
defaults write com.apple.AppleGVA gvaDebug -bool YES
defaults write com.apple.AppleGVA enableSyslog -bool YES

Then open console.app and search for 'GVA'. You should see GVA debug messages as you launch apps that use it. You will see one line in particular 'GVA: plugin is ATI' or 'GVA: plugin is Intel'. THAT'S the one it is using.

With no force set, VDADecoderChecker consistently uses the intel plugin for me. Obviously this depends on your SMBIOS settings/and or WEG boot arguments. However, if i set forceATI, it absolutely reports the ATI plugin is used.

My encoder app also consistently picks the intel plugin, unless forceATI is set, and then it picks the 'ATI' one.

However, when using Quicktime player, things get more interesting. I think Apple may have changed some things recently behind the scenes, but again I have no way to reliably test older Mojave versions.

If i load a 4K HEVC movie with Quicktime, it uses the Intel plugin by default. Setting forceATI works, and it picks the ATI plugin.

However, if I open a normal 1080 h264 movie with Quicktime...I get no GVA debug output at all. As if Quicktime isn't using the GVA framework to decode h264. I don't know if that means it is selecting the software decoder for some reason, or if they've written some custom metal based decoder outside of GVA framework. I need to fully disable SIP to attach to Quicktime Player to trace the VideoToolbox calls to see what is going on.

Using a recent version of VLC behaves the same as VDADecoderChecker for both h264 and HEVC files.

The quicktime h264 thing is weird, and requires more investigation.

iMac14,2 has forceOfflineRenderer set to true, so it always defaults to iGPU for both encoder/decoder. When I get a chance to reboot I'll disable forceOfflineRenderer and see what's changed.

One more thing to note: the technique of using Activity Monitor to see what dylibs have been loaded to determine which encoder/decoder is being used is also unreliable. The device enumeration can cause both of them to be loaded. Just because you see an AMD bundle loaded does not mean it is actually being used.
 
Joined
May 11, 2011
Messages
1,170
Motherboard
Asrock B365M Phantom Gaming
CPU
i5-9600KF
Graphics
RX 580
Mobile Phone
iOS
In 10.14.5 beta 2 Activity Monitor I didnt seen AMDMTLBronzeDriver load.
I think is metal support on RX 580, it was clearly there in 10.4.4.
 
Joined
May 11, 2011
Messages
1,170
Motherboard
Asrock B365M Phantom Gaming
CPU
i5-9600KF
Graphics
RX 580
Mobile Phone
iOS
Very interesting article about encoding/decoding on mac, it seem Apple’s T2 chip does make the difference ->Link
 
Joined
May 11, 2011
Messages
1,170
Motherboard
Asrock B365M Phantom Gaming
CPU
i5-9600KF
Graphics
RX 580
Mobile Phone
iOS
Testing the Radeon RX 580 4GB hardware encoding/decoding in Mac OS 10.14.5 beta 2.
The tests were done in FCPX version 10.4.6, using the 4k video file TCL Supercars 4k Demo.mp4 HEVC size 1.33 GB, also used VideoProc, HWMonitorSMC2 and Intel Power Gadget. I renamed my DGPU as Radeon Pro 580.
The picture 1 shows which GPU is used and loading.
The pictures 2 & 3 shows the time need it for exporting.
Best exporting time is market in red.


Test 1: DGPU RX 580 enabled, IGPU disabled, SMBIOS iMacPro 1,1.
HEVC -> H264 : 4:01 pictures 1&2
H264 -> HEVC : 3:09 picture 3

1.png2.png
3.png


Test 2 : IGPU Intel UHD 630 enabled, DGPU disabled (unplugged), SMBIOS Mac mini 8,1.
HEVC -> H264 : 3:53 pictures 1&2
H264 -> HEVC : 7:04 picture 3

1.png2.png3.png


Test 3 : DGPU RX 580 enabled, IGPU Intel UHD 630 enabled, DP cable in DGPU, SMBIOS iMac 19,2.
HEVC -> H264 : 2:28 pictures 1&2
H264 -> HEVC : 6:07 picture 3

1.png2.png3.png
 
Joined
Oct 26, 2013
Messages
1,022
Motherboard
MSI B250M PRO-VHD
CPU
i3-7100
Graphics
RX 570
Testing the Radeon RX 580 4GB hardware encoding/decoding in Mac OS 10.14.5 beta 2.
The tests were done in FCPX version 10.4.6, using the 4k video file TCL Supercars 4k Demo.mp4 HEVC size 1.33 GB, also used VideoProc, HWMonitorSMC2 and Intel Power Gadget. I renamed my DGPU as Radeon Pro 580.
The picture 1 shows which GPU is used and loading.
The pictures 2 & 3 shows the time need it for exporting.
Best exporting time is market in red.


Test 1: DGPU RX 580 enabled, IGPU disabled, SMBIOS iMacPro 1,1.
HEVC -> H264 : 4:01 pictures 1&2
H264 -> HEVC : 3:09 picture 3

View attachment 398838View attachment 398837
View attachment 398836


Test 2 : IGPU Intel UHD 630 enabled, DGPU disabled (unplugged), SMBIOS Mac mini 8,1.
HEVC -> H264 : 3:53 pictures 1&2
H264 -> HEVC : 7:04 picture 3

View attachment 398839View attachment 398840View attachment 398841


Test 3 : DGPU RX 580 enabled, IGPU Intel UHD 630 enabled, DP cable in DGPU, SMBIOS iMac 19,2.
HEVC -> H264 : 2:28 pictures 1&2
H264 -> HEVC : 6:07 picture 3

View attachment 398842View attachment 398843View attachment 398844
If want to verify export H264 performance on FCPX, use video clips more than 60 minutes for H264 export test. result will be differnce, AMD VCE should faster than IGPU + DGPU.
 
Joined
Aug 11, 2018
Messages
179
Motherboard
Gigabyte Z370 Aorus Ultra Gaming WiFi
CPU
i7-8700K
Graphics
Radeon VII
It also makes no sense to compare on different SMBIOSes. Run all these tests on each of the SMBIOSes used.
Also, renaming your card to Radeon Pro 580 doesn't do anything.
 
Joined
Nov 3, 2018
Messages
310
Motherboard
ASRock B360-HDV
CPU
i5-8400
Graphics
RX 470
Mobile Phone
iOS
It also makes no sense to compare on different SMBIOSes. Run all these tests on each of the SMBIOSes used.
Also, renaming your card to Radeon Pro 580 doesn't do anything.
It makes sense. Because iMac Pro 1.1 only has dGPU, macmini 8,1 only has iGPU, iMac19,2 has both. His test is very accurate.
 
Joined
Aug 28, 2018
Messages
19
Motherboard
Gigabyte Z370M DS3H
CPU
i3-8350K
Graphics
RX 580
Mac
MacBook Pro
Mobile Phone
iOS
It makes sense. Because iMac Pro 1.1 only has dGPU, macmini 8,1 only has iGPU, iMac19,2 has both. His test is very accurate.
The SMBIOS is the system definition right? Or am I missing something? And does that really improve performance?
 
Joined
Nov 3, 2018
Messages
310
Motherboard
ASRock B360-HDV
CPU
i5-8400
Graphics
RX 470
Mobile Phone
iOS
The SMBIOS is the system definition right? Or am I missing something? And does that really improve performance?
SMBIOS does not improve performance, but you have to use correct SMBIOS based on your hardware settings.
 
Joined
May 11, 2011
Messages
1,170
Motherboard
Asrock B365M Phantom Gaming
CPU
i5-9600KF
Graphics
RX 580
Mobile Phone
iOS
Yes, its the system definition, it makes a difference for power management depending of your pc configuration, ex: cpu, motherboard,etc. For my build B360,i5 8400,Intel UHD 630, RX580.I’m using SMBios iMac 19,2.
 
Top