OpenGL:VBO 和损坏的 GC
Posted
技术标签:
【中文标题】OpenGL:VBO 和损坏的 GC【英文标题】:OpenGL: VBO and a broken GC 【发布时间】:2014-01-09 00:31:38 【问题描述】:我最近尝试使用VBO
。我只是从site复制粘贴代码
它编译得很好,看起来运行良好。但是,我在taskmanager
上注意到该程序以 50% 的 CPU 使用率运行。它只是一个简单的三角形,没有别的。我期望它为 0%,因为我在 glfw3
创建的所有其他程序在空闲时都以 0% 运行。我知道 glfw3
中的 V-SYNC 默认设置为 true,但我仍然添加了这行代码以确保 glfwSetInterval(GL_TRUE); //sets V-SYNC on
但仍然没有任何变化。
搞砸了test_vs.glsl
之后(我认为这与问题无关):
我更改的代码:
来自
#version 400
in vec3 vp;
void main ()
gl_Position = vec4 (vp, 1.0);
到
#version 400
in vec2 vp;
void main ()
gl_Position = vec4 (vp, 0, 1.0);
并将.cpp
代码中的顶点属性改为二维。
再次运行几次Hello Triangle
程序,计算机停止并挂了一点--->然后CRAASSH。显卡坏了! (字面上哎哟)。计算机自行关闭,我尝试再次重新启动它,我得到一个充满随机线条的屏幕,并且无法在桌面上继续。
我没有太多关于显卡的信息,但glew
说GeForce 7300 GT/PCI/SSE2/3DNOW!
并在Windows XP
上运行,OpenGL v2.1
支持根据glew
。
我添加的一些扩展:
glfwWindowHint(GLFW_SAMPLES, 4);
glfwWindowHint(GLFW_OPENGL_CORE_PROFILE, 2);
glewExperimental = GL_TRUE;
我将前缀ARB
添加到与vbo
相关的任何函数中
我怀疑这是由于缺少 OpenGL extensions support check
造成的(这只是一个假设,它最有可能是我能想到的原因)。但是,这真的是问题吗?是简单的程序还是其他?如果是这样,他们为什么要让这种情况发生?
【问题讨论】:
嗯,这里的问题似乎更多的是技术问题而不是编程问题。听起来像是驱动程序错误之类的,我怀疑一个简单的 OpenGL 程序可能会自行使您的计算机崩溃。 @mebob 我不认为这适合superuser
,因为它与编程非常相关。
建议将此迁移到superuser
或其他?
你在检查GLGeterror
吗?
@zero298 不,我没有。
【参考方案1】:
我只想提一下GeForce 7300 不支持OpenGL-4;哎呀,它甚至没有涵盖完整的 OpenGL-3 支持。无论发生什么,GPU 很可能都不会参与其中。因此,即使在您的 GPU 上,编写 #version 400
着色器也无法使用。
【讨论】:
以上是关于OpenGL:VBO 和损坏的 GC的主要内容,如果未能解决你的问题,请参考以下文章