summaryrefslogtreecommitdiffstats
path: root/src/gui/rhi/qrhimetal.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/rhi/qrhimetal.mm')
-rw-r--r--src/gui/rhi/qrhimetal.mm30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/gui/rhi/qrhimetal.mm b/src/gui/rhi/qrhimetal.mm
index 9e0655ef06..5a1183b8ef 100644
--- a/src/gui/rhi/qrhimetal.mm
+++ b/src/gui/rhi/qrhimetal.mm
@@ -372,7 +372,30 @@ bool QRhiMetal::create(QRhi::Flags flags)
return false;
}
- qCDebug(QRHI_LOG_INFO, "Metal device: %s", qPrintable(QString::fromNSString([d->dev name])));
+ const QString deviceName = QString::fromNSString([d->dev name]);
+ qCDebug(QRHI_LOG_INFO, "Metal device: %s", qPrintable(deviceName));
+ driverInfoStruct.deviceName = deviceName.toUtf8();
+ driverInfoStruct.deviceId = [d->dev registryID];
+#ifdef Q_OS_IOS
+ driverInfoStruct.deviceType = QRhiDriverInfo::IntegratedDevice;
+#else
+ if (@available(macOS 10.15, *)) {
+ const MTLDeviceLocation deviceLocation = [d->dev location];
+ switch (deviceLocation) {
+ case MTLDeviceLocationBuiltIn:
+ driverInfoStruct.deviceType = QRhiDriverInfo::IntegratedDevice;
+ break;
+ case MTLDeviceLocationSlot:
+ driverInfoStruct.deviceType = QRhiDriverInfo::DiscreteDevice;
+ break;
+ case MTLDeviceLocationExternal:
+ driverInfoStruct.deviceType = QRhiDriverInfo::ExternalDevice;
+ break;
+ default:
+ break;
+ }
+ }
+#endif
if (importedCmdQueue)
[d->cmdQueue retain];
@@ -615,6 +638,11 @@ const QRhiNativeHandles *QRhiMetal::nativeHandles()
return &nativeHandlesStruct;
}
+QRhiDriverInfo QRhiMetal::driverInfo() const
+{
+ return driverInfoStruct;
+}
+
void QRhiMetal::sendVMemStatsToProfiler()
{
// nothing to do here