Black textures on some devices/android versions

I've got an issue where some devices are having my shader show up as black. Does anyone know what the cause of a black texture is? I know pink means the shader isn't supported but black seems like the lighting isn't working.

Example: http://imgur.com/JozhJH9

The top picture shows what the shader should look like (and works on most devices) but there are some devices that don't.

You can see the reflection part of the shader is working in the bottom image but the color of the texture is black. The bit of yellow at the back is actually a different material (needed to be transparent for the flames).

Anyone come across this type of issue is custom shaders? It's got to be something I'm doing wrong in my shader:

Shader "Simple/VertexLit Reflective" 
{

    Properties 
    {

        _Reflected ("Reflection", Color) = (0.15,0.15,0.15,1) 
        _MainTex ("Base (RGB) RefStrength (A)", 2D) = "white" {} 
        _BumpTex ("Normal", 2D) = "white" {}
        _Cube ("Reflection Cubemap", Cube) = "_Skybox" { TexGen CubeReflect }    
        _WindDirection("Wind Direction",Vector) = (0,0,0,0)

    }


   SubShader 
   { 

          Pass 
          {    

          Tags {"LightMode"="Vertex" }


            GLSLPROGRAM 

            // Varyings         
            varying mediump vec2 uv;
            varying mediump vec2 uv2;
            varying lowp vec3 lighting;
            varying lowp vec3 reflectedDirection;
            varying lowp float c;
            varying mediump vec3 viewDirection;
            varying mediump vec3 normal;
            varying mediump vec3 lightDir;
            uniform mediump vec3 unity_LightPosition[1]; 
            uniform mediump vec3 unity_LightColor[1];


            uniform mat4 _Object2World; // model matrix
            uniform mat4 _World2Object; // inverse model matrix

            uniform lowp vec4 _WindDirection;

            uniform mediump vec4 _Reflected;

            #ifdef VERTEX

               uniform mediump vec4 _MainTex_ST;
               uniform mediump vec4 _BumpTex_ST;

            uniform lowp vec3 _WorldSpaceLightPos0, _LightColor0, _WorldSpaceCameraPos;

            void main()
            {            


                vec4 wind;

                wind.xyz    = mat3(_WindDirection, _WindDirection, _WindDirection) * _WindDirection.xyz;
                wind.w        = 0.0;

                  uv = gl_MultiTexCoord0.xy * _MainTex_ST.xy + _MainTex_ST.zw;
                  uv2 = gl_MultiTexCoord1.xy * _BumpTex_ST.xy + _BumpTex_ST.zw;

                viewDirection = vec3(_Object2World * gl_Vertex - vec4(_WorldSpaceCameraPos, 1.0));

                   normal = normalize(gl_NormalMatrix * gl_Normal);

                lightDir = normalize(vec3(unity_LightPosition[0].xyz));

                lighting = max(dot(normal, lightDir), 0.) * unity_LightColor[0] + gl_LightModel.ambient.rgb;

                c = (1.0-gl_Color.g) * 1.5;

                reflectedDirection = reflect(viewDirection, normal);  

                vec4 pos =  gl_Vertex;

                pos.xyz +=  wind.xyz + (_WindDirection.xyz * (1.0-gl_Color.r)) ;

                gl_Position = gl_ModelViewProjectionMatrix * pos;

            }

             #endif

             #ifdef FRAGMENT


            uniform lowp sampler2D _MainTex;
            uniform lowp sampler2D _BumpTex;   
              uniform lowp samplerCube _Cube;   

            void main() 
            { 

                lowp vec4 u = texture2D(_MainTex, uv);
                lowp vec4 u2 = texture2D(_BumpTex, uv2);

                 u.rgb *= lighting;

                 gl_FragColor = (u - (u2.g * u) * c) + (textureCube(_Cube, reflectedDirection) * _Reflected);

            }

             #endif


             ENDGLSL
          }
       }

       Fallback "Mobile/VertexLit"

}

1326552--63396--$1149011_401359119969600_1407243531_n.jpg
1326552--63397--$Screen Shot 2013-08-12 at 12.39.29 PM.png

I have the same problem on one of customer's Android device.

1332152--64126--$1185165_10151810934551508_567324716_n.jpg

Will let you know if I could find out the cause

I used specular reflective on the airplane skin.

I have the same issue, anyone find a solution?

remember mobile doesnt support over 2048x2048. I found that if you use a texture thats larger then that it will turn black.

I do not have any textures that large, thanks though

I really would like a solution to this, I am getting angry 1 star comments from users.

might wanna go to unity support with this. Using custom shaders?

http://forum.unity3d.com/threads/192561-RenderTexture-not-working-on-iOS-and-Android-Unity-4-2-0f4/page2

Just found near one of hte last posts on page 2 that people are having similiar black texture issues.. i dont know.. maybe same issue?

I am using the built in Mobile->Vertex Lit,

Hello! Did u find the reason or solution ? We've experienced this as well sometimes.

Looks like we've fixed it!

Could you say how?

Any chance your device has a MALI 400 GPU?

With latest version of Unity I had to play with depth buffers (enable 32 bit, disable 24 bit) or my entire game was black. Android also has limited texture support.

Also check the texture import settings, specifically for Transparency options.

[quote]
_MainTex ("Base (RGB) RefStrength (A)", 2D) = "white" {}
[/quote]

White could be completely transparent?

No, it's still reproducible. We're experiencing this bug on iPad devices sometimes. I thought it was related to the Resources.UnloadUnusedAssets() method, but i was wrong.
Have no idea what to do.

Hey guys do all your problems go away if you hard set Quality Settings for AntiAliasing Multi Sampling to 0?
QualitySettings.antiAliasing = 0;

I was about to raise my own thread as my issue seems worse when using Static Batching with Anti Aliasing.

Before we get into texture import settings using ETC and RGBA 16 and such. I wanted to point out that my game has been out with 3 updates to Google Play, Amazon / Kindle, and Nook with no texture rendering issues on Unity 3.5.x Pro.

With the 4th update I had upgraded to Unity 4.2.1f4 Pro and now I have users reporting black bars on my UI (NGUI) and flickering graphics. The flickering is some of my meshes deforming all over the place. At first I couldn't reproduce the problem on my devices but now I've isolated the cause with the ramping up of my Quality Settings. Other build settings include: OpenGL ES 2.0 and Android 2.2 as a base.

I have confirmed issues on Galaxy 1 - 4 S devices and on Nook Color by enabling AntiAliasing Mulitsampling 2x or higher.

Can people tell me if they are seeing similar results by hard setting:
QualitySettings.masterTextureLimit = 0; //Let's avoid Mip maps for now.
QualitySettings.antiAliasing = 2; //or 4, 8...

Yep, we have no AA at all and experiencing this issue.

Yikes. Does it get worse when enabling multi sampling above 0? Many of my static models disappear. I lose my skybox. I get some flickering on screen too which is random.

Anyone notice things change with changes to AA settings?

We are also experiencing this problem. We've had it before, but found out there were still some texture atlases set at 4096, we set those to 2048 and that solved the problem. Now we've added some new graphics and the problem has emerged again. I've checked all atlases and nothing is bigger than 2048 this time. Setting antiAliasing makes the problem worse, but we also don't use antiAliasing to begin with so this can not be used to solve the problem.

Any advice would be appreciated!

I'm having a similar issue. My static batched models are black when I run on my iPhone 5. They show up fine if I set them to non static.