opengl 什么原因导致顶点着色器基于状态的GLSL重新编译?

3zwtqj6y  于 2023-03-02  发布在  其他
关注(0)|答案(2)|浏览(112)

我正在使用ARB_debug_output扩展名,驱动程序给我以下警告:
程序/着色器状态性能警告:程序16中的顶点着色器基于GL状态被重新编译。
因此,我尝试在编译着色器之前设置各种GL状态,包括:

  • GL_BLEND
  • GL_CULL_FACE
  • GL_DEPTH_TEST
  • 多边形偏移
  • 混合函数

...但它仍然会在第一次绘制时重新编译。
哪些典型的状态会导致驱动程序重新编译顶点着色器?

mccptt67

mccptt671#

我最近遇到了这个问题。它发生了解除绑定顶点数组对象导致这个警告出现。删除带有glBindVertexArray(0)的行后警告信息消失。

k10s72fa

k10s72fa2#

我解决这个接受保罗.胡克斯的addvice在下面的链接:https://discourse.libcinder.org/t/performance-warning-shader-recompiled/1602
也许这会有所帮助:

相关问题