mirror of
https://gitlab.com/kelteseth/ScreenPlay.git
synced 2024-11-06 19:12:30 +01:00
Add GPU Sysinfo
Update vcpkg to latest master
This commit is contained in:
parent
0db6c76dd0
commit
74aff2cea0
@ -4,6 +4,7 @@ set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(infoware CONFIG REQUIRED)
|
||||
find_package(
|
||||
Qt5
|
||||
COMPONENTS Quick Core
|
||||
@ -15,7 +16,8 @@ set(src
|
||||
cpu.cpp
|
||||
ram.cpp
|
||||
storage.cpp
|
||||
uptime.cpp)
|
||||
uptime.cpp
|
||||
gpu.cpp)
|
||||
|
||||
set(headers
|
||||
screenplaysysinfo_plugin.h
|
||||
@ -24,11 +26,12 @@ set(headers
|
||||
ram.h
|
||||
mathhelper.h
|
||||
storage.h
|
||||
uptime.h)
|
||||
uptime.h
|
||||
gpu.h)
|
||||
|
||||
add_library(${PROJECT_NAME} SHARED ${src} ${headers})
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Core Qt5::Quick infoware)
|
||||
|
||||
# QML module deployment
|
||||
set(URI "ScreenPlay/Sysinfo")
|
||||
|
50
ScreenPlaySysInfo/gpu.cpp
Normal file
50
ScreenPlaySysInfo/gpu.cpp
Normal file
@ -0,0 +1,50 @@
|
||||
#include "gpu.h"
|
||||
|
||||
#include "infoware/gpu.hpp"
|
||||
#include "infoware/version.hpp"
|
||||
#include <QDebug>
|
||||
|
||||
static const char* vendor_name(iware::gpu::vendor_t vendor) noexcept;
|
||||
|
||||
GPU::GPU(QObject* parent)
|
||||
: QObject(parent)
|
||||
{
|
||||
const auto device_properties = iware::gpu::device_properties();
|
||||
if (device_properties.empty()) {
|
||||
qWarning() << "No detection methods enabled";
|
||||
return;
|
||||
}
|
||||
|
||||
for (auto i = 0u; i < device_properties.size(); ++i) {
|
||||
const auto& properties_of_device = device_properties[i];
|
||||
|
||||
// Skip Windows default
|
||||
if (QString::fromStdString(properties_of_device.name) == "Basic Render Driver")
|
||||
continue;
|
||||
|
||||
setVendor(vendor_name(properties_of_device.vendor));
|
||||
setName(QString::fromStdString(properties_of_device.name));
|
||||
setRamSize(properties_of_device.memory_size);
|
||||
setCacheSize(properties_of_device.cache_size);
|
||||
setMaxFrequency(properties_of_device.max_frequency);
|
||||
}
|
||||
}
|
||||
static const char* vendor_name(iware::gpu::vendor_t vendor) noexcept
|
||||
{
|
||||
switch (vendor) {
|
||||
case iware::gpu::vendor_t::intel:
|
||||
return "Intel";
|
||||
case iware::gpu::vendor_t::amd:
|
||||
return "AMD";
|
||||
case iware::gpu::vendor_t::nvidia:
|
||||
return "NVidia";
|
||||
case iware::gpu::vendor_t::microsoft:
|
||||
return "Microsoft";
|
||||
case iware::gpu::vendor_t::qualcomm:
|
||||
return "Qualcomm";
|
||||
case iware::gpu::vendor_t::apple:
|
||||
return "Apple";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
73
ScreenPlaySysInfo/gpu.h
Normal file
73
ScreenPlaySysInfo/gpu.h
Normal file
@ -0,0 +1,73 @@
|
||||
#pragma once
|
||||
#include <QObject>
|
||||
|
||||
class GPU : public QObject {
|
||||
Q_OBJECT
|
||||
Q_PROPERTY(QString vendor READ vendor WRITE setVendor NOTIFY vendorChanged)
|
||||
Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
|
||||
Q_PROPERTY(int ramSize READ ramSize WRITE setRamSize NOTIFY ramSizeChanged)
|
||||
Q_PROPERTY(int cacheSize READ cacheSize WRITE setCacheSize NOTIFY cacheSizeChanged)
|
||||
Q_PROPERTY(int maxFrequency READ maxFrequency WRITE setMaxFrequency NOTIFY maxFrequencyChanged)
|
||||
|
||||
public:
|
||||
explicit GPU(QObject* parent = nullptr);
|
||||
const QString& vendor() const { return m_vendor; }
|
||||
const QString& name() const { return m_name; }
|
||||
int ramSize() const { return m_ramSize; }
|
||||
int cacheSize() const { return m_cacheSize; }
|
||||
int maxFrequency() const { return m_maxFrequency; }
|
||||
|
||||
public slots:
|
||||
void setVendor(const QString& vendor)
|
||||
{
|
||||
if (m_vendor == vendor)
|
||||
return;
|
||||
m_vendor = vendor;
|
||||
emit vendorChanged(m_vendor);
|
||||
}
|
||||
void setName(const QString& name)
|
||||
{
|
||||
if (m_name == name)
|
||||
return;
|
||||
m_name = name;
|
||||
emit nameChanged(m_name);
|
||||
}
|
||||
|
||||
void setRamSize(int ramSize)
|
||||
{
|
||||
if (m_ramSize == ramSize)
|
||||
return;
|
||||
m_ramSize = ramSize;
|
||||
emit ramSizeChanged(m_ramSize);
|
||||
}
|
||||
|
||||
void setCacheSize(int cacheSize)
|
||||
{
|
||||
if (m_cacheSize == cacheSize)
|
||||
return;
|
||||
m_cacheSize = cacheSize;
|
||||
emit cacheSizeChanged(m_cacheSize);
|
||||
}
|
||||
|
||||
void setMaxFrequency(int maxFrequency)
|
||||
{
|
||||
if (m_maxFrequency == maxFrequency)
|
||||
return;
|
||||
m_maxFrequency = maxFrequency;
|
||||
emit maxFrequencyChanged(m_maxFrequency);
|
||||
}
|
||||
|
||||
signals:
|
||||
void vendorChanged(const QString& vendor);
|
||||
void nameChanged(const QString& name);
|
||||
void ramSizeChanged(int ramSize);
|
||||
void cacheSizeChanged(int cacheSize);
|
||||
void maxFrequencyChanged(int maxFrequency);
|
||||
|
||||
private:
|
||||
QString m_vendor;
|
||||
QString m_name;
|
||||
int m_ramSize = 0;
|
||||
int m_cacheSize = 0;
|
||||
int m_maxFrequency = 0;
|
||||
};
|
@ -4,6 +4,7 @@ SysInfo::SysInfo(QQuickItem* parent)
|
||||
: QQuickItem(parent)
|
||||
, m_ram(std::make_unique<RAM>())
|
||||
, m_cpu(std::make_unique<CPU>())
|
||||
, m_gpu(std::make_unique<GPU>())
|
||||
, m_storage(std::make_unique<Storage>())
|
||||
, m_uptime(std::make_unique<Uptime>())
|
||||
{
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include <memory>
|
||||
|
||||
#include "cpu.h"
|
||||
#include "gpu.h"
|
||||
#include "ram.h"
|
||||
#include "storage.h"
|
||||
#include "uptime.h"
|
||||
@ -45,6 +46,7 @@
|
||||
class SysInfo : public QQuickItem {
|
||||
Q_OBJECT
|
||||
|
||||
Q_PROPERTY(GPU* gpu READ gpu NOTIFY gpuChanged)
|
||||
Q_PROPERTY(RAM* ram READ ram NOTIFY ramChanged)
|
||||
Q_PROPERTY(CPU* cpu READ cpu NOTIFY cpuChanged)
|
||||
Q_PROPERTY(Storage* storage READ storage NOTIFY storageChanged)
|
||||
@ -57,16 +59,19 @@ public:
|
||||
CPU* cpu() const { return m_cpu.get(); }
|
||||
Storage* storage() const { return m_storage.get(); }
|
||||
Uptime* uptime() const { return m_uptime.get(); }
|
||||
GPU* gpu() const { return m_gpu.get(); }
|
||||
|
||||
signals:
|
||||
void ramChanged(RAM* ram);
|
||||
void cpuChanged(CPU* cpu);
|
||||
void storageChanged(Storage* storage);
|
||||
void uptimeChanged(Uptime* uptime);
|
||||
void gpuChanged(GPU*);
|
||||
|
||||
private:
|
||||
std::unique_ptr<RAM> m_ram;
|
||||
std::unique_ptr<CPU> m_cpu;
|
||||
std::unique_ptr<Storage> m_storage;
|
||||
std::unique_ptr<Uptime> m_uptime;
|
||||
std::unique_ptr<GPU> m_gpu;
|
||||
};
|
||||
|
@ -5,16 +5,16 @@ cd ..
|
||||
git clone https://github.com/microsoft/vcpkg.git ScreenPlay-vcpkg
|
||||
cd ScreenPlay-vcpkg
|
||||
git pull
|
||||
# master 27.03.2021 - 9f6157a
|
||||
git checkout 9f6157a
|
||||
# master 12.05.2021 - 7b1016e10ef0434fe7045d320a9ee05b63e0efe9
|
||||
git checkout 7b1016e10ef0434fe7045d320a9ee05b63e0efe9
|
||||
chmod +x bootstrap-vcpkg.sh
|
||||
./bootstrap-vcpkg.sh
|
||||
chmod +x vcpkg
|
||||
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
./vcpkg install openssl-unix sentry-native doctest benchmark --triplet x64-osx --recurse
|
||||
./vcpkg install openssl-unix sentry-native doctest benchmark infoware[opencl] --triplet x64-osx --recurse
|
||||
else
|
||||
./vcpkg install openssl-unix sentry-native doctest benchmark --triplet x64-linux --recurse
|
||||
./vcpkg install openssl-unix sentry-native doctest benchmark infoware[opencl] --triplet x64-linux --recurse
|
||||
fi
|
||||
|
||||
./vcpkg upgrade --no-dry-run
|
@ -5,12 +5,12 @@ cd ..
|
||||
git clone https://github.com/microsoft/vcpkg.git ScreenPlay-vcpkg
|
||||
cd ScreenPlay-vcpkg
|
||||
git pull
|
||||
rem master 27.03.2021 - 9f6157a
|
||||
git checkout 9f6157a
|
||||
rem master 12.05.2021 - 7b1016e10ef0434fe7045d320a9ee05b63e0efe9
|
||||
git checkout 7b1016e10ef0434fe7045d320a9ee05b63e0efe9
|
||||
call bootstrap-vcpkg.bat
|
||||
|
||||
rem Install vcpkg dependencies
|
||||
vcpkg.exe install openssl sentry-native doctest benchmark --triplet x64-windows --recurse
|
||||
vcpkg.exe install openssl sentry-native doctest benchmark infoware[d3d] --triplet x64-windows --recurse
|
||||
vcpkg.exe upgrade --no-dry-run
|
||||
|
||||
cd ..
|
||||
|
Loading…
Reference in New Issue
Block a user