title: Error 'overlapping register semantics not yet implemented' in VertexShader
body: <p>I am trying to perform diffuse reflection in hlsl. Currently I am working on vertex shader. Unfortunatelly I get following error, when trying to compile with <code>fxc.exe</code>: </p>
  
  <pre><code>C:\Users\BBaczek\Projects\MyApp\VertexShader.vs.hlsl(2,10-25)
  : error X4500: overlapping register semantics not yet implemented 'c1'
  C:\Users\BBaczek\Projects\MyApp\VertexShader.vs.hlsl(2,10-25)
  : error X4500: overlapping register semantics not yet implemented 'c2'
  C:\Users\BBaczek\Projects\MyApp\VertexShader.vs.hlsl(2,10-25)
  : error X4500: overlapping register semantics not yet implemented 'c3'
  </code></pre>
  
  <p>Vertex shader code:</p>
  
  <pre><code>    float4x4 WorldViewProj : register(c0);
  float4x4 inv_world_matrix : register(c1);
  float4 LightAmbient;
  float4 LightPosition;
  
  
  struct VertexData
  {
      float4 Position : POSITION;
      float4 Normal : NORMAL;
      float3 UV : TEXCOORD;
  };
  
  struct VertexShaderOutput
  {
      float4 Position : POSITION;
      float3 Color: COLOR;
  };
  
  VertexShaderOutput main(VertexData vertex)
  {
      VertexShaderOutput output;
  
  
      vertex.Normal = normalize(vertex.Normal);
  
      float4 newColor = LightAmbient;
  
      vector obj_light = mul(LightPosition, inv_world_matrix);
      vector LightDir = normalize(obj_light - vertex.Position);
      float DiffuseAttn = max(0, dot(vertex.Normal, LightDir));
      vector light = { 0.8, 0.8, 0.8, 1 };
      newColor += light * DiffuseAttn;
  
      output.Position = mul(vertex.Position, WorldViewProj);
      output.Color = float3(newColor.r, newColor.g, newColor.b);
      return output;
  }
  </code></pre>
  
  <p>And command I use to perform compilation:</p>
  
  <pre><code>fxc /T vs_2_0 /O3 /Zpr /Fo VertexShader.vs VertexShader.vs.hlsl
  </code></pre>
  
  <p>Why am I getting this error? What can I do to prevent this?</p>