Bryg wrote:
All true, I certainly didn't mean to sound authoritative on the subject, just sharing what worked for one guy. And trying to target a wider range of OS levels certainly puts more pressure on the coder. My priority list for the graphics portion of the engine was to support Win7 first, then WinXP, then 8.
Oh, your post is great as a return-on-experience, and oops, I hope too that my previous post was not giving the impression of an authoritative position!
Support things like WinXP is the kind of work I'm definitely not motivated to do, but glad to see that some people are still challenging this! From my little perspective, I hate so much the Direct3D9 API (mapping it in SharpDX was just a laborious job) and I love soo much Direct3D11 API that I would prefer to stay away from Direct3D9 (as well as OpenGL, but this is another story)!
Bryg wrote:
Re Effects11: I actually wrap the Effect11 object in an engine-specific "RenderEffect" wrapper with its own parameter application methods and Apply() method, so if I wasn't being lazy (i.e. not trying to target Win8 yet) it would just be an issue of changing the internal implementation to handle the specific Shader bytecodes/signatures/constant registers. It could also stand to buffer pipeline changes so a state change could be compared against existing parameters and skip any redundant steps.
Related to Direct3D11, Effects11, while still being a relatively a good framework is in fact not able to use efficiently Direct3D11 API. For example, It is not possible to share constant buffers between different effects, which can be problematic when you really want to control more closely constant buffers.
Bryg wrote:
Can I ask what in particular about D3D11 you feel is troublesome? I just view it as a superset of features that you build a graphics interface from by choosing the subset that works specifically for your project.
Oh, nothing troublesome. Just that all projects that are trying to bring a XNA API on top of D3D11 are going to limit a lot the features accessible (multithreading, geometry shaders, tesselations, compute shaders, indirect draw, structured buffer/unordered access...etc.). Though, I fully understand this from the perspective of targeting multiple platforms, specially when you have to deal with some devices with 9.1 feature level... But Direct3D11 is great to target device from 9.1 to 11.1 with the same subset API.
Bryg wrote:
I'm definitely exited about the toolkit's progress (I think I mentioned that in the post, if not it's somewhere recent) though it was good practice to try and implement something myself in the meantime. I'm willing to bet the efficiency of the toolkit will beat out my solution

That's great to implement your own stuff. Lots of people are just complaining about the lack of XNA, and don't want to put their hand in the dirty details behind the scene, but It is absolutely worth to do it. It's also forcing the respect to some project like XNA (or some more advanced engine), when you look at all the code required to provide a simple and efficient graphics API!
Bryg wrote:
And the Paradox engine looks amazing, great stuff!
Thanks!