The Unity Manual has a page on GPU instancing. One of the examples, titled "Adding instancing to vertex and fragment Shaders", causes the following errors to printed to the console when saved in a Shader file:
... unrecognized identifier 'UNITY_INSTANCING_BUFFER_START' at line ... (on d3d11)
... not enough actual parameters for macro 'UNITY_ACCESS_INSTANCED_PROP' at line ... (on d3d11)
This error message does not make any sense. The identifier is supposed to be created in the UnityInstancing.cginc file, if the render target is supported. This thing is, d3d11 is supported:
Line 211: #ifdef UNITY_INSTANCING_AOS
#define UNITY_INSTANCING_BUFFER_START(buf)
...
#define UNITY_INSTANCING_BUFFER_END(arr)
...
#endif
Line 41: #if defined(SHADER_API_D3D11) || ...
#define UNITY_INSTANCING_AOS
#endif
My question:
Why does Unity say that these operations are not supported on this platform?