diff --git a/components/renderers/cpp/src/triangle_render.cu b/components/renderers/cpp/src/triangle_render.cu
index a7e754c4857daf7264506bf1b00ec1e89e4149e2..93cde735044850407940815047b82c8ddfa3bd63 100644
--- a/components/renderers/cpp/src/triangle_render.cu
+++ b/components/renderers/cpp/src/triangle_render.cu
@@ -28,6 +28,9 @@ __device__ inline float length2(int dx, int dy) { return dx*dx + dy*dy; }
     d[1] = depth_in.tex2D(x+1,y);
     d[2] = depth_in.tex2D(x,y+1);
 
+    // Is this triangle valid
+    if (fabs(d[0] - d[1]) > 0.04f || fabs(d[0] - d[2]) > 0.04f) return;
+
     short2 s[3];
     s[0] = screen.tex2D(x,y);
     s[1] = screen.tex2D(x+1,y);