diff --git a/samplecode/Sample3D.cpp b/samplecode/Sample3D.cpp
index 648f2db..252cf5e 100644
--- a/samplecode/Sample3D.cpp
+++ b/samplecode/Sample3D.cpp
@@ -338,13 +338,22 @@
             uniform float4x4 localToWorld;
             uniform float3   lightPos;
 
+            // TODO: Remove these helpers once all intrinsics work on the raster backend
+            float3 normalize_(float3 v) {
+                return v / sqrt(dot(v, v));
+            }
+
+            float max_(float a, float b) {
+                return a > b ? a : b;
+            }
+
             void main(float x, float y, inout half4 color) {
                 float3 plane_pos = (localToWorld * float4(x, y, 0, 1)).xyz;
-                float3 plane_norm = normalize((localToWorld * float4(0, 0, 1, 0)).xyz);
-                float3 light_dir = normalize(lightPos - plane_pos);
+                float3 plane_norm = normalize_((localToWorld * float4(0, 0, 1, 0)).xyz);
+                float3 light_dir = normalize_(lightPos - plane_pos);
                 float ambient = 0.5;
                 float dp = dot(plane_norm, light_dir);
-                float scale = ambient + max(dp, 0);
+                float scale = ambient + max_(dp, 0);
 
                 color = color * half4(float4(scale, scale, scale, 1));
             }
