Hey everybody, I found a pretty severe memory leak on Win11 with a Quadro P4000 when using VBOs. I tried this on other systems and I can’t reproduce it there (tried some AMDs, RTX4xxx and my Thinkpad P15 Gen2 mobile RTX A3000).
Attached is a minimal example that un/binds VBOs and dis/enables VertexAttribArrays on a thread.
This is the part that produces the leak
GLuint vbo = 0;
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
const float verts[] = {-1.f, -1.f, 1.f, -1.f, -1.f, 1.f,
-1.f, 1.f, 1.f, -1.f, 1.f, 1.f};
glBufferData(GL_ARRAY_BUFFER, sizeof(verts), verts, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, (const void *)0);
glDrawArrays(GL_TRIANGLES, 0, 6);
glDisableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glDeleteBuffers(1, &vbo);
Using a wgl debug context prevents the leak on the Quadro machine:
const int attribs[] = { WGL_CONTEXT_MAJOR_VERSION_ARB,
1,
WGL_CONTEXT_MINOR_VERSION_ARB,
0,
WGL_CONTEXT_FLAGS_ARB,
WGL_CONTEXT_DEBUG_BIT_ARB,
0 };
ctx = wglCreateContextAttribsARB(hdc, nullptr, attribs);
Deleaker points to L133 in the main.cpp glDrawArrays(…); calling nvoglv64.dll DrvPresentBuffers that has a final call to KernelBase.dll LocalAlloc
This is a screenshot from the attached binary that reproduces the leak
This is the same machine with debug context
QuadroMemleak.zip (7.7 MB)
NVIDIA System Information 10-28-2025 14-56-45.txt (3.4 KB)
Systeminfo.txt (8.4 KB)
Edit:
One of our users with a Quadro RTX A5000 reported that downgrading to driver v553.62 solved the leak on his side. We only have a limited access to Quadro cards atm - can’t confirm myself.


