glReleaseShaderCompiler() 用例

luk*_*nis 2 opengl shader glsl

我找不到任何现实生活中的glReleaseShaderCompiler使用示例。

我什么时候用glReleaseShaderCompiler?根据khronos 的描述,它指出“这是来自应用程序的提示,不太可能发生额外的着色器编译”。

它没有说明我是否必须这样做,或者如果我不使用它会受到什么处罚。除了可能分配 RAM 之外还有什么好处?

And*_*man 5

这是一个提示是有原因的。着色器编译器使用的资源完全是特定于实现的,但它可能包括回收用于解析等的内存。

关于何时使用它,如果您的程序仅在初始化时加载着色器并且从不重新加载它们,那么这是一个非常好的用例。同样,建议您在链接 GLSL 程序后删除着色器对象以节省内存,因为您不会不断地重新链接它。