【发布时间】:2017-09-02 05:16:12
【问题描述】:
我正在尝试使用原生 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。可能是什么问题?可以给个提示吗?
【问题讨论】:
-
@Vallentin,我见过那个,不一样。 glGetString 对我来说工作得很好,但上面的代码不能正常工作。
-
您能否更具体地说明“不工作”。请注意,
GL_NVX_gpu_memory_info是 Nvidia 扩展。因此,如果您的显卡不是 Nvidia,那么支持此扩展的可能性很小。 -
@Vallentin, "not working" - 不初始化 glGetIntegerv 函数内的变量 total_mem_kb。 Nvidia 驱动程序在一小时前更新,我只是不知道为什么这“不起作用”
标签: c++ windows qt opengl qopenglfunctions