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를 사용하여 가져올 수 있습니다. pData가 NULL인 경우 0이어야 합니다.
[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 인터페이스인 경우 다음 표가 적용됩니다.
쿼리 유형 | 출력 데이터 형식 | Begin 메서드 지원 |
---|---|---|
D3D10_QUERY_EVENT | BOOL | 아니요 |
D3D10_QUERY_OCCLUSION | UINT64 | YES |
D3D10_QUERY_TIMESTAMP | UINT64 | 아니요 |
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 카운터에서 반환되는 값은 비디오 카드 있는 병렬 카운터 수에 따라 다를 수 있으며 이러한 값은 다음 수식으로 해석할 수 있습니다.
비디오 카드 있는 병렬 카운터 수는 D3D10_COUNTER_INFONumDetectableParallelUnits에서 사용할 수 있으며 ID3D10Device::CheckCounterInfo를 호출하여 검색할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | d3d10.h |
라이브러리 | D3D10.lib |