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。 当 pDataNULL 时,必须为 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::BeginID3D11DeviceContext::End 之间收集的数据。 某些查询只需要调用 ID3D11DeviceContext::End ,在这种情况下 ,GetData 返回的数据在上次调用 ID3D11DeviceContext::End 之前是准确的。 有关只需要调用 ID3D11DeviceContext::End 的查询以及 GetData 为每个查询检索的数据类型的信息,请参阅 D3D11_QUERY

如果 DataSize 为 0,则 GetData 仅用于检查状态。

应用程序通过以下方式收集计数器数据:调用 ID3D11DeviceContext::Begin,发出一些图形命令,调用 ID3D11DeviceContext::End,然后调用 ID3D11DeviceContext::GetData 以获取有关 BeginEnd 调用之间所发生情况的数据。 有关性能计数器类型的信息,请参阅 D3D11_COUNTER

要求

要求
目标平台 Windows
标头 d3d11.h
Library D3D11.lib

另请参阅

ID3D11DeviceContext