Contribute
Register

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

Status
Not open for further replies.
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:
screen-shot-2017-12-11-at-18-10-19-png.298920

and AppleGVAHEVCDecoder is showing in the VTDecoderXPCService:

But something is forcing software-only decode.
 
Last edited:
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:
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:
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.
 
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:
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!
 
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:
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.
 
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

  • MediaInfo.zip
    6.9 MB · Views: 291
Status
Not open for further replies.
Back
Top