Poor rendering of QML PathView component with OpenGL paint engine



  • Hi! I recently tried to use a simple test code using the QML component PathView on my platform, which is a Linux Embedded with Qt/E with OpenGL implementation.

    The rendering performance of QML in OpenGL was quite good for what I already tried (very little). The rendering of this PathView instead is bad (it is the most difficult to render of course). The interesting thing is that I have two other applications, one written in pure OpenGL in a QGLWidget and one written using C++ Qt classes in a QGraphicsView rendering with the same exact OpenGL engine showing more or less the same on the screen. Performance of pure OpenGL is quite good, Qt C++ is even better! QML PathView is instead the worst by far. I see something like tearing, image is distorted when the animation flows. Frame rate seems to be approx 60 fps. vsync should be on.

    Is this supposed to happen? Are QML components supposed to be this inefficient? From DevDays 2010 I understood QML elements were implemented in C++: I wouldn't expect PathView to render that worst than Qt C++ API (a bad test code written in a day).

    Any more information about this is welcome! Thanks!



  • Hi,

    Can you paste the code you are using for your PathView delegate? Do you see the same issue if you use that delegate in a ListView or GridView instead?

    Regards,
    Michael



  • I used a test code taking it directly from the "documentation":http://doc.qt.nokia.com/4.7-snapshot/qml-pathview.html, only adjusting the size:

    @Component {
    id: delegate
    Column {
    id: wrapper
    Image {
    anchors.horizontalCenter: nameText.horizontalCenter
    width: 150; height: 150
    source: icon
    }
    Text {
    id: nameText
    text: name
    font.pointSize: 16
    color: wrapper.PathView.isCurrentItem ? "red" : "black"
    }
    }
    }@

    This is really quite strange.
    I used some ListView on the same platform but I should try to create something horizontal. Otherwise it is not possible to compare.



  • We stopped using OpenGL with our embedded QML application because of artifacts. Sorry I don't have more detail because we made this decision months ago but there was definitely an issue with rendering text on a pathview (text was not ever cleared from the old position as it rotated, instead it was being painted on as it spun and eventually just formed a band).



  • Here text seems good so far. Both in ListViews and in PathViews. What is horrible is images in PathView. The rest seems to be quite good so far. I would really like to know why this problem. The same rendering result (very simple test code) of the PathView manually implemented in a day in Qt C++ with the OpenGL paint engine is great instead! This is quite puzzling... That's a pity because the PathView seems very useful!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.