diff --git a/components/renderers/cpp/src/triangle_render.cu b/components/renderers/cpp/src/triangle_render.cu
index 5c8d2dd42db4e96705508a9bd963b323e0c0b56f..a7e754c4857daf7264506bf1b00ec1e89e4149e2 100644
--- a/components/renderers/cpp/src/triangle_render.cu
+++ b/components/renderers/cpp/src/triangle_render.cu
@@ -43,7 +43,7 @@ __device__ inline float length2(int dx, int dy) { return dx*dx + dy*dy; }
 
     for (int sx=0; sx < s[1].x; ++sx) {
         for (int sy=0; sy < s[2].y; ++sy) {
-            if (sx < sy) continue;
+            if (sx > s[2].y-sy) continue;
             if (sx+s[0].x >= params.camera.width || sy+s[0].y >= params.camera.height) continue;
 
             float dist1 = length2(sx,sy);