Hi.
I have noticed some strange behaviour on phones using Adreno 630 GPU. It usually happens when multiplying some vector variable that contains color with a vec4 uniform i.e
Example1:
// _MidLightColor is a vec4 uniform
color_out.rgb *= _MidLightColor.rgb; // This results in a black color
color_out.rgb *= saturate(_MidLightColor.rgb); // This results in proper color
Example2:
In this case I must absolutely set alpha value to 1, otherwise the result is again black.(No alpha blend is used)
//_TintColor and _BlendFactor are uniforms
// lumeColor is a varialbe
// a_color0 is an attribute
vec4 tinted = lumaColor * _TintColor;
float blend = mix(1.0, _BlendFactor.x, a_color0.a);
v_color0 = mix(tinted, a_color0, blend);
v_color0.a = 1.0; // must be set to 1