iOS OpenGL ES 2.0着色器';s极限
片段着色器中着色器的大小或变量的数量是否有一些限制 我有一个片段着色器,它在一些阈值大小的代码之后返回空图像。我认为,问题在于着色器的大小或变量数量的限制 我在编译后检查着色器程序-一切正常 他说: OpenGL ES限制可以在顶点或片段着色器中使用的每个变量类型的数量。OpenGL ES规范不要求实现在超过这些限制时提供软件回退;相反,着色器无法编译或链接 他说: 2着色器可执行文件的长度 这是由一致性测试定义的。 3临时变量的使用 变量的最大数量由一致性测试定义 但我找不到这个极限的价值 更新: 如果图像较大,有时应用程序会在iOS OpenGL ES 2.0着色器';s极限,ios,opengl-es-2.0,shader,fragment-shader,limits,Ios,Opengl Es 2.0,Shader,Fragment Shader,Limits,片段着色器中着色器的大小或变量的数量是否有一些限制 我有一个片段着色器,它在一些阈值大小的代码之后返回空图像。我认为,问题在于着色器的大小或变量数量的限制 我在编译后检查着色器程序-一切正常 他说: OpenGL ES限制可以在顶点或片段着色器中使用的每个变量类型的数量。OpenGL ES规范不要求实现在超过这些限制时提供软件回退;相反,着色器无法编译或链接 他说: 2着色器可执行文件的长度 这是由一致性测试定义的。 3临时变量的使用 变量的最大数量由一致性测试定义 但我找不到这个极限的价值 更
glFlush
或glDrawArrays
上中断,并使用EXC\u BAD\u ACCESS
已解决
问题是循环太长,计算时间太长。着色器不是很大,但非常复杂
更新
同样的问题:如果您正在检查着色器编译和链接的结果(如中所述),并且没有错误,则会有其他原因导致图像为空
如果您没有检查日志,您应该开始检查:)我正在检查日志,我确信,该图像不是空的;)但是你说“在一些阈值大小的代码之后返回空图像”?我的观点是,如果编译成功,那么问题在于着色器的逻辑。无法查询限制。着色器已成功使用较少的代码。但随着复杂度的增加,计算的复杂度和计算时间也随之增加。我认为,OpenGL驱动程序为了防止挂断而中断了太长的计算。我认为您无法查询最大长度。但是,如果你超过它,编译就会失败。我认为,这是一个长期循环中的问题。但我不能这样做。我认为,主要是另一种方法必须在这里实现。这将是获得帮助的唯一途径。