ID3D11Query interface (d3d11.h)

A query interface queries information from the GPU.


The ID3D11Query interface inherits from ID3D11Asynchronous. ID3D11Query also has these types of members:


The ID3D11Query interface has these methods.


Get a query description. (ID3D11Query.GetDesc)


A query can be created with ID3D11Device::CreateQuery.

Query data is typically gathered by issuing an ID3D11DeviceContext::Begin command, issuing some graphics commands, issuing an ID3D11DeviceContext::End command, and then calling ID3D11DeviceContext::GetData to get data about what happened in between the Begin and End calls. The data returned by GetData will be different depending on the type of query.

There are, however, some queries that do not require calls to Begin. For a list of possible queries see D3D11_QUERY.

A query is typically executed as shown in the following code:

D3D11_QUERY_DESC queryDesc;
... // Fill out queryDesc structure
ID3D11Query * pQuery;
pDevice->CreateQuery(&queryDesc, &pQuery);

... // Issue graphics commands

UINT64 queryData; // This data type is different depending on the query type

while( S_OK != pDeviceContext->GetData(pQuery, &queryData, sizeof(UINT64), 0) )

When using a query that does not require a call to Begin, it still requires a call to End. The call to End causes the data returned by GetData to be accurate up until the last call to End.


Requirement Value
Minimum supported client Windows 7 [desktop apps | UWP apps]
Minimum supported server Windows Server 2008 R2 [desktop apps | UWP apps]
Target Platform Windows
Header d3d11.h

See also

Core Interfaces