dortania / bugtracker

Dortania Bugtracker
108 stars 7 forks source link

GPU issues (and possible workarounds) in Dortania guides #277

Open FishyFlower opened 2 years ago

FishyFlower commented 2 years ago

I've recently built a few Hackintoshes, so I found a few issues related to GPUs in Dortania guides. I think they should be mentioned (along with workarounds), but I want to hear your opinion first. If these proposals are approved by maintainers and the community, I will happily prepare a pull request.


  1. No video out on UHD 630 paired with Z590 chipset

The problem is, that a combination of a 10th generation "Comet Lake" Intel Core processor (such as i7-10700K, which is pefectly supported and shipped in a real Mac) and 500-series motherboard (designed for 11th-gen "Rocket Lake", but compatible with 10th, such as Z590) will result in no signal on video outputs. The IGPU is correctly recognized by macOS and can be used for IQSV, but framebuffer outputs won't work.

This is probably related to chipset design, because I remember that also Linux i915 driver initially had same problems with this combo. I tried Fedora 33 or 34, it didn't work, a few months later I tried 35 and this worked - so the change was somewhere between 5.8 to 5.15 kernel. This is definitely worth investigating (which I wanna do in free time - compare i915 kernel source in given timeframe), but the eventual fix will be a part of Acidanthera project. When I gather necessary evidence, I will certainly share it and create an issue in appropriate project :)

What we can do here, is to mention in guides (Install Guide - Hardware Limitations/GPU Support & Comet Lake sections, GPU Buyers Guide, Anti Buyers Guide) that using UHD 630 on Z590 for driving a display is currently unsupported, and chances are, that will never be.

  1. Hardware Encoder/Decoder does not work with empty framebuffer (at least on UHD 630 with Z590 and latest Monterey), but works otherwise

This is an actual issue and I don't understand why it's happening nor why my workaround works - but it works. Actually, it's not 100% mine, I found this advice somewhere on the Internet and I don't saved the source - but the fix is simple enough to include it.

The point is, that if you use 0300C89B or any other empty framebuffer on UHD 630 (at least on my Z590, OS: latest Monterey), VDADecoderChecker will tell you that Hardware acceleration is unsupported and VideoProc Converter will clarify that hardware H264 encoder and decoder is unsupported on your system. Suprisingly, HEVC decoder works flawlessly, for sure on the IGPU because my Radeon HD 7770 doesn't even support HEVC. Anyway, it should use IGPU because my SMBIOS is iMac20,1. No AppleGVA overrides work here, but swapping the ig-platfom-id for anything with connectors (I use 07009B3E) fixed the problem, and now both VDADecoderChecker and VideoProc shows me that hardware acceleration is supported for any type of media.

I propose adding a note to Fixing DRM section in Post-Install, Comet Lake section and Hardware Limitations/GPU Support in Install Guide and GPU Buyers Guide that using hardware decoder/encoder on UHD 630 may require setting framebuffer to something connectorful.

  1. radpg=15 boot arg for Radeon HD 7xxx series

GPU Buyers Guide says (in both Modern AMD GPUs and AMD Boot Flags sections) that radpg=15 boot argument is required for proper initialization of Radeon HD 7xxx series graphics cards. This is indeed true, but no real explaination is given what it does. The answer is in WhateverGreen Radeon manual, which says that it disables certain power-gating features in the GPU driver. But it also specifies, that the boot argument can be replaced with Device Properties, and this is much better because it allows to fine-tune every setting for every GPU separately. For instance, my Gigabyte's Radeon HD 7770 1GB requires only CAIL_DisableGfxCGPowerGating enabled, an equivalent of radpg=1 to function properly. I think keeping boot-args clean, sticking as close as we can to the original kext, and not disabling any power saving features without a necessity are all valuable things.

Therefore, I'd change mentioned sections from simple "enable radpg=15 and be happy" to "start with \, and then try to remove as much as you can".

End

Thanks for your time spend on reading this. I hope my proposals will be considered useful for the project. I've put all of them in one issue because I didn't want to spam on bugtracker, and after all I want to implement this by myself.

Please comment with any suggestions, and if feedback from you will be positive, I will start working on it asap :)

FishyFlower commented 2 years ago

Oh, I didn't include any sources here other than my words, but they are pretty easy to find (even #246 on your bug tracker can serve as a confirmation of issues with IQSV for instance), so I will include them with a eventual pull request if you want to have them.

Moowriece commented 1 year ago

Hello, I have a MacBookPro13.3 (15" MacBookPro 2016 with 2,9 GHz Intel Core i7 and AMD Radeon Pro 460 4GB). The last supported macOS on this laptop is macOS Monterey. Within Monterey there is full hardware support for H264 decoding/encoding and H265 decoding/encoding (according to VideoProc Converter). However, when doing a clean install of macOS Ventura 13.1 with OpenCore Legacy Patcher 0.5.3, the H265 (HEVC) decoding doesn't work (when playing a video on Quicktime, VLC or any other player). Any app that wants to open HEVC video files hangs/crashes (like Photos trying to import or open videos shot on iPhones). However H264 decoding works. According to VideoProc Converter there is still HW support for decoding and encoding for H264 and H265. So there must be some bug preventing H265 decoding support. Anyone knows more about this? Will there be an update that will re-enable this important feature?

replete commented 8 months ago

I wasted two days trying to get 10th gen desktop iGPU working on a 500 series motherboard because this information wasn't in the guides and everyone says 'follow the guides'. Please add this important detail, otherwise thanks for the work on these guides. Sounds like more maintainers are needed?