Solved QML performance on OS X 4K Scaled display is catastrophic
-
Hey all!
I have noticed that QML performance on OS X MacBook PRO with external 4K monitor is using huge amount of CPU.
Simple app (see below) doing two icon animations is using ~8-10% CPU on OS X (MacBook Pro i7 3.3GHz Intel Iris Graphics 550 1536 MB) and 0.5-1% on Windows.
With more complex apps this is really problematic. CPU usage on OS X goes to 30% for example where Windows app is under 10%.
Is this Intel GPU issue!?
QT 5.12.8
import QtQuick 2.12
import QtQuick.Window 2.12Window {
visible: true
width: 1920
height: 1080
title: qsTr("Hello World")AnimatedSprite{ anchors.left:parent.left anchors.leftMargin:25 anchors.verticalCenter:parent.verticalCenter source:"qrc:/icon-spinning-animation.png" width:128; height: 128; frameWidth: 128 frameHeight: 128 frameCount: 120 frameRate: 240 interpolate:false frameSync: true loops:1000 } AnimatedSprite{ anchors.right:parent.right anchors.rightMargin:25 anchors.verticalCenter:parent.verticalCenter source:"qrc:/icon-spinning-animation.png" width:128; height: 128; frameWidth: 128 frameHeight: 128 frameCount: 120 frameRate: 240 interpolate:false frameSync: true loops:1000 }
}************
-
@ALiEN_2 said in QML performance on OS X 4K Scaled display is catastrophic:
MacBook Pro i7 3.3GHz Intel Iris Graphics 550
Hey, yes this is an Intel Iris Graphics 550 "issue"
It's only up for 60hz 4K so you'd have to lower framerate from game standards to tv standards in your app on an old graphics card.I guess frameSync should solve this though, so not sure what you're experiencing, saw some posts about rendering issues on older mac's using Qt5 vs Qt4, where Qt4 was flawless and Qt5 performed with issues.. might be the case here too
-
Interesting find....If I compile with XCode 9.4.1 compared to 11.3.1 performance is MUCH BETTER! I mean MUCH!
I guess this explains it:
On macOS, the threaded render loop is not supported when building with XCode 10 (10.14 SDK) or later, since this opts in to layer-backed views on macOS 10.14. You can build with Xcode 9 (10.13 SDK) to opt out of layer-backing, in which case the threaded render loop is available and used by default.
https://doc.qt.io/qt-5.12/qtquick-visualcanvas-scenegraph.html