有没有办法使用OpenGL 3.2缓存已编译的着色器程序?
我看过 ARB_get_program_binary ,但发现我的驱动程序不支持它。
我希望尽可能与旧卡兼容,因此切换到OpenGL 4不是一个好的解决方案。
我正在使用Qt5.1并使用QOpenGLFunctions_3_2_Core来访问OpenGL函数。
答案 0 :(得分:3)
除了ARB_get_program_binary
之外,没有OpenGL功能来查询/缓存已编译的程序对象。
请注意,某些驱动程序会自行缓存程序二进制文件,例如NVidia专有的Linux驱动程序,它使用~/.nv/GLCache
目录来存储缓存的对象。我不确定其他驱动程序是否也有这样的缓存,但我发现它很可能。