Strange DirectX 11 Tessellation Performance (GTX 460)

Started by
3 comments, last by BenS1 13 years, 1 month ago
Hi

I've come across a strange performance problem in my graphics engine that I don't quite understand, so I was wondering if anyone else had any ideas?

Basically, my graphics engine renders a terrain which is broken down into segments. Each segment is rendered as a single quad and then I have a displacement map that I use in combination with teselation to increase the level of detail.

For debugging purposes I can manually increase/decrease the tessellation level via the keyboard.

Now to the strange bit...

When I run the engine I get a framerate of about 200fps. Then as I increase the tessellation level the framerate doesn't change much (A little but not much), then at some point, typically with a tessellation level of around 10.0, the framerate suddenly drops to around 2 - 4fps!

The exactly tessellation level that this occurs at varies. And if I lower the tessellation level the performance suddenly jumps back up again.

I'm only using about 300Mb of the graphics card RAM, out of the 2Gb it has available, so its not like there is any memory thrashing going on.

My CPU usage is low, so its nothing to do with that.

I just don't get why the performance suddenly falls off a cliff, instead of gradually reducing as the tessellation increases.

Another strange thing that happens sometimes is that the performance will fall off a cliff for 10 seconds or so and then suddenly the framerate will increase significantly, even though I've not changed anything at all in those 10 seconds.

I had been hoping to use tessellation factors right up to the max of 64, but I can't use more than 10 at the moment.

Any ideas?

Thanks
Ben
Advertisement
Here's my hypothesis:

For tessellation, instead of gradually decreasing the FPS, it's decreasing at the exponential rate. It's like dividing 1 square into 4 squares, for an increase of tessellation. 4 squares into 16 little squares for a second increase of tessellation. And so on. When calculating the squares at a given rate, if the squares continue to increase exponentially, FPS should drop from a slight decrease to a big jump down.

Try using VSync and see if refreshing at the same refresh rate as your monitor improves your problem.

Again, all of the above are my hypothesis.

Here's my hypothesis:

For tessellation, instead of gradually decreasing the FPS, it's decreasing at the exponential rate. It's like dividing 1 square into 4 squares, for an increase of tessellation. 4 squares into 16 little squares for a second increase of tessellation. And so on. When calculating the squares at a given rate, if the squares continue to increase exponentially, FPS should drop from a slight decrease to a big jump down.

Try using VSync and see if refreshing at the same refresh rate as your monitor improves your problem.

Again, all of the above are my hypothesis.


Hi Tom

I agree, I'd understand if the performance dropped off exponentially, but in this case its even worse than that. At a tessellation factor of say 9.9 I can have a framerate of 150fps and at 10.0 it might have a framerate of 2fps!

The actual drop in performance as a percentage should actually be greater when going from a tessellation factor of 1 to 2 than from 9 to 10 as from 1 to 2 you're doubling the number of triangles, whereas from 9 to 10 you're only adding about 19% more triangles.

Another strange thing is that the point that the performance falls of a cliff is at a slightly lower tessellation factor when viewing in wireframe than in solid (And lit).

Thanks
Ben
Try asking Nvidia about your problem. Have you updated your graphics card driver?

Try asking Nvidia about your problem. Have you updated your graphics card driver?


I'm using Nvidias Parallel NSight, which means I have to use a specific version of the display drivers and cannot update them, but they are only a few months old.

I might raise a support ticket with Nvidia once I've done a bit more investigation.

Thanks
Ben

This topic is closed to new replies.

Advertisement