Replies: 1 comment 6 replies
-
The OpenGL driver allocates larger chunks of memory and then sub-allocates from there for texture memory. I guess that this is where you hit a threshold and it decides to allocate another chunk. I imagine if you keep increasing the size after that, the memory usage will stay constant for a while before it makes another jump. |
Beta Was this translation helpful? Give feedback.
6 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
In the driver version after nvidia 410, the Qt test program, when the Qimage size is 816x600, the GPU memory usage is 13M, but when the Qimage size is 817x600, the GPU memory usage continues to increase to 431M:
Qt source as follows:
#include
#include
#include
#include
#include
class Widget : public QOpenGLWidget
{
public:
Widget(int width, int height) : QOpenGLWidget(0), image(width, height, QImage::Format_RGB32) {}
//Widget(int width, int height) : QOpenGLWidget(0), image(width, height, QImage::Format_RGB16) {}
protected:
void paintGL() override
{
glFinish();
QPainter p(this);
static unsigned int index = 100;
image.fill(index++);
p.drawImage(QPoint(0, 0), image);
update();
}
private:
QImage image;
};
int main(int argc, char** argv)
{
QApplication app(argc, argv);
}
Open the video card driver debug switch, 817x600 will have more ioctl, as follows:
[6714.002807] NVRM: ioctl(0x2a, 0x9870760, 0x20)
Some of the ioctl additions are as follows:
[6714.004671] NVRM: ioctl(0x4a, 0x9872690, 0xb8)
[6714.004870] NVRM: ioctl(0x4a, 0x9872520, 0xb8)
[6714.004921] NVRM: ioctl(0x57, 0x9872400, 0x38)
+++++++++++++++++
[6714.005669] NVRM: ioctl(0x52, 0x9872a20, 0x10)
Beta Was this translation helpful? Give feedback.
All reactions