[Interest] Textures memory not being released

Roger zanoni rogerzanoni at gmail.com
Mon Aug 21 12:23:58 CEST 2017


Hello, I created a thread on Qt forums[1] asking for help and was told to
seek help on the mailing lists.

I work on an application that consists in a series of small minigames and
has a QQuickView that loads a main.qml file with a Loader element. We use
this Loader to swich between the minigames and they have lots of images.
The problem is that the memory used to render the image elements isn't
being released. I made a small sample qml aplication that keeps switching
the current component in a loader to simulate our application behaviour:

import QtQuick 2.7

Item {
    id: root

    width: 1920
    height: 1080

    Component {
        id: image1Component

        Image {
            source: "00-piscina.png"
            anchors.fill: parent
        }
    }

    Component {
        id: image2Component

        Image {
            source: "01-canyon.png"
            anchors.fill: parent
        }
    }

    Loader {
        id: loader
        sourceComponent: image1Component
        anchors.fill: parent
    }

    Timer {
        repeat: true
        interval: 100
        running: true
        onTriggered: {
            loader.sourceComponent = loader.sourceComponent ==
image1Component ? image2Component : image1Component;
        }
    }
}

When I run this code, it keeps allocating memory until my laptop freezes. I
did some basic testing using valgrind and massif, and the result shows (I
posted some images on the forum thread, I'm not sure if I'm allowed to post
images to this list), if I'm not misinterpreting it, that the
scenegraph/texture classes are the ones using the memory. Is this a known
issue?

[1]: https://forum.qt.io/topic/82502/qt-qml-image-memory-consumption
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20170821/6d689c94/attachment.html>


More information about the Interest mailing list