From 4b703d7d0144886cc8ccda7a3a3922d4c25d01f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?= Date: Tue, 20 Jun 2023 15:28:39 +0300 Subject: Add screen refreshrate as recordable parameter for testrun Change-Id: I68db0b1720f21fec9492e9417258101024baf7ff Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/main.cpp | 10 +++++++--- src/options.h | 1 + src/resultrecorder.cpp | 5 +++++ src/resultrecorder.h | 1 + tools/compareresults/main.cpp | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 5dda24c..7b43df0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -220,11 +220,15 @@ QStringList processCommandLineArguments(const QCoreApplication &app) Options::instance.windowSize = size; } + if (parser.isSet(fpsOverrideOption)) { + Options::instance.fpsOverride = parser.value(fpsOverrideOption).toFloat(); + } else { + if (qGuiApp->primaryScreen() != nullptr) + Options::instance.targetFps = qGuiApp->primaryScreen()->refreshRate(); + } ResultRecorder::startResults(Options::instance.id); ResultRecorder::recordWindowSize(Options::instance.windowSize); - - if (parser.isSet(fpsOverrideOption)) - Options::instance.fpsOverride = parser.value(fpsOverrideOption).toFloat(); + ResultRecorder::recordScreenRefreshRate(Options::instance.targetFps); if (Options::instance.bmTemplate == QStringLiteral("sustained-fps")) Options::instance.bmTemplate = QStringLiteral("qrc:/Shell_SustainedFpsWithCount.qml"); diff --git a/src/options.h b/src/options.h index cb396ac..66bb85b 100644 --- a/src/options.h +++ b/src/options.h @@ -50,6 +50,7 @@ struct Options , fpsTolerance(0.05) , fpsInterval(1000) , fpsOverride(0) + , targetFps(60.0) , windowSize(800, 600) , hardwareMultiplier(1.0) , destroyViewEachRun(false) diff --git a/src/resultrecorder.cpp b/src/resultrecorder.cpp index 1d8a883..12db2d4 100644 --- a/src/resultrecorder.cpp +++ b/src/resultrecorder.cpp @@ -167,6 +167,11 @@ void ResultRecorder::recordWindowSize(const QSize &windowSize) m_results["windowSize"] = QString::number(windowSize.width()) + "x" + QString::number(windowSize.height()); } +void ResultRecorder::recordScreenRefreshRate(const qreal refreshRate) +{ + m_results["refreshRate"] = refreshRate; +} + void ResultRecorder::recordOperationsPerFrame(int ops) { Q_ASSERT(Options::instance.isSubProcess); diff --git a/src/resultrecorder.h b/src/resultrecorder.h index 0007ee9..77264c8 100644 --- a/src/resultrecorder.h +++ b/src/resultrecorder.h @@ -39,6 +39,7 @@ class ResultRecorder public: static void startResults(const QString &id); static void recordWindowSize(const QSize &windowSize); + static void recordScreenRefreshRate(const qreal refreshRate); static void recordOperationsPerFrame(int ops); static void recordOperationsPerFrameAverage(qreal ops, int samples, qreal stddev, qreal median); static void mergeResults(const QJsonObject &o); diff --git a/tools/compareresults/main.cpp b/tools/compareresults/main.cpp index 94d25c0..e26b67a 100644 --- a/tools/compareresults/main.cpp +++ b/tools/compareresults/main.cpp @@ -125,7 +125,7 @@ int main(int argc, char **argv) return EXIT_FAILURE; } - const QSet unrelatedKeys{"command-line", "id", "opengl", "os", "qt", "windowSize"}; + const QSet unrelatedKeys{"command-line", "id", "opengl", "os", "qt", "windowSize", "refreshRate"}; auto filter = [&unrelatedKeys](const QStringList &list) -> QStringList { return QSet(list.cbegin(), list.cend()).subtract(unrelatedKeys).values(); -- cgit v1.2.3