**System Information**
Ubuntu 14.04 64, Windows 7 64, Geforce GTX 760, Compute Device CPU
**Blender Version**
Broken: since 2.70
Worked: 2.65-2.69 (partially)
**Short description of error**
When using OSL to access the surface normal N, indirect vs. direct access produces inconsistent output. The value of N - when using displacement - depends on the OSL code path and on the BSDF used. It ignores surface changes introduced by displacement when accessed indirectly, but uses the displacement normals when accessed directly. Note that versions <= 2.69 always use the normals produced by the displacement and the output does not depend on the code path. Also, N depends on the BSDF used. Using an Emission BSDF for example, completely ignores the displacement normals. For 2.72 RC the following occurs (tested with Windows and Linux builds):
Color = color(N);
works with displaced normals, while
normal x = N;
Color = color(x);
Color = color(N[0],N[1],N[2]);
Color = color(normal(N))
Color = color(vector(N))
uses only per face normals.{F114218}
{F114220}
{F114222}
**Exact steps for others to reproduce the error**
See attached images and .blend