Contribute
Register

Possible to fix DRM to any degree?

Joined
Jun 3, 2023
Messages
2
Motherboard
Gigabyte B460M D3H
CPU
i7-10700
Graphics
RX 550 + UHD 630
I have set up a desktop system running latest Ventura with the latest version of OpenCore, using the iMac20,1 SMBIOS. I have an Intel i7 10700 with UHD 630 and additionally an AMD Radeon RX 550 Lexa PRO 4GB. The system seems to run properly, however I couldn't get any working hardware DRM.

FairPlay 1.x with the iTunes movie, only sound is working, video is completely black (it's the same behaviour as with iGPU-only).
Fairplay 2.x/3.x works only in non-Safari browsers, so Netflix or Prime are broken in Safari.
I could not test FairPlay 4.x since AppleTV is not available in my country, but most probably it won't work anyway.
DRM through AirPlay is also broken, it results either in a black screen with a loading loop or a straight up error, depending on the service used.

Relevant parts of my current config.plist, please let me know if anything else should be attached:

DeviceProperties:
- PciRoot(0x0)/Pci(0x2,0x0) with "AAPL,ig-platform-id" set to "0300C59B" (this is what I understood to use to set iGPU in headless mode)
- PciRoot(0x0)/Pci(0x1,0x0)/Pci(0x0,0x0) with "device-id" set to "FF67" and "model" set to "AMD RX 550" (since I saw that this GPU is not supported out of the box I straight up spoofed the device id so it uses the Baffin drivers for RX 560)

Boot args:
- keepsyms=1 debug=0x100 alcid=1 igfxonln=1 igfxfw=2 igfxrpsc=1 igfxmetal=1 (here I think some cleanup might be done, they were left like this from the time I had only the iGPU to operate, probably igfxonln should be removed and igfxmetal might be unnecessary, the others iGPU related might still be useful?)

I tried to play a bit with "unfairgva" but all I managed to do was to break currently working features, such as the VDA Decoder, Sidecar, also FairPlay 1.x would fail to the point where I could not play it at all, the play button would be grayed out.

I was thinking maybe the dGPU is the problem but it shows up with 4GB, the UI has transparency and is smooth, also Hackintool and VDADecoderChecker indicate that hardware acceleration and Metal are working properly. I think, however, that benchmarking scores could be better, I read something about a "RadeonBoost" kext but I am not sure where I could find its latest version and I also read that it might be deprecated, so not sure if I should include it either.

Aside from an AMD dGPU, I also read that another version of SMBIOS might be necessary, such as MacPro or iMacPro and they impose disabling the iGPU completely for working DRM? If that is the case, I would value more to have working SideCar than DRM, since I understand SideCar without iGPU might not work at all or be unreliable. If that's not correct and I don't lose any feature or performance and also get working DRM, which SMBIOS version would be more appropriate for my build, if any?

The main question: is there anything else to try to improve the DRM and dGPU performance further and what options do I have? Can I get any of the non-working DRM features listed above using the current version of SMBIOS?

Thank you in advance.
 
Thank you @brousseau6933 . According to that issue, I see the suggestion would be, as you said, to use the headless framebuffer. I tried with both "0300C59B" and the recommended "0300C89B" by WhateverGreen and OpenCore guide, there was no difference.
I am not sure if this is due to some other misconfiguration on my side or whether my dGPU is unsupported by those fixes (maybe the headless framebuffer fix works only for Vega or Navi cards, maybe this particular dGPU won't work due to spoofing, not sure). @Edhawk , do you know if there is any difference between this configuration and what you suggested on https://www.tonymacx86.com/threads/airplay-not-working-with-drm-content.325689/#post-2369956 with the Navi card?
Based on my research in fixing DRM, I was expecting at least FairPlay1 and FairPlay4 to be fixable under the iMac20,1 SMBIOS.
 
The Intel Headless/Empty framebuffers work with the INTEL IGPU, they have no bearing/impact on the dGPU, whether you are using a Lexa, Baffin, Polaris, Vega or Navi discrete GPU.

I would look in the Bios and make sure you have the IGPU enabled and set with the correct amount of memory. Bios settings for Discrete and IGPU shown below.

Dedicated Graphics + Integrated graphics card:
  1. Integrated Graphics : Enabled
  2. Graphics: PEG/PCIe Slot 1
  3. Initial Display Output : PEG/PCIe 1 Slot
  4. DVMT Pre-Allocated : 128M or higher
  • If the IGPU is disabled then you will struggle to get any DRM working using an iMac SMBIOS.
  • If the IGPU is disabled in the bios and you want to keep it that way, then you need to use iMacPro1,1 or MacPro7,1 as those two systems don't expect an IGPU to be present.
  • The iMac20,1 SMBIOS expects the IGPU to be in headless/empty mode, i.e. not driving a display, with the dGPU undertaking all the heavy graphics work.
  • The IGPU would be responsible for Hardware Encoding/Decoding and some Compute processes only (Intel Quick Sync). It should never be used to drive a display.
There would be no difference between your setup using a Lexa/Baffin dGPU + IGPU in Headless mode, and what I recommended in the other post.

You should only have a single DeviceProperties entry for your IGPU.

PciRoot(0x0)/Pci(0x2,0x0)
AAPL,ig-platform-id > Data > <0300C89B>

There are no other entries required in the config.plist for the IGPU to work in Headless mode.

Your RX 550, if using a Lexa chip will require a device-id spoof, but you probably already know this and have this fake ID in place.

If you are spoofing the device ID for a compatible dGPU, this may have an impact on whether the DRM material will play correctly. But that is an assumption on my part, nothing concrete to back up that assumption, just something to consider.
 
Back
Top