Stupid question or big performance gain?

Started by
1 comment, last by cozzie 11 years, 3 months ago
Just thought of something.
Say my shader sets some renderstates or sampler states, say texture filtering technique or alphablend setting. At runtime, will these states be set again and again for each processed vertex/pixel?

If so, wouldn't it be a great performance gain to set it on the device in my code (setrenderstate) once? assuming all upcoming draw calls in the shader use them.

(i also use the d3dxdonotsavestate flag in beginning my effects/ shaders)

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

Advertisement
You mean the effect framework, right? It simply sets the render or sampler state the same way you would (device->SetRenderState etc.), there's no magic behind it. It definitely doesn't set it per vertex/pixel ;)
You can do some optimizations if you do it manually (for example don't set a state to the same value it already has), but that's not directly related to your question, and the performance gain may be very small (if any).

Thanks, good to know.

And if were so, my FPS would probably be not as good as it is now (when I think of it again :))

Crealysm game & engine development: http://www.crealysm.com

Looking for a passionate, disciplined and structured producer? PM me

This topic is closed to new replies.

Advertisement