Contribute
Register

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

Joined
Oct 23, 2010
Messages
902
Motherboard
GA-Z77X-UP5-TH
CPU
i7-3770K
Graphics
RX 580
Mac
iMac, MacBook Pro
Mobile Phone
Android, iOS,
No AppleGVAHEVCDecoder show in VTDecoderXPCService, means dummy x4250.kext injection is failed.

Need shiki to run iTunes.
X4250.kext injection has worked as I can see it in my IOREG:

and AppleGVAHEVCDecoder is showing in the VTDecoderXPCService:

But something is forcing software-only decode.
 
Last edited:
Joined
Oct 26, 2013
Messages
1,022
Motherboard
MSI B250M PRO-VHD
CPU
i3-7100
Graphics
RX 570
AppleGVAHEVCDecoder is showing in the VTDecoderXPCService:
Yes, VTDecoderXPCService show HW HEVC is ready.


But something is forcing software-only decode.
But use AppleIntelHD4000GraphicsVADriver as main video decoder, it does not support HW HEVC decoding, therefore VCPHEVC also show in png, GVA setup or initiate incorrectly.

If your mobo BIOS can not fully disable IGPU, then PEG must set to primary, need shiki with boot arg shikigva=1 to complete disable IGPU GVA, AppleIntelHD4000GraphicsVADriver must not loaded.
 
Last edited:
Joined
Oct 23, 2010
Messages
902
Motherboard
GA-Z77X-UP5-TH
CPU
i7-3770K
Graphics
RX 580
Mac
iMac, MacBook Pro
Mobile Phone
Android, iOS,
Yes, VTDecoderXPCService show HW HEVC is ready.




But use AppleIntelHD4000GraphicsVADriver as main video decoder, it does not support HW HEVC decoding, therefore VCPHEVC also show in png, GVA setup or initiate incorrectly.

If your mobo BIOS can not fully disable IGPU, then PEG must set to primary, need shiki with boot arg shikigva=1 to complete disable IGPU GVA, AppleIntelHD4000GraphicsVADriver must not loaded.
I know my IGPU does not provide HEVC decoding. I had already disabled it previously and made no difference.
That is, whether it is enabled or disabled, does not make any difference.

I just disabled the IGPU and set the PEG back to primary.
Now, AppleIntelHD4000GraphicsVADriver is not loaded and IGPU is not in the IOREG but still VCPHEVC is running:

Screen Shot 2017-12-19 at 15.12.49.png


Why are AppleGVAHEVCDecoder, AMDMTLBronzeDriver and AMDRadeonVADriver2 listed but never used ?
 
Last edited:
Joined
Oct 26, 2013
Messages
1,022
Motherboard
MSI B250M PRO-VHD
CPU
i3-7100
Graphics
RX 570
I know my IGPU does not provide HEVC decoding. I had already disabled it previously and made no difference.
That is, whether it is enabled or disabled, does not make any difference.

I just disabled the IGPU and set the PEG back to primary.
Now, AppleIntelHD4000GraphicsVADriver is not loaded and IGPU is not in the IOREG but still VCPHEVC is running:
View attachment 300676
Why are AppleGVAHEVCDecoder, AMDMTLBronzeDriver and AMDRadeonVADriver2 listed but never used ?
Seems to be apps initiate video decoder incorrectly, most probably cause should be hardware video decoder preferences, coremedia and AppleGVA or dyld_shared_cache,

Hardware video decoder preferences

defaults write com.apple.AppleGVA forceNV -boolean yes / no
defaults write com.apple.AppleGVA forceATI -boolean yes / no
defaults write com.apple.AppleGVA forceIntel -boolean yes / no
defaults write com.apple.AppleGVA forceSWDecoder -boolean yes / no
defaults write com.apple.coremedia hardwareVideoDecoder disable
defaults write com.apple.coremedia hardwareVideoDecoder force

If coremedia, AppleGVA preferences are reseted and dyld_shared_cache is updated, apps should implement AppleGVAHECDecoder rather than VCPHEVC.
 
Joined
Oct 23, 2010
Messages
902
Motherboard
GA-Z77X-UP5-TH
CPU
i7-3770K
Graphics
RX 580
Mac
iMac, MacBook Pro
Mobile Phone
Android, iOS,
Seems to be apps initiate video decoder incorrectly, most probably cause should be hardware video decoder preferences, coremedia and AppleGVA or dyld_shared_cache,

Hardware video decoder preferences

defaults write com.apple.AppleGVA forceNV -boolean yes / no
defaults write com.apple.AppleGVA forceATI -boolean yes / no
defaults write com.apple.AppleGVA forceIntel -boolean yes / no
defaults write com.apple.AppleGVA forceSWDecoder -boolean yes / no
defaults write com.apple.coremedia hardwareVideoDecoder disable
defaults write com.apple.coremedia hardwareVideoDecoder force

If coremedia, AppleGVA preferences are reseted and dyld_shared_cache is updated, apps should implement AppleGVAHECDecoder rather than VCPHEVC.
OK Success !:thumbup:
I did the following on Terminal:
Code:
MacNB$ defaults write com.apple.AppleGVA forceATI -boolean yes
MacNB$ defaults write com.apple.AppleGVA forceSWDecoder -boolean no
MacNB$ defaults write com.apple.coremedia hardwareVideoDecoder force
MacNB$ sudo update_dyld_shared_cache -force
And now the CPU load is ~5% when playing the Sony HEVC Sample :
Screen Shot 2017-12-19 at 23.48.38.png

So another proof that your X4250 HEVC injector is working.
Thanks for your help & patience.
 
Last edited:
Joined
Aug 25, 2012
Messages
917
Motherboard
Gigabyte Z390 Designare
CPU
i9 9900k
Graphics
RX480
Mac
MacBook Pro
Classic Mac
Performa, Power Mac, PowerBook
Mobile Phone
iOS
I'm using Intel Quick Sync(connectorless HD530) and AMD480 with success, h264 encode/decode via IQS is fast and low on CPU load.
But the Sony HEVC demo brings my Hack to its knees, software decoding really hits my CPU.

Can I use my AMD voor HEVC decoding, and my Intel Quick Sync for h264 encoding/decoding? How do I set this up?

Thanks for the help!
 
Joined
Oct 26, 2013
Messages
1,022
Motherboard
MSI B250M PRO-VHD
CPU
i3-7100
Graphics
RX 570
I'm using Intel Quick Sync(connectorless HD530) and AMD480 with success, h264 encode/decode via IQS is fast and low on CPU load.
But the Sony HEVC demo brings my Hack to its knees, software decoding really hits my CPU.

Can I use my AMD voor HEVC decoding, and my Intel Quick Sync for h264 encoding/decoding? How do I set this up?

Thanks for the help!
No, when using IQSV, it will disable AMD HEVC decoding.

But you can use shikigva=1 as a IGPU/DGPU GVA on/off switch, when shikigva=1 is using in dual GPU system, it will disable IQSV (shikigva=1 resulting is offinerenderer= no) and enable primary AMD VDADecoder, remove/disable shikigva=1 in dual GPU system, equal to enable IGPU VDADecoder, AMD VDAdecoder will be auto disabled.
 
Last edited:
Joined
Aug 25, 2012
Messages
917
Motherboard
Gigabyte Z390 Designare
CPU
i9 9900k
Graphics
RX480
Mac
MacBook Pro
Classic Mac
Performa, Power Mac, PowerBook
Mobile Phone
iOS
Weird. I have changed nothing, but I can suddenly play 4k 60 Hz hevc encoded mp4 video effortless. with very low CPU load. Even the Sony 60 fps 4K holiday one that I tried before, and it hit the CPU really hard, works with minimal impact on the CPU(in Quicktime Player)

upload_2017-12-20_22-57-17.png

Hardware decoding is working, I think.
 
Joined
Oct 26, 2013
Messages
1,022
Motherboard
MSI B250M PRO-VHD
CPU
i3-7100
Graphics
RX 570
Weird. I have changed nothing, but I can suddenly play 4k 60 Hz hevc encoded mp4 video effortless. with very low CPU load. Even the Sony 60 fps 4K holiday one that I tried before, and it hit the CPU really hard, works with minimal impact on the CPU(in Quicktime Player)

View attachment 300950
Hardware decoding is working, I think.
Yes, HW HEVC decoding work, seems to be done by IQSV, “dyld_shared_cache_x86_64h” show in VTDecoderXPCService.
Normally, dyld_shared_cache_x86_64h should show up when IGPU in solo mode.

I can not reproduce “ dyld_shared_cache_x86_64h” in dual GPU mode like yours, mine always show dyld_shared_cache_x86_64, no matter using IQSV or AMD HEVC decoding.

SKL has limited HEVC support, does not work with 10bit HEVC, use attached file to check video information.
 

Attachments

Top