Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

It's just me, or Qt3D applications have awful performance?



  • I am developing project, which is my first attempt to Qt3D modules. And I am very, very disappointed. GPU performance is far from being acceptable.

    Even real simple example projects are tremendous heavy. For example, "pbr-materials', build with Qt 13.0 MSVC x64, on fullscreen, takes up to 99% of my GTX 550 Ti. It's more than Crysis 3 on medium settings !!! Try it yourself.

    There is really no way to speed up this applications? Just a little bit...


  • Lifetime Qt Champion

    Hi
    Are other examples heavy in same way ?
    Just tried the sample on my 7950 and it uses around 25-34% (in fullscreen)
    I wonder if its related to PBR.



  • Hi.

    No, there is no big impact related to the type of used material, texture resolution or entities count. Although, performance is highly dependent on the window size.

    Below is minimal example, taking about 5% in default window size, 25-30% when fullscreened, and >90% when stretched across both of my displays (1680x1050 each).

    main.cpp

    #include <Qt3DQuickExtras/qt3dquickwindow.h>
    #include <QGuiApplication>
    
    int main(int ac, char **av)
    {
        QGuiApplication app(ac, av);
        Qt3DExtras::Quick::Qt3DQuickWindow view;
        view.setSource(QUrl("qrc:/main.qml"));
        view.show();
    
        return app.exec();
    }
    
    

    main.qml

    import QtQuick.Scene3D 2.0
    import Qt3D.Core 2.0
    import Qt3D.Render 2.0
    import Qt3D.Extras 2.0
    
    Entity {
        id: rootNode
        components: [
            RenderSettings {
                activeFrameGraph: ForwardRenderer {
                    clearColor: "blue"
                    camera: camera
                }
            }
        ]
        Entity {
            id: sceneRoot
            Camera {
                id: camera
                projectionType: CameraLens.PerspectiveProjection
                fieldOfView: 45
                aspectRatio: 16/9
                nearPlane : 0.1
                farPlane : 200.0
                position: Qt.vector3d( 0.0, 0.0, -40.0 )
                upVector: Qt.vector3d( 0.0, 1.0, 0.0 )
                viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 )
            }
            OrbitCameraController {
                camera: camera
                linearSpeed: 200
                lookSpeed: 350
            }
        }
    }
    
    

    Maybe something with viewport resolution/scaling?


  • Qt Champions 2017

    @lockheed said in It's just me, or Qt3D applications have awful performance?:

    aking about 5% in default window size, 25-30% when fullscreened, and >90% when stretched across both of my displays

    Taking so much percent of what? CPU time? GPU time?



  • I am talking about GPU usage, measured simply in Windows10 Task Manager. CPU is fine, just as in 'classic' QtQuick applications. I thought, it was because of no framerate limitation, but the fps ranges stable between 35-45 all the time, using fps counting method from 'Planets-qml' example.


  • Lifetime Qt Champion

    Hi
    What % do you get with
    https://doc.qt.io/qt-5/qtgui-openglwindow-example.html

    its as barebone as it gets.


  • Qt Champions 2017

    In addition to @mrjj, what does the nvidia driver utility say?


Log in to reply