getting gpu name via profiler parsing

This commit is contained in:
amerhifi 2019-05-16 15:47:03 -07:00
parent d924560af0
commit c1c2efc71d

View file

@ -22,7 +22,10 @@
#elif defined(Q_OS_MAC)
#include <OpenGL/OpenGL.h>
#include<sys/sysctl.h>
#include <sstream>
#include <QString>
#include <qstringlist.h>
#endif
#include <QtCore/QtGlobal>
@ -57,6 +60,26 @@ GPUIdent* GPUIdent::ensureQuery(const QString& vendor, const QString& renderer)
}
}
}
//get gpu name
FILE* stream = popen("system_profiler SPDisplaysDataType | grep Chipset", "r");
std::ostringstream hostStream;
while (!feof(stream) && !ferror(stream)) {
char buf[128];
int bytesRead = fread(buf, 1, 128, stream);
hostStream.write(buf, bytesRead);
}
QString result = QString::fromStdString(hostStream.str());
QStringList parts = result.split('\n');
std::string name;
for (int i = 0; i < parts.size(); ++i) {
if (parts[i].toLower().contains("radeon") || parts[i].toLower().contains("nvidia")) {
_name=parts[i];
}
}
_dedicatedMemoryMB = bestVRAM;
CGLDestroyRendererInfo(rendererInfo);