   CreateInputLayout  makes no sense to me :(
  so in order to initialize a custom vertex format we call CreateInputLayout.  This function seems to depend on a single shader signature.  what if we are loading a model which needs more than one shader in order to render it?  I dont understand how this is supposed to work.  Any assistance is greatly appreciated.-Velik   
  it did just occur to me that I could store the shader signature pointers in a list, and in the mesh render loop, I could call CreateInputLayout over and over again... but that seems like it may not be performance friendly / or the correct way of using the function?   :/   ;  What I did was to have each shader create an input layout for each possible vertex format at startup. I have only a couple different vertex formats. It stores these in a vector. At render time, a mesh needs only to ask its current shader for the layout with the given vertex format index (a simple index into the vector). You don't want to be calling CreateInputLayout each frame.   ;  I see, so CreateInputLayout just creates an input to IASetInputLayout and the latter function is called every mesh render.  Awsome.  Thanks for your help jamby!  ;  got one more question about this.  CreateInputLayout take a signature from a specific pass.  so, for a single shader, if you have 3 passes, and a corresponding inputlayout, you have to create it 3 times for each pass?  I dont really understand why, since the InputLayout isnt changing?  I would think this signature should be at the technique or global level?-Velik;  It depends. If every pass uses a vertex shader with an identical input signature you need only one input layout as long as you feed the same vertex buffer structure every pass. But If your vertex shader input signatures are different you need an own input layout for every pass.   ;  ok, that makes sense now :)  thanks for your explanation ^_^   