I am fairly new to DirectX and am going straight to DX11.
I know D3D10 included an effects framework (and D3D11 supplies the source you can build).
My question is, does Microsoft consider the effects framework to be the non-optimal solution? Is the alternative to this the binding and unbinding shaders and resources explicitly through the framework ?
I want to learn the proper way to do this, not the old (if it is, in fact considered out dated) way.
Right now I'm going to be running a compute shader per mip level to construct a data structure using the mip-maps of a texture. This means I need to have one compute shader for each mip level. Each shader must run after the previous mip level has been computed (the next coursest level depends on the previous, finer one). It seems the effects framework would be useful for this, but it could be done by looping through and explicitly setting shaders and dispatching.
I have no idea what Microsoft's stance on the effects framework is...either way it doesn't really matter, it's up to you to decide whether or not it's useful for your particular needs. In general the effects frameworks does some really common things, which includes compiling different permutations of shaders, setting device states, managing constant buffers and the individual variables in those constant buffers, and organizing those things in different files, techniques, and passes. If you don't use the effects framework, you're probably going to need to implement a lot of those things yourself. So if it does everything you need, then you might as well use it instead of making your own. If it doesn't do everything you need, then you'll either need to roll your own or extend it.