Hello, I am struggling to make a simple shader work with instancing. It seems that unity can't handle vertex, hull, domain and fragment shaders together with GPU instancing. I tried to use both stable (5.4.1f1) and beta (5.5.0b7) versions and the results are the same. I will try to describe my issue as detailed as possible. The first problem I faced was that outputs from hull shader and patchconstantfuncb could not have a UNITY_INSTANCE_ID member. The compiler would report "invalid ds_5_0 input semantic 'SV_InstanceID'". Code (CSharp): struct HS_ControlPointOutput { float4 pos : POS; float3 normal : NORMAL; float4 tangent : TANGENT; UNITY_INSTANCE_ID // This translates to uint instanceID : SV_InstanceID; }; So, instead of using Unity's macros, I explicitly declared the instance id and modified the semantic from SV_InstanceID to BLENDINDICES. With this modification I was able to access the correct MVP matrix (each instance has its own matrix) for each instance inside the domain shader. Code (CSharp): struct HS_ControlPointOutput { float4 pos : POS; float3 normal : NORMAL; float4 tangent : TANGENT; uint instanceID : BLENDINDICES; }; The second and currently unsolved problem I found was that I can't access instance unique properties inside the patchconstantfuncb function, even with the 'solution' above. For this reason I can't correctly define the amount of tessellation needed for each instance. Shouldn't tessellation and GPU instancing be compatible? Am I missing something?