【发布时间】:2023-03-12 10:55:01
【问题描述】:
有没有办法缓存使用 OpenGL 3.2 编译的着色器程序?
我查看了 ARB_get_program_binary,但发现我的驱动程序不支持它。
我希望尽可能与旧卡兼容,因此切换到 OpenGL 4 不是一个好的解决方案。
我正在使用 Qt5.1 并使用 QOpenGLFunctions_3_2_Core 来访问 OpenGL 函数。
【问题讨论】:
有没有办法缓存使用 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 目录来存储缓存对象。我不确定其他驱动程序是否也有这样的缓存,但我觉得很有可能。
【讨论】: