- Home /
 
 
               Question by 
               PointNineGames · Sep 20, 2014 at 10:20 PM · 
                androidshaderhardware  
              
 
              Why doesn't this shader work on the Huawei Honor 2?
This shader works on other Android devices that I've tested, but not on the Huawei Honor 2. I'm lost as to how to proceed and could use some advice.
The hardware is the Huawei Honor 2 (U9508 1GB RAM). Running Android version 4.2.2 EMUI B709. I don't have physical access to the device so there has been no debugging opportunities.
The shader:
    Shader "Sprite/OldSkoolPalette_Alpha8_NoOutline" {
         Properties {
             _MainTex ("Base Map", 2D) = "white" {}
             _PaletteTex ("Palette", 2D) = "white" {}
         }
         
         SubShader
         {
             Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"}
             ZWrite Off Lighting Off Cull Off Fog { Mode Off } Blend SrcAlpha OneMinusSrcAlpha
             LOD 110
                     
             Pass 
             {
             
                 CGPROGRAM
                 #pragma vertex vert
                 #pragma fragment frag
                 #pragma fragmentoption ARB_precision_hint_fastest
                 #include "UnityCG.cginc"
                             
                 sampler2D _MainTex;
                 sampler2D _PaletteTex;
                 float4 _MainTex_ST;
                 
                 struct vin
                 {
                     float4 vertex : POSITION;
                     float2 texcoord : TEXCOORD0;
                 };
         
                 struct v2f
                 {
                     float4 vertex : POSITION;
                     float2 texcoord : TEXCOORD0;
                 };
                 
                 v2f vert(vin v)
                 {
                     v2f o;
                     o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                     o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
                     return o;
                 }
             
                 fixed4 frag(v2f i) : COLOR
                 {        
                     float4 c = tex2D(_MainTex, i.texcoord);
                     float a256 = c.a * 255;
                     float upper =  floor(a256 / 16)/16 + 0.04;
                     float lower =  fmod(a256, 16)/16 + .02;
                     
                     float4 c2 = tex2D(_PaletteTex, fixed2(upper,lower));
                     
                     c2.a = (c2.r == 1 && c2.b == 0)?0:c2.a; // All border pixels have alpha of 0
                     return c2;
                 }
                 ENDCG
             }
         }
     }
 
               Broken:

Working:

 
                 
                640x960-1.png 
                (142.5 kB) 
               
 
                
                 
                pic1.png 
                (237.9 kB) 
               
 
              
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
Custom shader dissappear on mobile 0 Answers
Cubemap on Android 1 Answer
How to use shader depth buffer offset in android on unity 5 0 Answers
Way to know the power of a hardware on a mobile? 3 Answers
Transparent Detail on mobile 0 Answers