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);
|
Util::PopulateBackendInfoFeatures(&g_Config, adapter);
|
||||||
|
|
||||||
#if TARGET_OS_OSX
|
#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];
|
[adapter setShouldMaximizeConcurrentCompilation:YES];
|
||||||
|
}
|
||||||
|
|
||||||
|
#pragma clang diagnostic pop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
UpdateActiveConfig();
|
UpdateActiveConfig();
|
||||||
|
|
Loading…
Reference in New Issue