So I've been working on a graphics editor of sorts, and until recently, hadn't defined which driver type to use (so it defaulted to EDT_BURNINGSVIDEO). I've since decided that it's time to get an accelerated driver to be used instead, so I simply set SIrrlichtCreationParameters::DriverType to EDT_DIRECT3D9
Now, my application gets all sorts of strange graphical artifacts, so I've disabled various features to work on one at a time. The one I'm looking at right now is that I get the dreaded "Hall of Mirrors" effect, as if the frame buffer isn't being cleared between frames, but if I run my application in PIX, it renders properly!
Any ideas about why it is that this might be occurring?
Edit: Okay, so I found where the issue stems from: It comes from my rendering to multiple viewports on screen- after I'm done rendering to them all, I need to call IVideoDriver::setViewPort() and set it to the full screen again. I'm guessing this is because IVideoDriver::endScene() just calls up the current viewport to choose where it clears the frame buffer? That's the only thing I can think of anyways...
But still, I don't know why it worked properly in PIX and not when run normally...?
Inconsistant Hall of Mirrors issue
Compile against debug irrlicht and debug direct3d dlls. Crank the d3d9 debug output to max-1 (max may spam too much warning info) in the control panel applet and see if there's any clues in the output window.
Irrlicht Demos: http://irrlicht.sourceforge.net/forum/viewtopic.php?f=6&t=45781