Contribute
Register

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

Status
Not open for further replies.
I'm not sure if it's related to the issue, but the unfairgva settings in this post have improved the display so give it a try.

Thx but it is unrelated issue.
I do not have a problem with the displays and unfairgva is more related to DRM which I do not worry/care about (as I do not play Netflix, prime, appletv, etc on a Mac but on my TV).

The HEVC issue is related to the Apple apps. It's works on a real iMacPro1,1 because it has the T2 encoder chip which hackintoshes do not. Apple apps clearly do not use "defined API's" as evident by the fact that VideoProc manages to transcode H.264 to HEVC and vice-versa by using the VideoToolbox API.
 
Last edited:
I am testing with HP8100CMT i7-870 RX460 iMac11.3 OS10.13.6 OpenCore 0.6.6.
I'm surprised you have Big Sur running.
He has it running because he is lucky enough that his CPU supports SSE4.2 instructions.
 
Last edited:
Thank you for your detailed response. As a newbie I re-used my clover config.plist early Dec 2020 and it initially booted with opencore. I only realized 2 days ago that I messed up this config and started all over again with a clean opencore plist reusing the details I already had obtained with the wrong .plist.

After reading the manual and verifying the nehalem details (dortania.github.io) plus cleaning up entries, I now have H264 and HEVIC support. Thank you for the HEVC details (what works and what doesn't work if configured correctly).

Currently I lost my audio (working on it, but still not clear why) and have the memory error in BigSur although I added and configured CustomMemory.plist.

I'm still enjoying the learning curve ;-) but I'm not finished yet. Just update the attached EFI ver2 so the errors showing up in ocvalidate are gone. Some hours later my audio was also working again. See attached other EFI

Well done.
The reason you have audio issues is that you added device properties to inject layoutid=1 and then in boot-args you used alcid=13. boot-args overrides layoutid value. Just use boot-args method and delete the device-property.
Also you have way too many unnecessary device-properties injection -all but two are purely cosmetic as all they do is list the PCI device in the System Profiler report - they add no functional value/enhancement. Even real Mac's do not do that.

For the RX570, you only need 4 items: @0,name, device_type, model and name. Technically you do not even need them as macOS will figure out the correct driver for your card. The only reason I inject those 4 items on my RX580 Nitro+ is to reduce the idle power consumption (by injecting Orinoco frambuffer instead of letting macOS choose the default RadeonFrameBuffer). The other values add no value at all. You should not need the second GPU audio device properties either.

So I would delete all the device-properties except the one I mentioned above with 4 items. Use the KISS principal :)

As mentioned previously, if you use Automatic=TRUE in PlatformInfo, then Generic will be used by OC and NOT SMBIOS. That is, SMBIOS section is redundant. That's why your model ID is MacPro7,1 and you get those memory warnings. If you want H.264 and HEVC to work in VideoProc, then you need to use iMacPro1,1 in the Generic section.

I assume this legacy system of yours does NOT have a real NVRAM. If not then in the NVRAM section of your config.plist you need to set LegacyEnable=TRUE and LegacyOverwrite=TRUE and setup the nvram.plist using the logouthook.command (see the manual and the Dortania guide on how to setup NVRAM emulation). It's only important if you have multiple OS's that you want OC to boot and you wish to set the default OS to boot. macOS does except an NVRAM.
 
For other Big Sur EX58-UD5 owners with a RX570/580 installed, find attached a working OC 0.65 config. Hopefully it helps to bring others up to speed with their EX58.

Issue that I've still open (but discussed somewhere else on this forum):
- Hot-swap USB
- Memory Error message
- Bluetooth connection with apple devices (with pin 0000 is working without issue)
- Restarting via Big Sur
- Imessage & Facetime
 

Attachments

  • EFI OC065 RX570 AUDIO EX58-UD5F12.zip
    2.7 MB · Views: 97
Well done.
The reason you have audio issues is that you added device properties to inject layoutid=1 and then in boot-args you used alcid=13. boot-args overrides layoutid value. Just use boot-args method and delete the device-property.
Also you have way too many unnecessary device-properties injection -all but two are purely cosmetic as all they do is list the PCI device in the System Profiler report - they add no functional value/enhancement. Even real Mac's do not do that.

For the RX570, you only need 4 items: @0,name, device_type, model and name. Technically you do not even need them as macOS will figure out the correct driver for your card. The only reason I inject those 4 items on my RX580 Nitro+ is to reduce the idle power consumption (by injecting Orinoco frambuffer instead of letting macOS choose the default RadeonFrameBuffer). The other values add no value at all. You should not need the second GPU audio device properties either.

So I would delete all the device-properties except the one I mentioned above with 4 items. Use the KISS principal :)

As mentioned previously, if you use Automatic=TRUE in PlatformInfo, then Generic will be used by OC and NOT SMBIOS. That is, SMBIOS section is redundant. That's why your model ID is MacPro7,1 and you get those memory warnings. If you want H.264 and HEVC to work in VideoProc, then you need to use iMacPro1,1 in the Generic section.

I assume this legacy system of yours does NOT have a real NVRAM. If not then in the NVRAM section of your config.plist you need to set LegacyEnable=TRUE and LegacyOverwrite=TRUE and setup the nvram.plist using the logouthook.command (see the manual and the Dortania guide on how to setup NVRAM emulation). It's only important if you have multiple OS's that you want OC to boot and you wish to set the default OS to boot. macOS does except an NVRAM.
Thanks for this feedback also. Followed you KISS advice ;-)
 
What you are seeing with FCPX 10.4.8 on Catalina 10.15.4 is consistent with what I am seeing.
With FCPX 10.4.6 on Mojave 10.14.6 it's much better - at least HEVC encode works on RX580.

There's nothing wrong with your config apart from the device properties you set for the IGPU. It is not necessary since you disable it in the BIOS. Even if it is enabled, WEG Kext would setup a headless IGPU for you so no need to use it.

On a real iMacPro1,1 and many of the new Macs where there's no IGPU, they do have the T2 chip (even one's with IGPU have T2 chip).
The T2 chip does MORE than just security. It also does video encode and decode.
So when a real T2 chip is not available, it falls back to using the CPU - which what we are seeing.
For those fortunate folks with i9's with 6, 8, etc cores this eCPU's are much more powerful that you will not notice the load placed on the them while encoding HEVC.

I do not have RX 5700XT so cannot comment how well it works with FCPX and Compressor as far as Decoding and Encoding is concerned. Just be aware of folks here on these forum who claim "RX 5700 XT is fully supported OOB". In general what they really mean is that the dGPU accelerates the macOS GUI and that does not mean it it will necessarily work certain Apps - even Apple's Apps. They need to prove CPU utilisation, dGPU utilisation and of course output quality.

Anyway, just to double check what you are seeing, I thought I would do a quick test with the latest Catalina 10.15.5.
Unfortunately, Catalina 10.15.5 taken another backward step for FCPX 10.4.8 & RX580. Even as iMacPro1,1.
The Export seems to do nothing but stall at 0% when taking HEVC project and exporting it as H.264.
This is really bad.
The CPU & RX580 are both idle and the system is running fine - just the export stuck at 0%:

View attachment 472156
That's really weird (that it cannot export to H.264).
Then, taking the same project with HEVC clip and exporting as HEVC maxes out the CPU as it is doing all the work.
RX580 is sitting idle. :

View attachment 472157

Taking an H.264 project and exporting as HEVC again maxes out the CPU (with RX580 doing the some Decoding):

View attachment 472158

Taking the H.264 4K project and exporting as H.264 FHD does use RX580 for the Decoding & Encoding while the CPU is mainly idle:
View attachment 472161

Ignoring FCPX for the moment and using Compressor 4.4.6, results are the same.
Taking a 4k HEVC input and Exporting it as H.264 took no time at all and RX580 was doing most of the work:

View attachment 472165

But taking an H.264 source and transcoding to HEVC, the CPU was (again) maxed out (and had to be cancelled).
At least Compressor was actually do the transcode unlike FCPX which was hung at 0%.

View attachment 472166

So with a system as iMacPro1,1 running Catalina 10.15.5 + RX580 + NO IGPU (i.e disabled):
  1. FCPX 10.4.8 HEVC project export to H.264 stalls FCPX - I had to cancel the export.
  2. FCPX 10.4.8 HEVC project export to HEVC, Encode on RX580 not supported - CPU used to max.
  3. FCPX 10.4.8 H.264 project export to H.264, Decode & Encode on RX580 supported - no CPU usage.
  4. FCPX 10.4.8 H.264 project export to HEVC, Decodes H.264 but NO Encode on RX580 supported - CPU Maxed.
  5. Compressor 4.4.6 HEVC to H.264 transcode, Decode & Encode by RX580. A big surprise it works well.
  6. Compressor 4.4.6 H.264 to HEVC transcode, Decode only on RX580 as CPU maxed out.
  7. HEVC decode works fine (i.e. playing back HEVC content is silky smooth).
Now switch back to Mojave 10.14.6, iMacPro1,1, IGPU DISABLED, FCPX 10.4.6, Compressor 4.4.5.
This time, same HEVC 4K project exported to H.264 4K, RX580 load was 100% and it was Decoding and Encoding:

View attachment 472194

Then, taking the 4K H.264 project and exporting it as HEVC.
Again, this export, RX580 was maxed out at 100% decoding and encoding. But the CPU load was higher.
Interestingly, the export was much quicker (to HEVC than to H264):

View attachment 472201

Next test was Compressor 4.4.5.
Taking the same 4K HEVC clip and transcoding to H.264 was no problem.
RX580 was maxed out 100% decoding and encoding while the CPU utilisation was low:

View attachment 472205

Next test was a surprise with Compressor.
Took the 4K H264 clip and transcoding to HEVC.
CPU loading was ~ 90% and RX580 load was ~ 3% and it was neither decoding nor encoding:

View attachment 472208

So with a system as iMacPro1,1 running Mojave 10.14.6 + RX580 + NO IGPU (i.e disabled):
  1. FCPX 10.4.6: H.264 to HEVC Encode is supported and works well on the RX580 (CPU is used too).
  2. FCPX 10.4.6: HEVC to H.264 decode and encode fine on the RX580 (very little CPU used).
  3. Compressor 4.4.5: HEVC to H.264 decode & encode fine on the RX580 (very little CPU used).
  4. Compressor 4.4.5: H.264 to HEVC decode & encode does NOT work on the RX580 (CPU @ 90%)
  5. HEVC decode works fine (i.e. playing back HEVC content is silky smooth).

So my conclusion is that if your workflow requires HEVC output for FCPX, use Mojave 10.14.6 & FCPX 10.4.6 and Compressor 4.4.5.
Hi there,

I'm enquiring if you know about Catalina 10.15.7 and / or Big Sur 11.2 with SMBIOS iMacPro1,1 iGPU disabled and Vega 56 video card or RX 580..
In my case from FCPX 10.5.1 it seems H264 / ProRes to HVEC has just software enabled, I'm testing with 10.15.7.
Is there a way to enable HVEC using some dummy kexts or so?
What is this idea behind MacOS / FCPX that enable / disable hardware encoding from release to release?

Thanks a lot!
 
Hi there,

I'm enquiring if you know about Catalina 10.15.7 and / or Big Sur 11.2 with SMBIOS iMacPro1,1 iGPU disabled and Vega 56 video card or RX 580..
In my case from FCPX 10.5.1 it seems H264 / ProRes to HVEC has just software enabled, I'm testing with 10.15.7.
Is there a way to enable HVEC using some dummy kexts or so?
What is this idea behind MacOS / FCPX that enable / disable hardware encoding from release to release?

Thanks a lot!

I have not found a way of enabling HEVC in FCPX/Compressor on a hack that uses the AMD GPU only.
There is no magic kext.
Those Apple Apps appear to be bypassing standard API's on the macOS or using some sort of back door to encode & decode regarding HEVC. It is bizarre. That's the case with Catalina & Big Sur.
I believe it's due to the evolution of the T2 chips and it's variants as new Mac's came out...so Apple's Apps evolved knowing what model's ID has what graphics h/w.

One App (non-Apple) that appears to use standard VideoToolBox API's seems to manage to use AMD GPU for HEVC encode. That one is VideoProc. It can take H.264 and transcode to HEVC using mainly the AMD GPU.
I have not tested ProRes to HEVC transcode. If that works then it adds one more step in workflow and significant extra amount of disk space that ProRes format requires.
UPDATE: I just tried ProRes 422 to HEVC transcode via VideoProc App and it does indeed use AMD GPU to encode :clap:

What's the idea behind it ? Well remember that Apple can change what they like in their OS & h/w and even if their fanboys notice that something does not work, the fanboys accept it as good fanboys are suppose to and Apple don't need to care (even if they complained).
E.g. They created a concept of External GPU's boxes that connect via Thunderbolt and got lots of people to buy these very expensive boxes so those Apple Apps can offload the encodes to those external GPU's transparently. Within a year, Apple dropped support for them and so Blackmagic (one of the manufacturers) did the same leaving many high and dry. But you don't see those lost fanboys marching through the streets in complaints but instead they shrugged their shoulders and marched to their nearest Apple store bought newer Apple Macs. Just what Apple wanted.

So the idea is an old adage in marketing....to make more money in product transitions (and not in existing products).
 
Last edited:
...but it won't use the GPU when transcoding a DVD...
DVD ???
What's a DVD ??:lol:

Never tried transcoding anything to MPEG2.
It probably will not work as GPU's do not support "legacy" codecs
 
Hi guys,
I hope someone can help me
First of all, my components are :

Asus Sabertooth P67
Intel i5 2500k
Ati Radeon RX580 Nitro+
SMBios : iMacPro1,1

Everything works perfectly on Monteray and BigSur, except h264 rendering ... VideoProc (everything is green and supported) , Davinci resolve, FCPX, Mediaencoder... every single program freeze and then restart the computerwhen try to render anything in h264. H265 working perfectly.
I tried to change smbios, tried iMacPro1,1 , MacPro6,1 and 7,1, same thing.
Tried several bootflags in bootloader, and nothingworks
Just to say, OPencore is on the latest version, as all the kexts.

I hope someone have some idea how to resolve this.

Thanks in advance!
 
Status
Not open for further replies.
Back
Top