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 取得 在 Begin 和 End 之間通過深度和樣板測試的樣本數目。 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 取得管線統計數據,例如 Begin 和 End 之間的像素著色器調用數目。 GetData 會傳回 D3D10_QUERY_DATA_PIPELINE_STATISTICS。 |
D3D10_QUERY_OCCLUSION_PREDICATE 與D3D10_QUERY_OCCLUSION類似, 除了 GetData 會傳回 BOOL,指出是否有任何樣本通過深度和樣板測試 - TRUE 表示至少通過一個, FALSE 表示未通過。 |
D3D10_QUERY_SO_STATISTICS 取得串流輸出統計數據,例如 在 Begin 和 End 之間串流出的基本類型數目。 GetData 會傳回 D3D10_QUERY_DATA_SO_STATISTICS 結構。 |
D3D10_QUERY_SO_OVERFLOW_PREDICATE 判斷 Begin 和End 之間是否有任何串流輸出緩衝區溢位。 GetData 會傳回 BOOL - TRUE 表示發生溢位, FALSE 表示沒有溢位。 如果串流輸出寫入多個緩衝區,而其中一個緩衝區溢位,則會停止寫入所有輸出緩衝區。 當 Direct3D 偵測到溢位時,會防止發生 - 沒有記憶體損毀。 此預先定義可與SO_STATISTICS查詢搭配使用,如此一來,當發生溢位時,SO_STATISTIC查詢會讓應用程式知道需要多少記憶體來防止溢位。 |
規格需求
需求 | 值 |
---|---|
標頭 | d3d10.h |