ID3D10Device::DrawAuto method (d3d10.h)

Draw geometry of an unknown size that was created by the geometry shader stage. See remarks.


void DrawAuto();

Return value



A draw API submits work to the rendering pipeline.

After data has been streamed out to SO stage buffers, those buffers can be again bound to the Input Assembler stage at input slot 0 and DrawAuto will draw them without the application needing to know the amount of data that was written to the buffers. A measurement of the amount of data written to the SO stage buffers is maintained internally when the data is streamed out. This means that the CPU does not need to fetch the measurement before re-binding the data that was streamed as input data. Although this amount is tracked internally, it is still the responsibility of applications to use input layouts to describe the format of the data in the SO stage buffers so that the layouts are available when the buffers are again bound to the input assembler.

The following diagram shows the DrawAuto process.

Diagram of DrawAuto as data moves through several stages to a buffer and then back to the Input Assembler stage

Calling DrawAuto does not change the state of the streaming-output buffers that were bound again as inputs.

DrawAuto only works when drawing with one input buffer bound as an input to the IA stage at slot 0. Applications must create the SO buffer resource with both binding flags, D3D10_BIND_VERTEX_BUFFER and D3D10_BIND_STREAM_OUTPUT.

This API does not support indexing or instancing.

If an application needs to retrieve the size of the streaming-output buffer, it can query for statistics on streaming output by using D3D10_QUERY_SO_STATISTICS.

Example of using DrawAuto can be found in the ParticlesGS Sample and PipesGS Sample.


Target Platform Windows
Header d3d10.h
Library D3D10.lib

See also

ID3D10Device Interface