Big Sur DRM testing
As
@Asural and
@Sniki have pointed out elsewhere, there is new information
on the Whatevergreen website about DRM in Big Sur, copied below. I've
tested the info on my Big Sur 8300s with i5-3570K HD 4000 Graphics IGPU
and RX 560 or RX 570 DGPU, one with iMacPro1,1 SMBIOS, and one with
iMac15,1 SMBIOS.
In my systems, I don't see the default overrides making a noticeable difference.
The advice says "IGPU-free Mac models" (like iMacPro1,1) "allow for full DRM
content access given a compatible AMD GPU video decoder," but in my case
that is only true for earlier macOS like Catalina 10.15.7 with certain shikigva
settings, and I cannot get DRM streaming to work in Big Sur.
In AppleTV in Big Sur, I can see the previews at the beginning of streaming
and see VTDecoderXPC running in Activity Monitor, but once I get into the
body of the streaming content VTDecoderXPC activity stops updating and I
basically see a red or green screen. I see the same behavior whether the
SMBIOS is IM15,1 or IMP1,1.
In the IM15,1 machine, if I disable the IGPU in BIOS, then Quicktime will
not play DRM-protected videos. If I enable the IGPU in BIOS and configure
it as a headless 01620007 framebuffer, Quicktime and AppleTV will play an
mpeg4 video that has previously been downloaded. There is a small 4-5 second
start-up delay in the video, but it plays fine after that. Intel Power Gadget
shows the IGPU running at a constant 350 MHz.
If I enable the IGPU in BIOS and configure it as a connector-full 01660000 or
0166000A framebuffer, Quicktime and AppleTV will play an mpeg4 video that
has previously been downloaded. There is no start-up delay in the video; it plays
fine from the beginning. In BIOS I have to set the Intel as Primary to boot with
these ig-platform-id's. I can run Geekbench 4 to check the IGPU performance
of the HD4000, and then I can see the clock of the IGPU throttling up to 1150 Mhz
on demand.
I'm finding that I like the IM15,1 SMBIOS. The native graphics power management
is set up for an AMD DGPU on GFX0, and also for power management of an Intel
IGPU with a connector-full ig-platform-id, so I don't need a custom AGPM injector.
I think you have to configure a custom AGPM injector for IMP11 or MP61 (which
only has AGPM set up for GFX1 and GFX2). I'm not sure how to handle the CPU power
management change in the Dortania Haswell instructions, but my old CPUFriend power
management files seem to work fine.
When I run Hackintool, the IM15,1 always tells me that VDADEcoder is Fully Supported.
When I run VideoProc, it tells me that I have H264 and HEVC enabled at 4K resolution.
When I play an HEVC video like Swordsmith, it plays smoothly. I haven't been able to
get full resolution and VDADecoder with MP61. With my setup, I am also able to stream
DRM-protected AppleTV content in Firefox, although the selection seems lessened at
tv.apple.com. Even beta versions of Safari won't stream AppleTV and I see the red screen
of death. I am also able to dual-boot to Windows, and can download appleTV content
in iTunes there.
DRM Compatibility on macOS 11 (From Whatevergreen/FAQ.Chart.md)
Things to keep in mind:
- All kinds of software DRM decoders were removed from macOS 11
- All kinds of legacy hardware DRM decoders (e.g. NVIDIA VP3) were removed from macOS 11
- WhateverGreen Shiki functionality is not planned for inclusion for macOS 11
- AMD GPU video decoder preference can be chosen through preferences overrides for some types of DRM content (like Apple TV and iTunes movie streaming)
- Only IGPU-free Mac models allow for full DRM content access given a compatible AMD GPU video decoder
- For old CPUs (e.g. Xeons or Quad 2 Quad) and supported AMD GPUs injecting unfairgva with <01 00 00 00> value is required for streaming DRM
List of overrides:
- defaults write com.apple.AppleGVA gvaForceAMDKE -boolean yes forces AMD DRM decoder for streaming services (like Apple TV and iTunes movie streaming)
- defaults write com.apple.AppleGVA gvaForceAMDAVCDecode -boolean yes forces AMD AVC accelerated decoder
- defaults write com.apple.AppleGVA gvaForceAMDAVCEncode -boolean yes forces AMD AVC accelerated encoder
- defaults write com.apple.AppleGVA gvaForceAMDHEVCDecode -boolean yes forces AMD HEVC accelerated decoder
- defaults write com.apple.AppleGVA disableGVAEncryption -string YES forces AMD HEVC accelerated decoder
- defaults write com.apple.coremedia hardwareVideoDecoder -string force forces hardware accelerated video decoder (for any resolution)
- defaults write com.apple.coremedia hardwareVideoDecoder -string disable disables hardware accelerated video decoder (in QuickTime / Apple TV)