Imagination PowerVR SDK Blog

My application woks fine on GALAXY NEXUS, but it doesn't work on GALAXY Tab 2.


#1

Hi,

My application works fine on GALAXY NEXUS.

However, it doesn’t work on GALAXY Tab2.

Textures become black.

I think they use same GPU(PowerVR SGX540).

Why the textures become black on GALAXY Tab2?

My Application(Google Play)

Bug report from users.


#2

Hi,



Have you checked that your shaders compile correctly on the Galaxy Tab 2? Can you share the shader code with us (either in this post or sent to devtech@imgtec.com)?



Thanks,

Joe


#3

Hi,

I can’t test on Galaxy Tab2 because I don’t have Galaxy Tab2.

However, I think shaders compile correctly because my renderer code checks compile error

and the user doesn’t see error message.



This application is an opensource product.

Shaders are here.

http://sourceforge.jp/projects/mikumikustudio/scm/hg/MMDLoaderJME/blobs/tip/src/MatDefs/pmd/pmd.vert

http://sourceforge.jp/projects/mikumikustudio/scm/hg/MMDLoaderJME/blobs/tip/src/MatDefs/pmd/pmd.frag



Thanks.


#4

Hi,

These pictures are snapshots of my application.

My application works fine on GALAXY NEXUS, Adreno200,205,220,320,Tegra2,Tegra3,Mali-400.

However it doesn’t work on GALAXY Tab2 7.0.

Why the textures become black on GALAXY Tab2 7.0?



I can’t test on Galaxy Tab2 because I don’t have Galaxy Tab2.

Please help.



GALAXY Tab2 7.0





GALAXY NEXUS





Application(Free)

https://play.google.com/store/apps/details?id=jp.co.pscnet.mms.tinyar







A report of an user

https://plus.google.com/117567614712363939940/posts/NH74XMXLanq



Thanks.


#5

Hi,



Sorry for the delayed response. I’ve not yet confirmed it, but I think I’ve found the cause of the rendering error.



If an alpha value written into your your render target doesn’t add up to 1.0, then the device’s compositor may interpret this as that portion of the image should be transparent. Most Android devices treat an application’s surface as being opaque but some will honour any alpha values that are written into a surface & alter the compositions behaviour accordingly.



Can you try always outputting gl_FragColor.a = 1.0 at the end of your shaders, or ensuring your existing calculations always adds up to 1.0?



Btw, it may be by design, but the application always has alpha blending enabled. Your render will be more efficient if you only enable blending when its required.



Thanks,

Joe


#6

Hi,

Thank you for your response.



> Can you try always outputting gl_FragColor.a = 1.0 at the end of your shaders,



I made it.

https://docs.google.com/file/d/0B_-F-kj1SY0cVzJEOTV5TklPWDA/edit?usp=sharing



However, I can’t test it because I don’t have Galaxy Tab2.



This application is a MikuMikuDance(MMD) viewer.

MMD is a famous 3D animation tool in Japan.

MMD always requires alpha blending.

Some models fail if I disable alpha blending.



Thanks.

chototsu


#7

Hi Chototsu,



Unfortunately, I don’t have a Galaxy Tab 2 either. I tried running the APK from Google Play on the devices I have, but wasn’t able to reproduce the issue on any of them.



Would you be able to ask one of your users to run a test for you?



Regards,

Joe



#8

Hi Joe,

I’ll ask the users who reported this problem.



Thanks.

chototsu