Imposing Requirements on the D3dDrawPrimitives2 DDI

The ability of a DirectX 9.0 version driver to handle asynchronous queries imposes two new requirements on the driver's D3dDrawPrimitives2 function. These requirements, which are mentioned in the Handling Asynchronous Queries topic, are summarized in the following list:

  • The driver's D3dDrawPrimitives2 function must ensure that it can process empty command buffers because the runtime might submit them so that the driver can write more responses. The runtime submits empty command buffers in the incoming command stream if the driver previously returned the D3DDP2OP_RESPONSECONTINUE operation code in the response buffer.

  • On success of D3dDrawPrimitives2 (ddrval of the D3DHAL_DRAWPRIMITIVES2DATA structure set to D3D_OK), the driver must ensure that it only sets the dwErrorOffset member of D3DHAL_DRAWPRIMITIVES2DATA to nonzero when responses are available. If the driver does not respond to any queries and ddrval is D3D_OK, dwErrorOffset must be set to zero.