OpenGL 3.2:缓存编译的着色器

OpenGL 3.2: Cache compiled shaders?

本文关键字:编译 缓存 OpenGL      更新时间:2023-10-16

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

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

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

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

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

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