I have stumbled on a problem while trying to use shader interface (dynamic linkage) with a deferred context.
From all the tests i did , i can only conclude that this is a DirectX 11 (or graphic card driver ?) bug when trying to replay a CommandList in which you have used classinstance and interface variables. It seems only the first class you set on an interface will be used throughout the execution of the list.
I tried it with both SlimDX and SharpDX and got the same behavior. I also examined the call sequence using PIX in which i can see that the interfaces are set to the correct classes during recording , but that makes little difference when it comes to ExecuteCommandList.
I attached the slimdx test project i did if anyone want to give it a try. It's based on MiniTri11 , and draws 2 extra triangles using deferredcontext and sets differect classes for the interface slot. It SHOULD draw a red , a blue and a gray triangle ... but both triangles end up red. ( try switching the order of 'iface.ClassInstance = b1;' and b2 and see that then they both end up blue.. )
If anyone has a solution for this it would be highly appreciated