Original Post
In an early tech-demo of ours, we implemented a matrix stack by simply GetTransform() from the D3D device, multiply with current matrix, SetTransform(), when we try to pop matrix just SetTransform() with the old one. Because it is easy to use, this routine soon became heavily used throughout the whole app. So far we don't see much speed penalty, maybe because we only use it per-object, skeleton calculation has its own internal matrix update function. But I always wonder, is GetTransform() slow or does it cause a pipeline stall? P.S, we are not using pure device