you posted an image from your viewport. that is not a render. you need to blame your graphics card if it cannot shade correctly. does this occur as well on a real render?