我已经成功实现了OpenGL调试上下文(太棒了,终于!),大部分事情都看起来很好,但我看到了一条性能警告,我找不到有关它的良好信息。
[ 0.0330 - 388.6340] OpenGL Version: 4.2.0 Quadro 600/PCIe/SSE2 NVIDIA Corporation
[ 0.0000 - 549.1920] OpenGL: Program/shader state performance warning: Fragment Shader is going to be recompiled because the shader key based on GL state mismatches. [source=API type=PERFORMANCE severity=MEDIUM id=131218]
我明白这可能与OpenGL状态自上次编译着色器以来的更改有关。
我们有四个着色器在共享纹理的四个上下文中运行,只有在创建新上下文后才会显示出错误信息。因此,上下文的创建可能会改变OpenGL状态机的状态。是否可能无法解决它,因为每个上下文都从自己的“干净”状态机开始?
这可能不是很重要,因为它只会在创建上下文时发生,但由于我们正在同时运行许多上下文(至少最多达15个),所以有趣的是看看能否修复警告并彻底摆脱它。