The issue here is that the automatic bump shader in OSL adjusts globals.N, which is used to define each closure's shading normal, but sd->N remains as it was (unlike SVM, which sets it from svm_node_set_normal). This is a problem since some code like the shadow terminator stuff uses sd->N, so to make behavior consistent the fix is to set it from OSL as well. Pull Request: https://projects.blender.org/blender/blender/pulls/138092