Метод ID3D11DeviceContext::GetData (d3d11.h)
Асинхронное получение данных из графического блока обработки (GPU).
Синтаксис
HRESULT GetData(
[in] ID3D11Asynchronous *pAsync,
[out, optional] void *pData,
[in] UINT DataSize,
[in] UINT GetDataFlags
);
Параметры
[in] pAsync
Тип: ID3D11Asynchronous*
Указатель на интерфейс ID3D11Asynchronous для объекта, о котором GetData извлекает данные.
[out, optional] pData
Тип: void*
Адрес памяти, в которую будут поступать данные. Если значение NULL, GetData будет использоваться только для проверка состояния. Тип выходных данных зависит от типа асинхронного интерфейса.
[in] DataSize
Тип: UINT
Размер извлекаемых данных или 0. Значение должно иметь значение 0, если pData имеет значение NULL.
[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 |
Header | d3d11.h |
Библиотека | D3D11.lib |