Lack Of Performance: What might i by doing wrong?

Started by
24 comments, last by dave 18 years, 6 months ago
Yes the only thing i am doing is setting the sources and calling the DIP. I don't recall any such debug messages from DirectX. The debug output was one of the first things i checked. I do get 2 or 3 redundent renderstate changes per frame, nothing to be concerned with.

I am running this on an Athlon64 3800+ 1GB ram and Radeon 9700pro, so no real chokers there.

Anything else?

Thanks BTW! [smile]

I apologise for not being able to post code but i am writing an engine and we all know how large the code gets.

ace

EDIT: new post - anything that involved std::vector was done before the main loop. I'm just thinking i might load up the simple cylinder sdk example and large up the dIP calls etc and see how teh FPS drops.
Advertisement
A few things I'd like to add:

- If you have any doubt of a CPU bottleneck, use a profiler to make sure nothing is taking too long. This should be easy. (you just don't sound real sure theres not CPU problem).

- Try increasing and decreasing the VS and PS (or pipelines, if you're using the FFP) demand. Add more or less texture lookups, and remove or add lighting, lights and such for vertex pipeline. This will help determine which part of the pipeline is under stress, and limiting your performance.

- Try making the triangles smaller (zoom out with the camera). This could make a HUGE difference, especially if you are currently drawing many pixels. Try limiting overdraw somehow, maybe even sorting front to back if you have the time to implement it. If zooming out increases your performance significantly, you're simply maxing out the pixel pipeline.

Hope this helps :).

[Edited by - sirob on October 11, 2005 12:19:30 PM]
Sirob Yes.» - status: Work-O-Rama.
Use the ATI PIX plugin to check your throughput.
Ace, if you really want, I would be more than happy to give you some nice timing code. That way you can keep track of your exact fps, and a few other nice details. Just PM me.
How are you rebuilding your vertexbuffer/indexbuffer, are you using the correct flags, dynamic|discard|readonly whatever...

It might be better to sort by texture then material... though maybe not.
Insufficent Information: we need more infromationhttp://staff.samods.org/aiursrage2k/
Sorry it's been so long since this reply, i havn't had to come into uni for the past few days and i don't have the net at home.

I have done a little investigation into the problem. The bottleneck is the DIP call and what i am passing to it. I was rendering everything in triangle lists, with triangle strips the performance is significantly better, about twice as fast. I set every render state 100 times instead of once and that became the bottleneck, but it wasn't so bad as the rendering FPS drop.

There was also 1 warning that i hadn't seen before regarding the creation of the static vertex buffer and how there may be a sever performance penalty.

Thanks for all your help,

rate++

ace

This topic is closed to new replies.

Advertisement