Метод ID3D10Asynchronous::GetData (d3d10.h)
Асинхронное получение данных из GPU.
Синтаксис
HRESULT GetData(
[out] void *pData,
[in] UINT DataSize,
[in] UINT GetDataFlags
);
Параметры
[out] pData
Тип: void*
Адрес памяти, в которую будут поступать данные. Если значение РАВНО NULL, GetData будет использоваться только для проверка состояния. Тип выходных данных зависит от типа асинхронного интерфейса. См. заметки.
[in] DataSize
Тип: UINT
Размер извлекаемых данных или 0. Это значение можно получить с помощью ID3D10Asynchronous::GetDataSize. Значение должно быть равно 0, если pData равно NULL.
[in] GetDataFlags
Тип: UINT
Необязательные флаги. Может иметь значение 0 или любое сочетание флагов, перечисляемых D3D10_ASYNC_GETDATA_FLAG.
Возвращаемое значение
Тип: HRESULT
Если эта функция завершается успешно, она возвращает S_OK. В противном случае возможны следующие возвращаемые значения:
- S_FALSE
- DXGI_ERROR_DEVICE_REMOVED
- DXGI_ERROR_INVALID_CALL
Комментарии
GetData извлекает данные, собранные между вызовами ID3D10Asynchronous::Begin и ID3D10Asynchronous::End. Для некоторых запросов требуется только вызов ID3D10Asynchronous::End . В этом случае данные, возвращаемые GetData , точны до последнего вызова ID3D10Asynchronous::End (см. интерфейс ID3D10Query).
Если DataSize имеет значение 0, GetData используется только для проверка состояния, в котором возвращаемое значение S_OK указывает, что данные доступны для передачи приложению, а возвращаемое значение S_FALSE указывает, что данные еще недоступны.
Недопустимо вызывать эту функцию для предиката, созданного с флагом D3D10_QUERY_MISCFLAG_PREDICATEHINT.
Если асинхронный интерфейс, вызывающий эту функцию, — id3D10Query Interface, то применяется следующая таблица.
Тип запроса | Тип выходных данных | Поддерживает метод Begin |
---|---|---|
D3D10_QUERY_EVENT | BOOL | NO |
D3D10_QUERY_OCCLUSION | UINT64 | YES |
D3D10_QUERY_TIMESTAMP | UINT64 | NO |
D3D10_QUERY_TIMESTAMP_DISJOINT | D3D10_QUERY_DATA_TIMESTAMP_DISJOINT | YES |
D3D10_QUERY_PIPELINE_STATISTICS | D3D10_QUERY_DATA_PIPELINE_STATISTICS | YES |
D3D10_QUERY_OCCLUSION_PREDICATE | BOOL | YES |
D3D10_QUERY_SO_STATISTICS | D3D10_QUERY_DATA_SO_STATISTICS | YES |
D3D10_QUERY_SO_OVERFLOW_PREDICATE | BOOL | YES |
Если асинхронным интерфейсом, вызывающим этот API, является интерфейс ID3D10Counter, применяется следующее.
Тип счетчика | Тип выходных данных | единиц(ы) |
---|---|---|
D3D10_COUNTER_GPU_IDLE | FLOAT32 | доля времени |
D3D10_COUNTER_VERTEX_PROCESSING | FLOAT32 | доля времени |
D3D10_COUNTER_GEOMETRY_PROCESSING | FLOAT32 | доля времени |
D3D10_COUNTER_PIXEL_PROCESSING | FLOAT32 | доля времени |
D3D10_COUNTER_OTHER_GPU_PROCESSING | FLOAT32 | доля времени |
D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION | FLOAT32 | доля теоретического максимума |
D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION | FLOAT32 | доля теоретического максимума |
D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION | FLOAT32 | доля теоретического максимума |
D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION | FLOAT32 | доля теоретического максимума |
D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION | FLOAT32 | доля теоретического максимума |
D3D10_COUNTER_VS_MEMORY_LIMITED | FLOAT32 | доля времени |
D3D10_COUNTER_VS_COMPUTATION_LIMITED | FLOAT32 | доля времени |
D3D10_COUNTER_GS_MEMORY_LIMITED | FLOAT32 | доля времени |
D3D10_COUNTER_GS_COMPUTATION_LIMITED | FLOAT32 | доля времени |
D3D10_COUNTER_PS_MEMORY_LIMITED | FLOAT32 | доля времени |
D3D10_COUNTER_PS_COMPUTATION_LIMITED | FLOAT32 | доля времени |
D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE | FLOAT32 | дробь |
D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE | FLOAT32 | дробь |
Значение, возвращаемое счетчиком D3D10_COUNTER_GPU_IDLE, D3D10_COUNTER_VERTEX_PROCESSING, D3D10_COUNTER_GEOMETRY_PROCESSING, D3D10_COUNTER_PIXEL_PROCESSING или D3D10_COUNTER_OTHER_GPU_PROCESSING, может отличаться в зависимости от количества параллельных счетчиков, существующих в карта видео, и эти значения можно интерпретировать с помощью следующей формулы:
Число параллельных счетчиков, доступных в карта видео, доступно в NumDetectableParallelUnits в D3D10_COUNTER_INFO, и его можно получить, вызвав ID3D10Device::CheckCounterInfo.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | d3d10.h |
Библиотека | D3D10.lib |