Use clamp instead of max(0, dot(normalized, normalized))

Should help GLSL compiler to optimize them.
Use deferred shading instead of light prepass
Use GGX D + Schlick G for BSDF and burley for Diffuse