Android PowerVR-SGX500系列奇怪的行为

Android PowerVR-SGX500系列奇怪的行为,android,opengl-es-2.0,shader,galaxy-tab,powervr-sgx,Android,Opengl Es 2.0,Shader,Galaxy Tab,Powervr Sgx,当使用PowerVR SGX GPU在Galaxy Tab 3上进行测试时,我们的3D动画模型似乎爆炸了,将多边形涂抹在整个屏幕上。其他没有PowerVR GPU的设备在使用相同的APK时没有表现出这种行为。还有其他人看到这个问题吗?有什么我遗漏的吗?经过漫长而艰苦的跋涉,通过我们的渲染管道、动画管道,最后是着色器本身,我发现顶点着色器中的点积函数是问题所在。将对内置dot(2)函数的调用替换为手工制作的dot产品,完全解决了该问题。我没有解释为什么顶点着色器中的dot函数不起作用,但此解决方案

当使用PowerVR SGX GPU在Galaxy Tab 3上进行测试时,我们的3D动画模型似乎爆炸了,将多边形涂抹在整个屏幕上。其他没有PowerVR GPU的设备在使用相同的APK时没有表现出这种行为。还有其他人看到这个问题吗?有什么我遗漏的吗?

经过漫长而艰苦的跋涉,通过我们的渲染管道、动画管道,最后是着色器本身,我发现顶点着色器中的点积函数是问题所在。将对内置
dot(2)
函数的调用替换为手工制作的dot产品,完全解决了该问题。我没有解释为什么顶点着色器中的
dot
函数不起作用,但此解决方案解决了Galaxy Tab 3和Galaxy S4(使用PowerVR)上的问题。有人知道为什么这是一个有效的解决方案吗?

我建议在Imagination developer论坛上报告,他们对这样的报告反应非常好。我也遇到过一些问题,比如PowerVR SGX GPU-
sampler2D()
返回的垃圾结果。通过使用
精度低浮点进行固定在片段着色器中。因此,您的问题可能是由PowerVR SGX转换不同精度值的方式引起的。同样在我的例子中,着色器在同一台设备(Motorola Atrix 2)上有一些不同的行为,但具有不同的ROM(库存4.0与定制4.3)。希望,我还有2台带有PowerVR的设备可以借用进行测试,以确保bug得到永久修复。请提供vertex+片段着色器。发生这种情况时,我需要看看情况。