Skip to main content
gamedev.net
🔒 Locked

what is the software processing?

Started by firefire99 Nov 16, 2004 at 9:03 PM 5 replies 1.6k views
Original Post
firefire99
firefire99
I am beginer of directx.I want to know what is the software processing? If a app declare use software processing,it would not use vs & ps?
firefire99
firefire99
is this problem is too simple?
cow_in_the_well
cow_in_the_well
When you create the d3d device in software processing mode, it means no T&L (transform and lighting) will be performed on the hardware. So vertex shaders will run on the CPU (i'm not 100% certain how this affects pixel shaders, i THINK you just can't use them in SW mode...someone correct me if i'm wrong). Fixed function pixel pipeline will still be performed on hardware (ie. rasterization).

So always create the device with hardware processing if possible (fall back to sw if its not possible).

SW processing can be useful if you want to run vertex shaders on a non shader compatible card, as it runs on the cpu fastish (software pixel shaders are horribly slow).
superpig
superpig
Quote:
Original post by cow_in_the_well
(i'm not 100% certain how this affects pixel shaders, i THINK you just can't use them in SW mode...someone correct me if i'm wrong).
You're correct, you can't run pixel shaders on the CPU.
Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse
firefire99
firefire99
en,en,thank you
you mean if I declare SW.vertexprocessing,when I call drawprimitive,then the cpu will implement it,but the pixel processing will still on the gpu otherwise I also declare a SW. pixel rendering.
then I think ,if I use the cpu to draw,the program after the draw call would wait for the draw.on the other hand,if I draw vertex use gpu,the program those after draw call would not wait?
JanusFury
JanusFury
Quote:
Original post by firefire99
en,en,thank you
you mean if I declare SW.vertexprocessing,when I call drawprimitive,then the cpu will implement it,but the pixel processing will still on the gpu otherwise I also declare a SW. pixel rendering.
then I think ,if I use the cpu to draw,the program after the draw call would wait for the draw.on the other hand,if I draw vertex use gpu,the program those after draw call would not wait?
The program never waits for polygons to be drawn. Polygons are not usually drawn until you end your scene (in fact, in some cases they may not even be drawn then, some cards wait until a flip operation is initiated before drawing.)
superpig
superpig
Quote:
Original post by firefire99
then I think ,if I use the cpu to draw,the program after the draw call would wait for the draw.on the other hand,if I draw vertex use gpu,the program those after draw call would not wait?
I believe that software vertex processing tends to use a seperate thread, so no, it wouldn't wait for the draw call to finish. (If you've only got one CPU, then you'll find yourself sharing it with more stuff, but that's all handled transparently).
Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.