AMD GPU Services (AGS)
|
API for dispatching multiple instanced draw commands. The multi draw indirect extensions allow multiple sets of DrawInstancedIndirect to be submitted in one API call. The draw calls are issued on the GPU's command processor (CP), potentially saving the significant CPU overheads incurred by submitting the equivalent draw calls on the CPU. More...
Functions | |
AMD_AGS_API AGSReturnCode | agsDriverExtensionsDX11_MultiDrawInstancedIndirect (AGSContext *context, ID3D11DeviceContext *dxContext, unsigned int drawCount, ID3D11Buffer *pBufferForArgs, unsigned int alignedByteOffsetForArgs, unsigned int byteStrideForArgs) |
Function used to submit a batch of draws via MultiDrawIndirect. More... | |
AMD_AGS_API AGSReturnCode | agsDriverExtensionsDX11_MultiDrawIndexedInstancedIndirect (AGSContext *context, ID3D11DeviceContext *dxContext, unsigned int drawCount, ID3D11Buffer *pBufferForArgs, unsigned int alignedByteOffsetForArgs, unsigned int byteStrideForArgs) |
Function used to submit a batch of draws via MultiDrawIndirect. More... | |
AMD_AGS_API AGSReturnCode | agsDriverExtensionsDX11_MultiDrawInstancedIndirectCountIndirect (AGSContext *context, ID3D11DeviceContext *dxContext, ID3D11Buffer *pBufferForDrawCount, unsigned int alignedByteOffsetForDrawCount, ID3D11Buffer *pBufferForArgs, unsigned int alignedByteOffsetForArgs, unsigned int byteStrideForArgs) |
Function used to submit a batch of draws via MultiDrawIndirect. More... | |
AMD_AGS_API AGSReturnCode | agsDriverExtensionsDX11_MultiDrawIndexedInstancedIndirectCountIndirect (AGSContext *context, ID3D11DeviceContext *dxContext, ID3D11Buffer *pBufferForDrawCount, unsigned int alignedByteOffsetForDrawCount, ID3D11Buffer *pBufferForArgs, unsigned int alignedByteOffsetForArgs, unsigned int byteStrideForArgs) |
Function used to submit a batch of draws via MultiDrawIndirect. More... | |
API for dispatching multiple instanced draw commands. The multi draw indirect extensions allow multiple sets of DrawInstancedIndirect to be submitted in one API call. The draw calls are issued on the GPU's command processor (CP), potentially saving the significant CPU overheads incurred by submitting the equivalent draw calls on the CPU.
The extension allows the following code:
To be replaced by the following call:
The buffer used for the indirect args must be of the following formats:
Example usage can be seen in AMD's GeometryFX (https://github.com/GPUOpen-Effects/GeometryFX). In particular, in this file: https://github.com/GPUOpen-Effects/GeometryFX/blob/master/amd_geometryfx/src/AMD_GeometryFX_Filtering.cpp
AMD_AGS_API AGSReturnCode agsDriverExtensionsDX11_MultiDrawIndexedInstancedIndirect | ( | AGSContext * | context, |
ID3D11DeviceContext * | dxContext, | ||
unsigned int | drawCount, | ||
ID3D11Buffer * | pBufferForArgs, | ||
unsigned int | alignedByteOffsetForArgs, | ||
unsigned int | byteStrideForArgs | ||
) |
Function used to submit a batch of draws via MultiDrawIndirect.
[in] | context | Pointer to a context. |
[in] | dxContext | Pointer to the DirectX device context. If this is to work using the non-immediate context, then you need to check support. If nullptr is specified, then the immediate context is assumed. |
[in] | drawCount | The number of draws. |
[in] | pBufferForArgs | The args buffer. |
[in] | alignedByteOffsetForArgs | The offset into the args buffer. |
[in] | byteStrideForArgs | The per element stride of the args buffer. |
AMD_AGS_API AGSReturnCode agsDriverExtensionsDX11_MultiDrawIndexedInstancedIndirectCountIndirect | ( | AGSContext * | context, |
ID3D11DeviceContext * | dxContext, | ||
ID3D11Buffer * | pBufferForDrawCount, | ||
unsigned int | alignedByteOffsetForDrawCount, | ||
ID3D11Buffer * | pBufferForArgs, | ||
unsigned int | alignedByteOffsetForArgs, | ||
unsigned int | byteStrideForArgs | ||
) |
Function used to submit a batch of draws via MultiDrawIndirect.
[in] | context | Pointer to a context. |
[in] | dxContext | Pointer to the DirectX device context. If this is to work using the non-immediate context, then you need to check support. If nullptr is specified, then the immediate context is assumed. |
[in] | pBufferForDrawCount | The draw count buffer. |
[in] | alignedByteOffsetForDrawCount | The offset into the draw count buffer. |
[in] | pBufferForArgs | The args buffer. |
[in] | alignedByteOffsetForArgs | The offset into the args buffer. |
[in] | byteStrideForArgs | The per element stride of the args buffer. |
AMD_AGS_API AGSReturnCode agsDriverExtensionsDX11_MultiDrawInstancedIndirect | ( | AGSContext * | context, |
ID3D11DeviceContext * | dxContext, | ||
unsigned int | drawCount, | ||
ID3D11Buffer * | pBufferForArgs, | ||
unsigned int | alignedByteOffsetForArgs, | ||
unsigned int | byteStrideForArgs | ||
) |
Function used to submit a batch of draws via MultiDrawIndirect.
[in] | context | Pointer to a context. |
[in] | dxContext | Pointer to the DirectX device context. If this is to work using the non-immediate context, then you need to check support. If nullptr is specified, then the immediate context is assumed. |
[in] | drawCount | The number of draws. |
[in] | pBufferForArgs | The args buffer. |
[in] | alignedByteOffsetForArgs | The offset into the args buffer. |
[in] | byteStrideForArgs | The per element stride of the args buffer. |
AMD_AGS_API AGSReturnCode agsDriverExtensionsDX11_MultiDrawInstancedIndirectCountIndirect | ( | AGSContext * | context, |
ID3D11DeviceContext * | dxContext, | ||
ID3D11Buffer * | pBufferForDrawCount, | ||
unsigned int | alignedByteOffsetForDrawCount, | ||
ID3D11Buffer * | pBufferForArgs, | ||
unsigned int | alignedByteOffsetForArgs, | ||
unsigned int | byteStrideForArgs | ||
) |
Function used to submit a batch of draws via MultiDrawIndirect.
[in] | context | Pointer to a context. |
[in] | dxContext | Pointer to the DirectX device context. If this is to work using the non-immediate context, then you need to check support. If nullptr is specified, then the immediate context is assumed. |
[in] | pBufferForDrawCount | The draw count buffer. |
[in] | alignedByteOffsetForDrawCount | The offset into the draw count buffer. |
[in] | pBufferForArgs | The args buffer. |
[in] | alignedByteOffsetForArgs | The offset into the args buffer. |
[in] | byteStrideForArgs | The per element stride of the args buffer. |