OpenGL 3.2:缓存编译着色器?

时间:2013-10-29 17:15:21

标签: c++ opengl opengl-3 qt5.1

有没有办法使用OpenGL 3.2缓存已编译的着色器程序?

我看过 ARB_get_program_binary ,但发现我的驱动程序不支持它。

我希望尽可能与旧卡兼容,因此切换到OpenGL 4不是一个好的解决方案。

我正在使用Qt5.1并使用QOpenGLFunctions_3_2_Core来访问OpenGL函数。

1 个答案:

答案 0 :(得分:3)

除了ARB_get_program_binary之外,没有OpenGL功能来查询/缓存已编译的程序对象。

请注意,某些驱动程序会自行缓存程序二进制文件,例如NVidia专有的Linux驱动程序,它使用~/.nv/GLCache目录来存储缓存的对象。我不确定其他驱动程序是否也有这样的缓存,但我发现它很可能。