Strange behavior with light/view dir in custom lighting

When I assign SurfaceOutput.Normal, I am getting strange behavior with both the lightDir and viewDir. It doesnt matter what I assign Normal to, the output is always the same. The expected result happens when Normal is not assigned. To test, I used a sphere with normals pointing inward, black Albedo, and do the following in the lighting function:

(the image on the left is without setting Normal, the right sets it to half3(0,0,1), all images are taken from (0,0,0) with rotation (0,0,0))

half4 light4 = half4(0,0,0, s.Alpha);
half sun = saturate(dot(viewDir, lightDir) * -1);
light4.rgb = pow(sun, 10).rrr;
return light4;

11912-shader_dot.png

half4 light4 = half4(0,0,0, s.Alpha);
half sun = saturate(dot(viewDir, lightDir) * -1);
half sunPow = pow(sun, 10);
half sphere = sunPow - 1;
sphere = sqrt((sphere * sphere)) * 100;
sphere = (1 - sphere);
sphere = saturate(sphere);
light4.rgb = sphere.rrr;
return light4;

11913-shader_sphere.png

the dot on the right is a diamond right on a vertex, and from most angles it is not visible

It turned out to be I needed to normalize both lightDir and viewDir when I assign normals