Contribute
Register

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

Status
Not open for further replies.
@macnb
interesting, for now with PlugInType=1 and KernelXCPM ticked in Clover configurator and CPUFriend+CPUFriendDataProvider.kext in clover/kext/other/
my Average frequency of all cores is around 2.5Ghz
View attachment 452637

Those charts look OK. That is approximately what I see.

I'm planning to try ssdtPRGen+ssdt_data.dsl combined to compare (my OC is 4.5).
should i run:
Code:
sudo ~/ssdtPRGen.sh -c 2 -t 77 -turbo 4500 -target 1 -x 1 -b Mac-FC02E91DDD3FA6A4
to generate ssdt or get rid of -x 1 probably, then untick KernelXCPM in clover?:think:
Code:
sudo ~/ssdtPRGen.sh -c 2 -t 77 -turbo 4500 -target 1 -b Mac-FC02E91DDD3FA6A4
To be honest, I see very little difference between using XCPM and not using it.
Also, I believe XCPM does not really work properly with Ivy Bridge.
Let me explain what I mean by that.
When You set KernelXCPM to True, Clover does patch the kernel to use XCPM and you can confirm that by running the following command:
Code:
sysctl -a |grep -i xcpm.mode
It will return:
Code:
machdep.xcpm.mode: 1

The problem is, that the Clover does not inject the FrequencyVectors for Ivy Bridge that XCPM expects.
You can confirm that by running:
Code:
sysctl -a |grep -i xcpm.mode.vectors_loaded_count
And it will return:
Code:
machdep.xcpm.mode.vectors_loaded_count: 0
According to Piker Alpha:
"3.) If sysctl -n machdep.xcpm.vectors_loaded_count returns 0 then the FrequencyVectors data is not being used. Backup the plist for your board-id and replace it with a different plist."

That's where CPUFriend comes in.
However when we use Mac-FC02E91DDD3FA6A4.plist file to create the CPUFriend data kext, that .plist DOES NOT contain any FrequencyVector data for iMac13,2 (which uses an Ivy Bridge CPU) and thus XCPM cannot use any frequency vectors. The reason it does not contain any Frequency Vectors is because Apple do not use XCPM for Ivy Bridge.
Therefore, turning on XCPM with CPUFriend does not really help XCPM on Ivy Bridge.

As an experiment, I took the FrequencyVectors array from iMac14,2 Mac-27ADBB7B4CEE8E61.plist :

Screenshot 2020-03-12 at 15.10.29.png

....and added it to the iMac13,2 Mac-FC02E91DDD3FA6A4.plist file and that does show:
Code:
machdep.xcpm.mode.vectors_loaded_count: 1

But the idle frequency is still around 2.5Ghz both on Mojave and Catalina.
I tried OpenCore and added kernel patches to enable XCPM with CPUFriend but the results are the same.
But those FrequencyVectors are for a Haswell CPU (not Ivy Bridge) so it's not a valid thing to do.

Conclusion is that XCPM does not gain anything useful on Ivy Bridge CPU.

i've also found this interesting post by @LisaAlterEgo here for me to combine ssdt_data.dsl with ssdtPRGen ssdt:
https://www.tonymacx86.com/threads/...ver-uefi-hotpatch.279627/page-13#post-2058672

It was not very clear for me from the CPUFriend github explanation :)

CPUFriend gives you an option to use EITHER the kext it generates OR the SSDT_dsl.dsl file it generates.
You use one or the other. The result is the same using either method. The Kext is the easiest to use. The SSDT method provide slight improvement at boot time but NOT during use. Just use the kext method.

Also are you using EIST on Auto or Disable in BIOS settings?
I am using EIST set to AUTO.
 
Could you provide your IORegistryExplorer output, and in particular,
tell us what Radeon Framebuffers are being selected? There are injectors
to enable HEVC for Baffin and Ellesmere, but I'm not sure what your cards
default to.

Hi, I am sorry for the late reply. There have been few updates: My Vega64 died and now I only have 5700xt and I re-installed macOS and switched to OpenCore. The situation with HEVC is still the same. No HEVC acceleration when iGPU is off.

Thank You


When I was testing the operation with "SMBIOS = MacPro6.1", I was wondering why the HEVC file that had been playing was not playable.
This is probably due to a change in the on / off setting of the iGPU.

After reading the @DiscoDancer post, I tried to see if the result of VTCopyVideoEncoderList changes depending on whether iGPU is enabled or disabled during installation.
The result is that the result of VTCopyVideoEncoderList changes, but I can not decipher the changed contents.

A simple Xoce program will be posted, so if you are interested in the content, try it.
Dump VTCopyVideoEncoderList information to ~ / VTCopyVideoEncoderList.txt.

Code:
#import <Foundation/Foundation.h>
#import <VideoToolbox/VTVideoEncoderList.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool
    {
        NSMutableString *record = [NSMutableString stringWithCapacity:0];
        [record appendString:@"Dump:VTCopyVideoEncoderList\n"];

        CFArrayRef encoder_list;
        VTCopyVideoEncoderList(NULL, &encoder_list);
       
        NSArray *array = (__bridge NSArray*)encoder_list;
       
        int index = 1;
        for( id list in array )
        {
            NSArray *keys = [list allKeys];
            [record appendFormat:@"index[%02d] \n{", index];
            for( id key in keys)
            {
                if( [key compare:@"CodecType"] != NSOrderedSame )
                    [record appendFormat:@"\n%@:\"%@\"",key, [list objectForKey:key]];
                else
                    [record appendFormat:@"\n%@:\"%@\"(0x%08X)",
                       key,
                       [list objectForKey:key],
                       (int)[[list objectForKey:key] integerValue]
                      ];

//                NSLog(@"index[%2d] key[%@] data[%@]", index, key, [list objectForKey:key]);
            }
            [record appendString:@"\n},\n"];
            index++;
        }
        CFRelease(encoder_list);
       
        NSString *file = @"~/VTCopyVideoEncoderList.txt";
        [record writeToFile:[file stringByExpandingTildeInPath]
                 atomically:YES
                   encoding:NSUTF8StringEncoding
                      error:NULL];
    }
    return 0;
}

Much of the things you said were beyond my level of understanding, unfortunately. But I did run the program in xcode and got the file. Can't make much out of it though. I've attached it if you'd like to have a look.

Thank You
 

Attachments

  • Piyush’s Mac Pro.ioreg
    7.7 MB · Views: 84
  • iGPUON.txt
    4 KB · Views: 211
But I did run the program in xcode and got the file. Can't make much out of it though. I've attached it if you'd like to have a look.
Check if "IsHardwareAccelerated:" 1 "is lost in the execution result when iGPU is off.

I verified whether there was reproducibility in my case, but there was no change with on / off of iGPU.
However, mpv stopped working as it affected the operation of the application.

It's difficult to find a way to go well, but leaving it may be silly.
 
Check if "IsHardwareAccelerated:" 1 "is lost in the execution result when iGPU is off.

I verified whether there was reproducibility in my case, but there was no change with on / off of iGPU.
However, mpv stopped working as it affected the operation of the application.

It's difficult to find a way to go well, but leaving it may be silly.
I tried it with iGPU off and 'IsHardwareAccelerated' is still showing 1. I must add that I only lose HEVC acceleration in FCPX. VideoProc on the other hand says that the HEVC support is there.
With iGPU off FCPX taxes CPU like crazy when exporting HEVC file and it also takes ages to complete.
I am completely clueless here.
 

Attachments

  • iGPUoff.txt
    4 KB · Views: 119
I tried it with iGPU off and 'IsHardwareAccelerated' is still showing 1.

Thank you for attaching the execution result.
I tested with "SMBIOS = iMac13,2 MacPro6.1 iMacPro1.1", but it seems that the 'IsHardwareAccelerated' flag can only be guaranteed during playback.
Any playback was possible, but encoding with ffmpeg succeeded only with "iMacPro1.1".

With iGPU off FCPX taxes CPU like crazy when exporting HEVC file and it also takes ages to complete.

I think that the execution speed at the time of encoding will also change, and HEVC conversion with ffmpeg on Windows will be about twice as fast as VideoToolBox.
 
RX 580 working perfectly here on 10.15.4. DRM in Safari and all.

/edit iMacPro1,1 profile, IGPU disabled, latest (compiled) Lilu & WEG.
/edit2 I can't say how pleasantly surprised I am by this. None of the other Catalina versions worked for me so I put off upgrading until now.
 
Last edited:
I tried it with iGPU off and 'IsHardwareAccelerated' is still showing 1. I must add that I only lose HEVC acceleration in FCPX. VideoProc on the other hand says that the HEVC support is there.
With iGPU off FCPX taxes CPU like crazy when exporting HEVC file and it also takes ages to complete.
I am completely clueless here.

I'm in the same situation... HEVC acceleration not working in FCPX, Compressor, or Quicktime but is working in Premiere Pro and VideoProc.

I was able to pull version 10.4.6 of FCX and can confirm it works well...HEVC acceleration is active. 10.4.8 took a minute to render 10 seconds of 4K video...10.4.6 took 11 seconds. Note: this is for 8 bit HEVC. 10 bit speeds did not change. Certain motion effects also render much faster (you have to use the old version).

My guess is when Apple switched to the new Metal Engine setup in Catalina and FCX apps, it used a new path to the Graphics card that Hackintoshs' aren't yet compatible with.
 
Last edited:
RX 580 working perfectly here on 10.15.4. DRM in Safari and all.

/edit iMacPro1,1 profile, IGPU disabled, latest (compiled) Lilu & WEG.
/edit2 I can't say how pleasantly surprised I am by this. None of the other Catalina versions worked for me so I put off upgrading until now.
I use RX580 on SMBios 19.1 and also work perfect .. TV and everything are super.
 
I'm in the same situation... HEVC not working in FCPX, Compressor, or Quicktime but is working in Premiere Pro and VideoProc.

I was able to pull version 10.4.6 of FCX and can confirm it works well...HEVC acceleration is active. 10.4.8 took a minute to render 10 seconds of 4K video...10.4.6 took 11 seconds. Note: this is for 8 bit HEVC. 10 bit speeds did not change. Certain motion effects also render much faster (you have to use the old version).

My guess is when Apple switched to the new Metal Engine setup in Catalina and FCX apps, it used a new path to the Graphics card that Hackintoshs' aren't yet compatible with.
Your comments are a little ambiguous.
You state "... HEVC not working in FCPX" then you say "...HEVC acceleration is active...10.4.8 took a minute to render 10 seconds of 4K video".

So what is working and what is NOT working ?
 
Your comments are a little ambiguous.
You state "... HEVC not working in FCPX" then you say "...HEVC acceleration is active...10.4.8 took a minute to render 10 seconds of 4K video".

So what is working and what is NOT working ?

Final Cut X version 10.4.8 - HEVC Hardware Acceleration Not working
Final Cut X Version 10.4.6 - Working

Same goes for Compressor and Motion...new versions don't have acceleration, previous versions do

You can still render in the new versions, they're just painfully slow without the hardware acceleration
 
Status
Not open for further replies.
Back
Top