I've been trying to figure out an issue with a project not displaying right on Kindle Fire HD 10s. (Depending on the root cause, it likely affects more than those devices.) After troubleshooting for a fe days, I finally decided to narrow things down and created a new 3D project in Unity 2019.1.7f1. I added one cube to the scene and built it for windows and android. Works fine as a windows .exe, and .apk for various android devices (pixel 2xl, nexus 9, nexus 7, and two fire hd 10s). But when I add the following post processing script and pass through shader, it gets a random pattern of artifacts on each run. (The pattern is different each run, but it doesn't change once running.)


Here is the barebones post processing script on the camera: using UnityEngine; public class PostProcess : MonoBehaviour { public Material material; void OnRenderImage(RenderTexture source, RenderTexture destination) { //Graphics.Blit(source, destination); // OK on all devices, including Fire HD 10s. Graphics.Blit(source, destination, material); // OK on all but Fire HD 10s. } }
And a barebones passthrough shader (on a brand new material): Shader "Custom/PassThrough" { Properties { _MainTex("Texture", 2D) = "white" {} } SubShader { Pass { CGPROGRAM #pragma vertex vert_img #pragma fragment frag #include "UnityCG.cginc" // Properties sampler2D _MainTex; float4 frag(v2f_img input) : COLOR { // Simply copy the existing texture return tex2D(_MainTex, input.uv); } ENDCG } } }
The post processing actually works if I do the Blit with no material... but once I add a material, it draws the garbage on top. (The actual post processing effect is applied, just obscured by the black garbage on top.)
FYI, the original project works fine (user interaction, camera moving around, the actual post processing effects, etc.), it just has the garbage on top too.
So... does anyone have any idea why the Fire HD 10s would be mis-behaving like this?
I think 2018.2.10f1 also had the issue, but I've upgraded since then.


Here is the barebones post processing script on the camera: using UnityEngine; public class PostProcess : MonoBehaviour { public Material material; void OnRenderImage(RenderTexture source, RenderTexture destination) { //Graphics.Blit(source, destination); // OK on all devices, including Fire HD 10s. Graphics.Blit(source, destination, material); // OK on all but Fire HD 10s. } }
And a barebones passthrough shader (on a brand new material): Shader "Custom/PassThrough" { Properties { _MainTex("Texture", 2D) = "white" {} } SubShader { Pass { CGPROGRAM #pragma vertex vert_img #pragma fragment frag #include "UnityCG.cginc" // Properties sampler2D _MainTex; float4 frag(v2f_img input) : COLOR { // Simply copy the existing texture return tex2D(_MainTex, input.uv); } ENDCG } } }
The post processing actually works if I do the Blit with no material... but once I add a material, it draws the garbage on top. (The actual post processing effect is applied, just obscured by the black garbage on top.)
FYI, the original project works fine (user interaction, camera moving around, the actual post processing effects, etc.), it just has the garbage on top too.
So... does anyone have any idea why the Fire HD 10s would be mis-behaving like this?
I think 2018.2.10f1 also had the issue, but I've upgraded since then.