Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS OpenGL ES 2.0着色器';s极限_Ios_Opengl Es 2.0_Shader_Fragment Shader_Limits - Fatal编程技术网

iOS OpenGL ES 2.0着色器';s极限

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临时变量的使用 变量的最大数量由一致性测试定义 但我找不到这个极限的价值 更

片段着色器中着色器的大小或变量的数量是否有一些限制

我有一个片段着色器,它在一些阈值大小的代码之后返回空图像。我认为,问题在于着色器的大小或变量数量的限制

我在编译后检查着色器程序-一切正常

他说:

OpenGL ES限制可以在顶点或片段着色器中使用的每个变量类型的数量。OpenGL ES规范不要求实现在超过这些限制时提供软件回退;相反,着色器无法编译或链接

他说:

2着色器可执行文件的长度 这是由一致性测试定义的。 3临时变量的使用 变量的最大数量由一致性测试定义

但我找不到这个极限的价值

更新:

如果图像较大,有时应用程序会在
glFlush
glDrawArrays
上中断,并使用
EXC\u BAD\u ACCESS

已解决

问题是循环太长,计算时间太长。着色器不是很大,但非常复杂

更新


同样的问题:

如果您正在检查着色器编译和链接的结果(如中所述),并且没有错误,则会有其他原因导致图像为空


如果您没有检查日志,您应该开始检查:)

我正在检查日志,我确信,该图像不是空的;)但是你说“在一些阈值大小的代码之后返回空图像”?我的观点是,如果编译成功,那么问题在于着色器的逻辑。无法查询限制。着色器已成功使用较少的代码。但随着复杂度的增加,计算的复杂度和计算时间也随之增加。我认为,OpenGL驱动程序为了防止挂断而中断了太长的计算。我认为您无法查询最大长度。但是,如果你超过它,编译就会失败。我认为,这是一个长期循环中的问题。但我不能这样做。我认为,主要是另一种方法必须在这里实现。这将是获得帮助的唯一途径。