diff --git a/Source/Core/VideoBackends/Metal/MTLUtil.mm b/Source/Core/VideoBackends/Metal/MTLUtil.mm index ad52653ee3..719a38dca2 100644 --- a/Source/Core/VideoBackends/Metal/MTLUtil.mm +++ b/Source/Core/VideoBackends/Metal/MTLUtil.mm @@ -253,9 +253,7 @@ void Metal::Util::PopulateBackendInfoFeatures(const VideoConfig& config, Backend vendor = DriverDetails::VENDOR_INTEL; else if (name.find("Apple") != std::string::npos) vendor = DriverDetails::VENDOR_APPLE; - const NSOperatingSystemVersion cocoa_ver = [[NSProcessInfo processInfo] operatingSystemVersion]; - double version = cocoa_ver.majorVersion * 100 + cocoa_ver.minorVersion; - DriverDetails::Init(DriverDetails::API_METAL, vendor, DriverDetails::DRIVER_APPLE, version, + DriverDetails::Init(DriverDetails::API_METAL, vendor, DriverDetails::DRIVER_APPLE, 0.0, DriverDetails::Family::UNKNOWN, std::move(name)); #if TARGET_OS_OSX diff --git a/Source/Core/VideoCommon/DriverDetails.cpp b/Source/Core/VideoCommon/DriverDetails.cpp index 705bd66bab..099afeab73 100644 --- a/Source/Core/VideoCommon/DriverDetails.cpp +++ b/Source/Core/VideoCommon/DriverDetails.cpp @@ -7,6 +7,10 @@ #include "Core/DolphinAnalytics.h" +#ifdef __APPLE__ +#include "Common/CommonFuncs.h" +#endif + namespace DriverDetails { struct BugInfo @@ -198,6 +202,16 @@ void Init(API api, Vendor vendor, Driver driver, const double version, const Fam } } +#ifdef __APPLE__ + // The Metal graphics drivers are part of macOS, so we use the current macOS version as the + // driver version for Metal and Vulkan on Metal. + if (api == API_METAL || (api == API_VULKAN && driver == DRIVER_PORTABILITY)) + { + Common::MacOSVersion mac_version = Common::GetMacOSVersion(); + m_version = mac_version.major * 100 + mac_version.minor; + } +#endif + // Clear bug list, as the API may have changed m_bugs.clear();