Jump to content
  • Advertisement
  • entries
    316
  • comments
    485
  • views
    325062

Pipeline Testing

Sign in to follow this  
Jason Z

497 views

Implementing some small utilities for testing my rendering pipeline was actually easier than I thought it would be. All along I have had some basic statistics built into the renderer, like frames per second, triangles per frame, and draw primitive calls per frame.

These three pieces of data are used as the feedback from my pipeline tests. I didn't end up implementing all of the tests that I originally wanted, but I am happy with what I ended up with. Here's a quick list of the tests and how they are implemented. The first three are very similar to nVPerfHUD and the last is slightly different:

Frame Buffer Bandwidth Test
This one simply changes the frame buffer from 32 bit to 16 bit. It is only done at startup, but the change in framerate should be apparent if bandwidth is the problem.

Texture Bandwidth Test
This one substitutes a 2x2 texture on every call to set a texture in the renderer. This one was also pretty easy to implement by just adding a check for whether or not the test is active and forcing the texture if it is.

CPU Bound Test
This one simply inhibits all draw calls. Of course, the GPU is still clearing and presenting the back buffer/depth surface, but the bulk of the GPU work is disabled. If the framerate doesn't shoot up here, then the application must be CPU bound.

Shading Test
This test actually substitutes a particular effect with a very simple vertex and pixel shader combo. I allow enabling and disabling the test, as well as cycling through the effects. This allows a quick test of which effect is the current bottleneck.

The shading test is actually the most useful to me right now, since my test system is usually pixel shading bound. It is really nice to be able to quickly understand what performance implications there are for each effect and what the maximum benefit that can be achieved from changing it is.

I think this set of tests are good enough for now. Now I can continue adding dynamic lighting to Lunar Rift!
Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×

Important Information

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

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!