When testing on a Galaxy Tab 3 with a PowerVR-SGX GPU, our animated 3D models appeared to explode, smearing polygons all over the screen. Other devices without the PowerVR GPU did not exhibit this behavior with the same APK. Is anyone else seeing this problem? Is there anything I am missing?
Asked
Active
Viewed 243 times
1
-
Please provide vertex + fragment shaders. I need to see the case when this happens. – keaukraine Jul 31 '14 at 07:22
1 Answers
2
After a long and arduous trek through our rendering pipeline, animation pipeline, and finally the shaders themselves, I found that the dot product function in our vertex shader was the issue. Replacing the call to the built-in dot(2)
function with a hand-made dot product completely fixed the issue. I have no explanation for why the dot
function in the vertex shader doesn't work, but this solution solved the issue on both the Galaxy Tab 3 and the Galaxy S4 (with PowerVR). Does anyone know why this is a valid solution?

Grimless
- 1,268
- 1
- 15
- 30
-
2I would suggest reporting it on the Imagination developer forums, they're pretty responsive to reports like this. – eodabash Jul 30 '14 at 22:41
-
1I've also experienced certain issues w/ PowerVR SGX GPUs - `sampler2D()` returned garbage results. Fixed by using `precision lowp float;` in fragment shader. So your issue *might* be caused by the way PowerVR SGX converts values of different precisions. Also in my case shader had somewhat different behavior on the same device (Motorola Atrix 2) but with different ROMs (stock 4.0 vs. custom 4.3). Hopefully, I had 2 more devices w/ PowerVR to borrow for testing to ensure that bug was fixed for good. – keaukraine Jul 31 '14 at 07:21