我试图从我的视频卡使用原生QT的OpenGL获得GPU内存的总量,我尝试了数百种方法,但没有一个能够工作。 这是我的时刻:如何使用Qt的原生OpenGL获取我的GPU总内存?
QOpenGLContext context;
context.create();
QOffscreenSurface surface;
surface.setFormat(context.format());
surface.create();
QOpenGLFunctions func;
context.makeCurrent(&surface);
func.initializeOpenGLFunctions();
GLint total_mem_kb = 0;
func.glGetIntegerv(GL_GPU_MEM_INFO_TOTAL_AVAILABLE_MEM_NVX,&total_mem_kb);
qDebug()<<total_mem_kb;
的问题是变量total_mem_kb始终为0,它没有得到glGetIntegerv内的值。通过运行这个代码,我得到0.可能是什么问题?你能给我一个提示吗?
[Qt的5.5和OpenGL:检索设备信息]的可能的复制(http://stackoverflow.com/questions/32386770/qt-5-5-and-opengl -retrieving-device-info) – Vallentin
@Vallentin,我看到了一个,它不一样。 glGetString对我来说工作正常,但上面的代码不能按照它的方式工作。 –
你可以更具体的“不工作”。请注意'GL_NVX_gpu_memory_info'是一个Nvidia扩展。所以如果你的显卡不是Nvidia,那么支持这款扩展的机会很渺茫。 – Vallentin