D3D11_QUERY列舉 (d3d11.h)

查詢類型。

Syntax

typedef enum D3D11_QUERY {
  D3D11_QUERY_EVENT = 0,
  D3D11_QUERY_OCCLUSION,
  D3D11_QUERY_TIMESTAMP,
  D3D11_QUERY_TIMESTAMP_DISJOINT,
  D3D11_QUERY_PIPELINE_STATISTICS,
  D3D11_QUERY_OCCLUSION_PREDICATE,
  D3D11_QUERY_SO_STATISTICS,
  D3D11_QUERY_SO_OVERFLOW_PREDICATE,
  D3D11_QUERY_SO_STATISTICS_STREAM0,
  D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0,
  D3D11_QUERY_SO_STATISTICS_STREAM1,
  D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1,
  D3D11_QUERY_SO_STATISTICS_STREAM2,
  D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2,
  D3D11_QUERY_SO_STATISTICS_STREAM3,
  D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3
} ;

常數

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

備註

使用 ID3D11Device::CreateQuery 建立查詢。

規格需求

需求
標頭 d3d11.h

另請參閱

核心列舉