共用方式為


D3D10_QUERY列舉 (d3d10.h)

查詢類型。

Syntax

typedef enum D3D10_QUERY {
  D3D10_QUERY_EVENT = 0,
  D3D10_QUERY_OCCLUSION,
  D3D10_QUERY_TIMESTAMP,
  D3D10_QUERY_TIMESTAMP_DISJOINT,
  D3D10_QUERY_PIPELINE_STATISTICS,
  D3D10_QUERY_OCCLUSION_PREDICATE,
  D3D10_QUERY_SO_STATISTICS,
  D3D10_QUERY_SO_OVERFLOW_PREDICATE
} ;

常數

 
D3D10_QUERY_EVENT
值: 0
判斷 GPU 是否已完成處理命令。 當 GPU 完成處理命令時 ,GetData 會傳回S_OK,而 pData 會指向值為 TRUE 的 BOOL。 使用此類型的查詢時,會停用 Begin
D3D10_QUERY_OCCLUSION
取得 在 BeginEnd 之間通過深度和樣板測試的樣本數目。 GetData 會傳回 UINT64。 如果停用深度或樣板測試,則每個測試都會計算為通過。
D3D10_QUERY_TIMESTAMP
取得 GetData 傳回 UINT64 的時間戳值。 只有在D3D10_QUERY_TIMESTAMP_DISJOINT查詢中間完成兩個時間戳查詢時,這種查詢才有用。 兩個時間戳的差異可用來判斷已耗用多少刻度,而D3D10_QUERY_TIMESTAMP_DISJOINT查詢會判斷該差異是否為可靠值,也有一個值,顯示如何將刻度數轉換成秒數。 請參閱 D3D10_QUERY_DATA_TIMESTAMP_DISJOINT。 使用此類型的查詢時,會停用 Begin
D3D10_QUERY_TIMESTAMP_DISJOINT
判斷D3D10_QUERY_TIMESTAMP是否傳回可靠的值,同時也提供處理器的頻率,讓您能夠將經過的刻度數目轉換成秒數。 GetData 會傳回 D3D10_QUERY_DATA_TIMESTAMP_DISJOINT。 此類型的查詢應該只在每個畫面格或更少時叫用一次。
D3D10_QUERY_PIPELINE_STATISTICS
取得管線統計數據,例如 BeginEnd 之間的像素著色器調用數目。 GetData 會傳回 D3D10_QUERY_DATA_PIPELINE_STATISTICS
D3D10_QUERY_OCCLUSION_PREDICATE
與D3D10_QUERY_OCCLUSION類似, 除了 GetData 會傳回 BOOL,指出是否有任何樣本通過深度和樣板測試 - TRUE 表示至少通過一個, FALSE 表示未通過。
D3D10_QUERY_SO_STATISTICS
取得串流輸出統計數據,例如 在 BeginEnd 之間串流出的基本類型數目。 GetData 會傳回 D3D10_QUERY_DATA_SO_STATISTICS 結構。
D3D10_QUERY_SO_OVERFLOW_PREDICATE
判斷 Begin 和End 之間是否有任何串流輸出緩衝區溢位。 GetData 會傳回 BOOL - TRUE 表示發生溢位, FALSE 表示沒有溢位。 如果串流輸出寫入多個緩衝區,而其中一個緩衝區溢位,則會停止寫入所有輸出緩衝區。 當 Direct3D 偵測到溢位時,會防止發生 - 沒有記憶體損毀。 此預先定義可與SO_STATISTICS查詢搭配使用,如此一來,當發生溢位時,SO_STATISTIC查詢會讓應用程式知道需要多少記憶體來防止溢位。

規格需求

需求
標頭 d3d10.h

另請參閱

核心列舉