Small project to test DrawIndirect performances.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
DXUT
Timer
.gitattributes
.gitignore
DrawIndirect.cpp
DrawIndirect.fx
DrawIndirect.sln
DrawIndirect.suo
DrawIndirect.v11.suo
DrawIndirectPerformance.suo
README.md
Resource.h
Tutorial02.jpg
Tutorial02.rc
Tutorial02_2010.vcxproj
Tutorial02_2010.vcxproj.filters
Tutorial02_2010.vcxproj.user
directx.ico

README.md

This small project allow to test the performances of the drawIndirect function.

I made this because I noticed that an indirect draw call was slower than a regular one with the same parameters on my computer/graphic card.

It's just a tutorial from the directX samples modified so it can draw a large number of vertices and output the timing in the console.

You can comment the lines 426/427 to use a draw command or the other. You can change the number of vertices to draw by editing the line 44.

On my AMD R9 290 drivers 14.9 for 900 000 vertices:

DrawInstanced: 0.31ms DrawInstancedIndirect: 0.42ms

For 9 000 000 vertices:

DrawInstanced: 2.45ms DrawInstancedIndirect: 4.56ms

On my NVIDIA GT 630m:

For 900 000 vertices:

DrawInstanced:2.72ms DrawInstancedIndirect: 2.72ms

For 9 000 000 vertices:

DrawInstanced:26.87ms DrawInstancedIndirect: 26.87ms

I also tried on a GTX780 and there is no difference between DrawInstanced and DrawInstancedIndirect.

If you haves a clue on why the drawIndirect is slower on my AMD card I would be happy to hear it. Maybe something is wrong on my code, or on my computer, if you experience the same issue would be happy to add your results.