让着色器在GPU上运行

时间:2010-11-18 20:40:51

标签: opengl gpu glsl

我有一个使用着色器的OpenGL程序(OpenGL版本3.3,GLSL版本1.5)。我听说着色器实际上是在CPU上运行,除非你明确告诉它在GPU上运行。 (当然,我使用着色器的全部原因是通过在GPU而不是CPU中进行计算来加速渲染,所以这不是我想要的行为。)这是真的吗?如果是这样,你如何让着色器在GPU上运行?

2 个答案:

答案 0 :(得分:10)

我不确定你在哪里听到这个消息,但假设你有一半来自图形供应商的不错的驱动程序,那么你的着色器将在GPU上运行而不需要做任何事情,除了加载和使用它们。

答案 1 :(得分:2)

我很确定驱动程序总是试图在GPU上运行每个着色器而不是在CPU上运行。但并非所有现代视频卡都支持着色器操作的完整功能集。例如,我知道OpenGL 4.0扩展GL_ARB_gpu_shader_fp64可以部分支持。因此驱动程序必须在CPU上模拟软件模式下的某些操作。关于扩展程序,您可以使用GL_EXTENSIONS参数调用glGetString来检查您的卡片。