PIX speeds up my app

Started by
0 comments, last by iedoc 12 years, 2 months ago
Hello.

Yesterday I've encountered a weird problem while debugging my application in DirectX environment.
I was trying to render a big model (about 25-40k polys, 65550 verts, but I'm not sure right now).
It's been rendered even on completely empty scene, where I found horrible loss of fps. Previously, when I was rendering smaller
objects it wasn't harmful, but I suspect that all the things in my game give my card a nice performance shock.
Next thing I did was to run it on better graphics card, everything was ok until I faced the big model, which affected performance again.
It doesn't even matter whether the object is far far away or it's very close to the camera. I checked my particle system where I rendered around 60k polys at optimum distance (fillrate reasons) and I got much better results. Of course the closer the particles, the worst performance. But that damned model doesn't get into that rule.
The model itself has 2048 uv-texture (with no texturing i get same things) and is rendered with one DrawSubset call.
So, what does PIX say? It says that drawsubset calls drawindexedprimitive - so it's ok. I called drawindexedprimitive manually as well so I'm sure it doesn't use UP version.

Now the main question - when I'm running my app from PIX I get performance hit and the game behaves normal. When I'm in pure debug/release mode I get 5-6 fps (old graph card) while facing bigger model and suddenly while in PIX I get 16-17 fps I see no terrible drop downs.
Maybe someone know the relation of PIX and my app or some clues that could direct me to things that are messed up in my code.

Thanks for reading/answering!


SOLVED: Routine respoinsible for picking gave me a killing shot while intersecting huge meshes... Low poly mesh will be the solution.
Advertisement
I know this is solved already, but just the way you didn't mention picking until you solved it, and how you made it sound like a "constant" low frame rate is why i'll just quickly mention this. I'm sure you already know, but make sure you only go through your picking routine when a button is actually pressed or whatever. You don't need to call your picking routine every frame (in case that's what you were doing)

And one more thing, when using a high density mesh like you say, you should use a bounding volume, such as a low density mesh that you do calculations with like picking and collision detection so you don't have to check against every single triangle in the high density mesh

This topic is closed to new replies.

Advertisement