I've read somewhere in this forum that constantly binding the texture every frame even if it doesn't change takes some performance hit i think.
In Jason Zink's graphics engine, his graphics pipeline layer has a state monitoring system that defers the actual binding of GPU resources until the time that's actually needed. The graphics pipeline layer allows the cpu code to bind and change as many resources as it wants in the current frame through caching the resources to be bound then evaluating it when its time to draw the mesh. Once the cpu calls DrawIndexed, the state monitoring system checks the cpu bounded resource and the actual resource that is currently bound in the gpu; It only binds the resource to the GPU if the state monitor detects different cached and GPU bound resources and binds those cached resources.
Edited by BrentChua, 26 August 2013 - 11:45 AM.