Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 获取总视频内存大小_C_Opengl_Nvidia - Fatal编程技术网

C 获取总视频内存大小

C 获取总视频内存大小,c,opengl,nvidia,C,Opengl,Nvidia,在互联网上,我发现有用于AMD和NVIDIA的OpenGL扩展来获取图形卡的内存信息。现在我试图得到总的视频内存大小,但结果总是得到0。这是我的代码的当前版本: #include <GL/gl.h> #include <stdio.h> int main() { GLint total_memory; total_memory = 0; glGetIntegerv(0x9048, &total_memory); printf("

在互联网上,我发现有用于AMD和NVIDIA的OpenGL扩展来获取图形卡的内存信息。现在我试图得到总的视频内存大小,但结果总是得到0。这是我的代码的当前版本:

#include <GL/gl.h>
#include <stdio.h>

int main()
{
    GLint total_memory;

    total_memory = 0;
    glGetIntegerv(0x9048, &total_memory);
    printf("%i\n", total_memory);
    return 0;
}
#包括
#包括
int main()
{
闪烁总记忆;
总内存=0;
glGetIntegerv(0x9048和总内存);
printf(“%i\n”,总内存);
返回0;
}

<操作系统是Linux,英伟达驱动程序版本是313.30。

< P>你应该总是检查是否有一个调用失败了。
在您的情况下,我认为在调用OpenGL函数之前需要一个有效的链接。

在这篇文章中,您可以看到作者提供的3个链接,帮助您获得所需的内容

这似乎在很大程度上取决于您使用的图形卡类型和版本


您可能想考虑使用库GLW来处理扩展,使用像0x9048这样的常数是不可读的!您需要获取GL_GPU_MEM_INFO_TOTAL_AVAILABLE_MEM_NVX和GL_VBO_FREE_MEMORY_ATI的值。有趣的是,glGetError()即使没有上下文也返回0。我的目标只是想知道这些特定于供应商的OpenGL扩展是否在当前的Linux系统上正常工作。我现在假设这是真的。如果我有更多的时间,我可能会对此进行更详细的阅读。NVidia扩展工作正常,我在Linux和Windows上都使用它们。我有额外的扩展GPU卡,然后是GLGEINTEGERV(0x9048,&total_内存);仅返回专用内存中的扩展GPU详细信息等,但不返回内置和扩展的组合,为什么?