ID3D11DeviceContext::GetData 方法 (d3d11.h)
从图形处理单元 (GPU) 异步获取数据。
语法
HRESULT GetData(
[in] ID3D11Asynchronous *pAsync,
[out, optional] void *pData,
[in] UINT DataSize,
[in] UINT GetDataFlags
);
参数
[in] pAsync
类型: ID3D11Asynchronous*
指向 GetData 检索数据的对象的 ID3D11Asynchronous 接口的指针。
[out, optional] pData
类型: void*
将接收数据的内存的地址。 如果为NULL,GetData 将仅用于检查状态。 数据输出的类型取决于异步接口的类型。
[in] DataSize
类型: UINT
要检索的数据的大小或 0。 当 pData 为 NULL 时,必须为 0。
[in] GetDataFlags
类型: UINT
可选标志。 可以是 0,也可以是 D3D11_ASYNC_GETDATA_FLAG枚举的标志的任意组合。
返回值
类型: HRESULT
此方法返回 Direct3D 11 返回代码之一。 返回值S_OK指示 pData 中的数据可供调用应用程序访问。 返回值 S_FALSE 指示数据尚不可用。 如果数据尚不可用,应用程序必须调用 GetData ,直到数据可用。
注解
延迟上下文中的查询仅限于谓词绘图。 也就是说,不能在延迟的上下文中调用 ID3D11DeviceContext::GetData 来获取有关查询的数据;只能在即时上下文中调用 GetData 来获取有关查询的数据。 对于谓词绘制,预测类型查询的结果由 GPU 使用,不会返回到应用程序。 有关谓词和谓词绘图的详细信息,请参阅 D3D11DeviceContext::SetPredication。
GetData 检索运行时在调用 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之间收集的数据。 某些查询只需要调用 ID3D11DeviceContext::End ,在这种情况下 ,GetData 返回的数据在上次调用 ID3D11DeviceContext::End 之前是准确的。 有关只需要调用 ID3D11DeviceContext::End 的查询以及 GetData 为每个查询检索的数据类型的信息,请参阅 D3D11_QUERY。
如果 DataSize 为 0,则 GetData 仅用于检查状态。
应用程序通过以下方式收集计数器数据:调用 ID3D11DeviceContext::Begin,发出一些图形命令,调用 ID3D11DeviceContext::End,然后调用 ID3D11DeviceContext::GetData 以获取有关 Begin 和 End 调用之间所发生情况的数据。 有关性能计数器类型的信息,请参阅 D3D11_COUNTER。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d11.h |
Library | D3D11.lib |