Merge pull request #12311 from kemenaran/fix-metal-adapter-unknown-selector
Metal: fix crash by enabling concurrent compilation only if available
This commit is contained in:
commit
afb4be1a90
|
@ -96,8 +96,23 @@ bool Metal::VideoBackend::Initialize(const WindowSystemInfo& wsi)
|
|||
Util::PopulateBackendInfoFeatures(&g_Config, adapter);
|
||||
|
||||
#if TARGET_OS_OSX
|
||||
if (@available(macOS 13.3, *))
|
||||
// This should be available on all macOS 13.3+ systems – but when using OCLP drivers, some devices
|
||||
// fail with "Unrecognized selector -[MTLIGAccelDevice setShouldMaximizeConcurrentCompilation:]"
|
||||
//
|
||||
// This concerns Intel Ivy Bridge, Haswell and Nvidia Kepler on macOS 13.3 or newer.
|
||||
// (See
|
||||
// https://github.com/dortania/OpenCore-Legacy-Patcher/blob/34676702f494a2a789c514cc76dba19b8b7206b1/docs/PATCHEXPLAIN.md?plain=1#L354C1-L354C83)
|
||||
//
|
||||
// Perform the feature detection dynamically instead.
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wunguarded-availability"
|
||||
|
||||
if ([adapter respondsToSelector:@selector(setShouldMaximizeConcurrentCompilation:)])
|
||||
{
|
||||
[adapter setShouldMaximizeConcurrentCompilation:YES];
|
||||
}
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
|
||||
UpdateActiveConfig();
|
||||
|
|
Loading…
Reference in New Issue