Fixing DRM support and iGPU performance
Last updated
Last updated
Lưu ý:
Safari 14 và macOS 11, Big Sur hiện không được hỗ trợ bởi các bản vá DRM của WhateverGreen. Safari 13 ở Catalina trở lên được hỗ trợ tốt.
Trình duyệt không sử dụng DRM dựa trên phần cứng (tức là. Mozilla Firefox hoặc các trình duyệt dựa trên Chromium như Google Chrome và Microsoft Edge) sẽ có DRM hoạt động mà không có bất kỳ liên quan nào đến iGPUs và dGPUs. Hướng dẫn dưới đây dành cho Safari và các ứng dụng khác sử dụng DRM dựa trên phần cứng.
Vì vậy, với DRM, chúng tôi có một vài điều chúng tôi cần đề cập:
DRM yêu cầu dGPU được hỗ trợ
Xem danh sách tại đây
DRM bị lỗi với hệ thống chỉ có iGPU
Từ bản 10.12.2 trở xuống có thể khắc phục bằng Shiki.kext (bây giờ là WhateverGreen.kext)
Do iGPU không được Apple hỗ trợ và cấp phép.
Tăng tốc phần cứng và giải mã
Trước khi bắt đầu, hãy đảm bảo phần cứng của bạn đang hoạt động. Kiểm tra bằng VDADecoderChecker
Nếu kết quả failed, hãy kiểm tra lại các mục sau:
Đảm bảo phần cứng của bạn được hỗ trợ
Xem chi tiết tại GPU Buyers Guide
Đảm bảo SMBIOS bạn đang chạy khớp với phần cứng của mình.
Không sử dụng SMBIOS của Laptop cho Desktop.
Đảm bảo iGPU được kích hoạt trong BIOS và có các thuộc tính chính xác (AAPL,ig-platform-id - device-id nếu cần)
Bạn có thể xem lại phần DeviceProperties từ hướng dẫn của Dortania hoặc WhateverGreen's manual
Tránh đổi tên ACPI không cần thiết, tất cả những cái quan trọng đã được xử lý trong WhateverGreen.
change GFX0 to IGPU
change PEG0 to GFX0
change HECI to IMEI
Xem thêm tại đây
Đảm bảo Lilu.kext và WhateverGreen.kext được nạp
Xóa các kext dưới đây nếu có:
IntelGraphicsFixup.kext
NvidiaGraphicsFixup.kext
Shiki.kext
Để kiểm tra xem Lilu và WhateverGreen có hoạt động đúng hay không:
kextstat | grep -E "Lilu|WhateverGreen"
Nếu 1 trong 2 hoặc cả 2 không hiện thì phải xem ở nhật ký khởi động.
14:354 00:020 OC: Prelink injection Lilu.kext () - Success
14:367 00:012 OC: Prelink injection WhateverGreen.kext () - Success
Đây là khi nó không hoạt động đúng:
15:448 00:007 OC: Prelink injection WhateverGreen.kext () - Invalid Parameter
Lúc này bạn cần kiểm tra các lý do:
Thứ tự các kext: Lilu phải đứng trên WhateverGreen
Tất cả các kext được update bản mới nhất: Đặc biệt là các plugin của Lilu, vì kexts không phù hợp có thể gây ra vấn đề
Lưu ý: Để thiết lập ghi nhật ký tệp, hãy xem OpenCore Debugging.
Lưu ý: Trên macOS 10.15 trở lên, gỡ lỗi AppleGVA bị vô hiệu hóa theo mặc định, nếu bạn gặp lỗi chung trong khi chạy VDADecoderChecker, bạn có thể bật gỡ lỗi với lệnh sau:
defaults write com.apple.AppleGVA enableSyslog -boolean true
Để hoàn tác, bạn dung lệnh:
defaults delete com.apple.AppleGVA enableSyslog
Testing DRM
Vì vậy, trước khi chúng ta đi sâu, chúng ta cần biết các loại:
FairPlay 1.x: DRM dựa trên phần mềm, được sử dụng để hỗ trợ máy Mac cũ dễ dàng hơn.
Cách dễ nhất để kiểm tra điều này là xem một bộ phim trên iTunes: FairPlay 1.x test
Các đoạn giới thiệu FairPlay 1.x sẽ hoạt động trên bất kỳ cấu hình nào nếu WhateverGreen được thiết lập đúng cách - bao gồm cả cấu hình chỉ có iGPU. Tuy nhiên, các bộ phim sẽ chỉ phát trên cấu hình chỉ có iGPU trong khoảng 3-5 giây, lỗi HDCP không được hỗ trợ.
FairPlay 2.x/3.x: DRM dựa trên phần cứng, được tìm thấy trong Netflix, Amazon Prime
Cách để kiểm tra:
Xem một chương trình trên Netflix hoặc Amazon Prime
Xem video giới thiệu trên Amazon Prime : Spider-Man: Far From Home
Dù bản thân trailer không sử dụng DRM nhưng Amazon vẫn kiểm tra trước khi phát.
Lưu ý: Yêu cầu GPU AMD Polaris hoặc mới hơn
FairPlay 4.x: DRM hỗn hợp, được tìm thấy trên AppleTV +
Bạn có thể mở ứng dụng Apple TV, chọn TV+ -> Free Apple TV+ Premieres, sau đó nhấp vào bất kỳ tập nào để kiểm tra mà không cần bất kỳ bản dùng thử nào (bạn cần tài khoản iCloud)
Apple TV+ cũng có bản dùng thử miễn phí nếu bạn muốn sử dụng nó
Lưu ý: Yêu cầu tắt IGPU (nếu có) và GPU AMD Polaris hoặc mới hơn
Possible to force FairPlay 1.x when iGPU is absent
Nếu mọi thứ hoạt động, bạn không cần phải tiếp tục! Nếu không, hãy tiếp tục.
Andrey1970AppleLife đã tạo ra một biểu đồ nhỏ tuyệt vời cho các cấu hình phần cứng khác nhau:
Đầu tiên, xác định cấu hình bạn có trong biểu đồ (AMD đại diện cho GPU, không phải CPU). SMBIOS được liệt kê (IM = iMac, MM = Mac Mini, IMP = iMac Pro, MP = Mac Pro) là những gì bạn nên sử dụng nếu bạn phù hợp với cấu hình phần cứng. Nếu bạn không khớp bất kỳ cấu hình nào trong biểu đồ, xin chia buồn!
Tiếp theo, xác định chế độ Shiki nào bạn cần sử dụng. Nếu có hai cấu hình cho cấu hình của bạn, chúng sẽ khác nhau trong các lệnh thiết lập Shiki. Nếu cột mode trong WhateverGreen's DRM trống thì bạn không cần thêm gì nữa. Ngược lại, bạn nên thêm shikigva làm thuộc tính cho bất kỳ GPU nào, sử dụng DeviceProperties > Add. Ví dụ: nếu chế độ chúng ta cần sử dụng là shikigva =128:
Bạn cũng có thể them vào boot arg giống trong cột Mode.
Ví dụ: Với cấu hình Intel i9-9900K và RX 560, cấu hình sẽ là "AMD + IGPU", và tôi sẽ sử dụng iMac hoặc Mac Mini SMBIOS (iMac19,1). Sau đó, sẽ có hai tùy chọn cho cấu hình: shikigva = 16 và shikigva = 80. Sự khác biệt nằm ở "Prime Trailers" và "Prime/Netflix". Nếu muốn Netflix hoạt động, hãy chọn tùy chọn shikigva = 80. Sau đó thêm shikigva với dạng số (number/integer) và giá trị 80 vào iGPU, dGPU hoặc boot arg, khởi động lại và DRM sẽ hoạt động.
Ví dụ khác: Lần này là Ryzen 3700X và rx 480. Cấu hình này chỉ có "AMD", và chúng ta nên sử dụng iMac Pro hoặc Mac Pro SMBIOS. Có hai lựa chọn: không có đối số shiki, và shikigva = 128. Nếu thích giải mã phần cứng hơn là giải mã phần mềm, hãy thêm tùy chọn shikigva = 128 vào dGPU hoặc boot-arg. Khởi động lại và DRM hoạt động.
Ghi chú:
Bạn có thể sử dụng gfxutil để tìm đường dẫn đến iGPU /dGPU.
path/to/gfxutil -f GFX0
GFX0: dung cho dGPU, nếu có nhiều dGPU, hãy dùng IORegistryExplorer để tìm.
IGPU: dùng cho iGPU
Nếu thêm shikigva vào DeviceProperties thì chỉ thêm vào 1 GPU.
IQSV là viết tắt của Intel Quick Sync Video: chỉ hoạt động nếu có iGPU và đã được thiết lập đúng.
Cấu hình đặc biệt (như Haswell + AMD dGPU với iMac SMBIOS, nhưng iGPU bị vô hiệu hóa) không được nói đến trong bảng này nên bạn phải tự nghiên cứu.
Shiki source rất hữu ích trong việc tìm hiểu về các cấu hình đặc biệt.
Đối với lỗi VDADecoderCreate : -12473 trên Big Sur, hay dung lệnh này:
defaults write com.apple.AppleGVA gvaForceAMDAVCDecode -boolean yes