Contribute
Register

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

Status
Not open for further replies.
shuhung, I have attached the file below. My SMBIOS is iMac 18,2 rather recent model. I will change it to 14,2 and try that. Thanks
.
.
Ok so I changed SMBIOS to iMac 14,2 and still using cpu to play back the Sony 4k hevc.
 

Attachments

  • iMac.ioreg
    4 MB · Views: 402
Last edited:
shuhung, I have attached the file below. My SMBIOS is iMac 18,2 rather recent model. I will change it to 14,2 and try that. Thanks
.
.
Ok so I changed SMBIOS to iMac 14,2 and still using cpu to play back the Sony 4k hevc.

Ioreg show X4250 injected successfully, iMac 18,2 is supported, but GPU is attached to PEGP, need rename PEGP to GFX0, otherwise AGPM and system extra functions may not work.

Tested with SMBIOS iMac 14,2, GPU attach to PEGP HW HEVC not work, GPU attach to GFX0 HW HEVC work.
 
Last edited:
shuhung, Thank-you, the change from PEGP to GFX0 worked but I also had to do the default write terminal commands as the software plugin was still loading now cpu is at 3% instead of over 200% during playback. :clap::clap::clap::clap::thumbup::thumbup::thumbup:
 
If AMD VDADecoder is implement correctly, result should look like attached png, smoother and better than IGPU HD630.
Seems to be GVA not implement correctly or SMBios not supported.

Try set hardware video decoder preferences, force ATI decoder, run below from terminal

defaults write com.apple.AppleGVA forceATI -boolean yes

Check VDADecoder status with attached file.

Hi Shuhung,

I would like to know, if the HEVC encoding is working on my RX580?

This is what I found in the Activity Monitor under VTEncoderXPCService while encoding to HEVC with Apple Compressor:

Code:
cwd
/
txt
/System/Library/Frameworks/VideoToolbox.framework/Versions/A/XPCServices/VTEncoderXPCService.xpc/Contents/MacOS/VTEncoderXPCService
txt
/usr/share/icu/icudt59l.dat
txt
/private/var/db/mds/messages/501/se_SecurityMessages
txt
/System/Library/Video/Plug-Ins/AppleGVAHEVCEncoder.bundle/Contents/MacOS/AppleGVAHEVCEncoder
txt
/System/Library/Extensions/AppleIntelKBLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelKBLGraphicsVADriver
txt
/System/Library/Extensions/AppleIntelKBLGraphicsVAME.bundle/Contents/MacOS/AppleIntelKBLGraphicsVAME
txt
/System/Library/Extensions/AMDMTLBronzeDriver.bundle/Contents/MacOS/AMDMTLBronzeDriver
txt
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.data
txt
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.data
txt
/usr/lib/dyld
txt
/private/var/db/dyld/dyld_shared_cache_x86_64h
0
/dev/null
1
/dev/null
2
/dev/null
3
->0xd87ca2afdb3f3f6f
4
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.maps
5
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.data
6
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.maps
7
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.data

And this is what I got while encoding without having the X4250.kext in the Clover kexts folder:

Code:
cwd
/
txt
/System/Library/Frameworks/VideoToolbox.framework/Versions/A/XPCServices/VTEncoderXPCService.xpc/Contents/MacOS/VTEncoderXPCService
txt
/private/var/db/mds/messages/501/se_SecurityMessages
txt
/usr/share/icu/icudt59l.dat
txt
/System/Library/Video/Plug-Ins/AppleGVAHEVCEncoder.bundle/Contents/MacOS/AppleGVAHEVCEncoder
txt
/System/Library/Extensions/AppleIntelKBLGraphicsVAME.bundle/Contents/MacOS/AppleIntelKBLGraphicsVAME
txt
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.data
txt
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.data
txt
/usr/lib/dyld
txt
/System/Library/Extensions/AppleIntelKBLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelKBLGraphicsVADriver
txt
/System/Library/Extensions/AMDMTLBronzeDriver.bundle/Contents/MacOS/AMDMTLBronzeDriver
txt
/private/var/db/dyld/dyld_shared_cache_x86_64h
0
/dev/null
1
/dev/null
2
/dev/null
3
->0x8c8d3c043cf4f31d
4
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.maps
5
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.data
6
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.maps
7
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.data

To me it seems there is no difference ... but I can't tell if the video is encoded by the iGPU or the RX580 ...

Thanks!
 
Last edited:
Hi Shuhung,

I would like to know, if the HEVC encoding is working on my RX580?

This is what I found in the Activity Monitor under VTEncoderXPCService while encoding to HEVC with Apple Compressor:

Code:
cwd
/
txt
/System/Library/Frameworks/VideoToolbox.framework/Versions/A/XPCServices/VTEncoderXPCService.xpc/Contents/MacOS/VTEncoderXPCService
txt
/usr/share/icu/icudt59l.dat
txt
/private/var/db/mds/messages/501/se_SecurityMessages
txt
/System/Library/Video/Plug-Ins/AppleGVAHEVCEncoder.bundle/Contents/MacOS/AppleGVAHEVCEncoder
txt
/System/Library/Extensions/AppleIntelKBLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelKBLGraphicsVADriver
txt
/System/Library/Extensions/AppleIntelKBLGraphicsVAME.bundle/Contents/MacOS/AppleIntelKBLGraphicsVAME
txt
/System/Library/Extensions/AMDMTLBronzeDriver.bundle/Contents/MacOS/AMDMTLBronzeDriver
txt
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.data
txt
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.data
txt
/usr/lib/dyld
txt
/private/var/db/dyld/dyld_shared_cache_x86_64h
0
/dev/null
1
/dev/null
2
/dev/null
3
->0xd87ca2afdb3f3f6f
4
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.maps
5
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.data
6
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.maps
7
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.data

And this is what I got while encoding without having the X4250.kext in the Clover kexts folder:

Code:
cwd
/
txt
/System/Library/Frameworks/VideoToolbox.framework/Versions/A/XPCServices/VTEncoderXPCService.xpc/Contents/MacOS/VTEncoderXPCService
txt
/private/var/db/mds/messages/501/se_SecurityMessages
txt
/usr/share/icu/icudt59l.dat
txt
/System/Library/Video/Plug-Ins/AppleGVAHEVCEncoder.bundle/Contents/MacOS/AppleGVAHEVCEncoder
txt
/System/Library/Extensions/AppleIntelKBLGraphicsVAME.bundle/Contents/MacOS/AppleIntelKBLGraphicsVAME
txt
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.data
txt
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.data
txt
/usr/lib/dyld
txt
/System/Library/Extensions/AppleIntelKBLGraphicsVADriver.bundle/Contents/MacOS/AppleIntelKBLGraphicsVADriver
txt
/System/Library/Extensions/AMDMTLBronzeDriver.bundle/Contents/MacOS/AMDMTLBronzeDriver
txt
/private/var/db/dyld/dyld_shared_cache_x86_64h
0
/dev/null
1
/dev/null
2
/dev/null
3
->0x8c8d3c043cf4f31d
4
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.maps
5
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/libraries1.data
6
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.maps
7
/private/var/folders/2k/cz4jtqr96275bkgv0jp7p7b40000gn/C/com.apple.coremedia.videoencoder/com.apple.metal/AMD Radeon RX 580/functions1.data

To me it seems there is no difference ... but I can't tell if the video is encoded by the iGPU or the RX580 ...

Thanks!

No, when IQSV is enabled, GVA decoding/encoding for AMD will be auto disabled.

Recently, AMD HEVC encoder is better than IQSV only in H264 to HEVC, but only supported by native Apple apps, not yet supported by 3rd party apps.
 
No, when IQSV is enabled, GVA decoding/encoding for AMD will be auto disabled.

Recently, AMD HEVC encoder is better than IQSV only in H264 to HEVC, but only supported by native Apple apps, not yet supported by 3rd party apps.
Hi, thanks for answering. Do You mean that AMD HEVC is beter in quality or speed when transcoding h264 to h265?

So You mean that in other cases it is speed and quality wise equal?

I heard that AMD produces better quality than Intel...

If I would like to use the AMD, would I need to disable the iGPU?

Thanks!
 
Hi, thanks for answering. Do You mean that AMD HEVC is beter in quality or speed when transcoding h264 to h265?

So You mean that in other cases it is speed and quality wise equal?

I heard that AMD produces better quality than Intel...

If I would like to use the AMD, would I need to disable the iGPU?

Thanks!

Other cases IQSV is better in speed, for H264 encoding use IQSV instead.

Yes, AMD encoding quality is better in HEVC but there is a bug in H264 encoding (video glitching), speed is acceptable 123 minutes 1080p H264 to 1080p HEVC video, AMD round 33 mintues, IQSV need more than 2 hours, in HEVC to HEVC encoding, IQSV is better in speed.

Yes, need disable IGPU, boot flag shikigva=1 also can disable IQSV if shiki.kext is installed, use it as GVA on/off switch at system boot up, from Clover boot option menu, type shikigva=1.

Edit: In FCPX + Compressor.app, HEVC to HEVC encoding, AMD is much faster than IQSV.
 
Last edited:
So could this work on 5.1 Mac Pro, my gpu is a RX 580. I would like to enable HEVC decoding can someone help ?

I have an Vega 64 XTX and HEVC decoding is working. I had to disable the iGPU and use a 14,1 iMac SMBIOS.
 
I have an Vega 64 XTX and HEVC decoding is working. I had to disable the iGPU and use a 14,1 iMac SMBIOS.
I'm using a VEGA 64 XFX Liquid and a 3930k processor (without integrated graphics) and smbios MacPro 6.1 Can you tell me what i need to change, to get the computing of the HEVC with vega 64. Thanks!
 
Enable AMD HEVC support for Vega GPU, same as RX 4XX/5XX but does not need X4250 dummy injector (Vega HEVC native supported by macOS), need SMBIOS supported by AppleGVA and GPU is attached to device GFX0, check GPU status with IORegistryExplorer.app.

For SMBIOS unsupported or limited support by AppleGVA like MacPro6,1, need edit/add properties to AppleGVA info.plist or install shiki.kext and add boot arg shikigva=32, it will replace board-id to iMac14,2 by default.

If GPU is not attached to device GFX0, use custom ssdt.aml change device to GFX0, or try rename PEG0 to GFX0 from Clover Acpi patch, or install WhateverGreen it will auto rename device to GFX0.

Pls notice that recently AMD H264 decoder is buggy, if you are using FCPX do not share/export file as H264 and output as HEVC instead, install Compressor.app to support HEVC output then add “Apple Devices 4K (HEVC 8-bit)” to FCPX Share/Add Destination as below.
upload_2018-1-31_23-10-39.png
 
Status
Not open for further replies.
Back
Top