update
Windows Chrome Canery WebGL GLSL bug!!!

mixing type in struct might not work! Light.radius is float, but never
work, and also break all the properties after it. Unless you declare it
vec2 or vec3.(int also break the struct).