Jump to content
  • Advertisement
Sign in to follow this  
BenS1

Strange DirectX 11 Tessellation Performance (GTX 460)

This topic is 2756 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!