The SDK documentation has a section on migrating to 11 that covers coming from both 9 and 10. There's also the D3D11 features page.
One of the single biggest changes in terms of API shape between 10 and 11 is that 11 moves a bunch of methods from the device itself to a new interface called a device context (ID3D11DeviceContext
specifically), in order to support the new multi-threading features.
Once you are aware of the change, though, it's quite easy to adapt to: where you would have in 10 called "someDevice->Draw()
" you will instead get the immediate context for the device and call "immediateContext->Draw()
."
The other big change is that the Effects API is pulled out of core and made an independent source distribution you must compile and link yourself. You may also notice some D3DX interfaces and functions that have been deprecated or removed.
Beyond that, there are a handful of new parameters to some functions and a handful of extra fields in structures, et cetera. For example, the buffer description object in 11 has an extra StructureByteStride
field that isn't in 10, and device creation involves passing feature level information. Plus there are the obvious and aforementioned changes in interface names (10s replaced with 11s).