Quick question about DirectX9 versus DirectX10.

Started by
1 comment, last by Zipster 16 years, 8 months ago
Thank you for your help. I have 2 quick questions about DirectX9 versus DirectX10. I am still trying to figure out all that DirectX10 will change as compared to DirectX 9. Ok, so it is my understanding that DirectX10 will completely do away with the fixed function pipeline and replace it with the programmable pipeline. Currently I am in the belief that that means that with DirectX10 there will be no setting device states/sampler states/SetTexture(...) etc. calls as all will be handled by shaders. As such I am in the belief that thinking long term with development, one should consider leaving those types of calls out and possibly relying entirely on shaders if applicable. Another question... If the fixed function pipeline is out does that mean effect files will no longer be able to use those capabilities as well? Thank you for your help. Jeremy
Advertisement
Quote:Original post by grill8
Thank you for your help.

I have 2 quick questions about DirectX9 versus DirectX10.

I am still trying to figure out all that DirectX10 will change as compared to DirectX 9.

Ok, so it is my understanding that DirectX10 will completely do away with the fixed function pipeline and replace it with the programmable pipeline.

Currently I am in the belief that that means that with DirectX10 there will be no setting device states/sampler states/SetTexture(...) etc. calls as all will be handled by shaders.

As such I am in the belief that thinking long term with development, one should consider leaving those types of calls out and possibly relying entirely on shaders if applicable.

Another question...
If the fixed function pipeline is out does that mean effect files will no longer be able to use those capabilities as well?

Thank you for your help.
Jeremy


You are setting states with state objects, where a lot of states are bunched together and set at the same time. So there is just as many states in DX10 as in DX9. You still need to set textures even though you don't need to hold reference to them. You are handling all resources (buffers, textures, render targets...) with views. When practically working with viewes they act much like the setup in DX9 but they are more effective and has a couple of extra features. You still need to send a bunch of calls from CPU->GPU in DX10 but with more efficiency.
Quote:Original post by grill8
Ok, so it is my understanding that DirectX10 will completely do away with the fixed function pipeline and replace it with the programmable pipeline.

Correct. All the features you have come to know and love such as T&L, fog, alpha testing, user clip planes, etc. will now have to be implemented in shader code. Check out FixedFuncEMU for more details.

Quote:Currently I am in the belief that that means that with DirectX10 there will be no setting device states/sampler states/SetTexture(...) etc. calls as all will be handled by shaders.

As such I am in the belief that thinking long term with development, one should consider leaving those types of calls out and possibly relying entirely on shaders if applicable.

You should certainly try to drive the state as much as possible through shaders IMO, however like many things it's application-dependent and there is no rule or single solution. You still have methods like OMSetBlendState, OMSetDepthStencilState, RSSetState, PSSetShaderResources, and others that allow you to set the various render states should you need to.

Quote:If the fixed function pipeline is out does that mean effect files will no longer be able to use those capabilities as well?

Correct, DX10 techniques (those labeled technique10) can't use any of the fixed-function capabilities and renderstates. I imagine you'd either get a compiler error or at the very least a deprecation warning.

This topic is closed to new replies.

Advertisement