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::Begin 和 ID3D11DeviceContext::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::Begin 和 ID3D11DeviceContext::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::Begin 和 ID3D11DeviceContext::End之間串流出的基本類型數目。 ID3D11DeviceContext::GetData 會傳回 D3D11_QUERY_DATA_SO_STATISTICS 結構。 |
D3D11_QUERY_SO_OVERFLOW_PREDICATE 判斷 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之間是否有任何串流輸出緩衝區溢位。 ID3D11DeviceContext::GetData 會傳回 BOOL - TRUE 表示發生溢位, FALSE 表示沒有溢位。 如果串流輸出寫入多個緩衝區,而其中一個緩衝區溢位,則會停止寫入所有輸出緩衝區。 當 Direct3D 偵測到溢位時,會防止發生 - 沒有記憶體損毀。 此預先定義可與SO_STATISTICS查詢搭配使用,如此一來,當發生溢位時,SO_STATISTIC查詢會讓應用程式知道需要多少記憶體來防止溢位。 |
D3D11_QUERY_SO_STATISTICS_STREAM0 取得數據流 0 的串流輸出統計數據,例如 在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之間串流出的基本類型數目。 ID3D11DeviceContext::GetData 會傳回 D3D11_QUERY_DATA_SO_STATISTICS 結構。 |
D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0 判斷 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之間的數據流 0 輸出緩衝區是否溢位。 ID3D11DeviceContext::GetData 會傳回 BOOL - TRUE 表示發生溢位, FALSE 表示沒有溢位。 如果串流輸出寫入多個緩衝區,而其中一個緩衝區溢位,則會停止寫入所有輸出緩衝區。 當 Direct3D 偵測到溢位時,會防止發生 - 沒有記憶體損毀。 此預先定義可與SO_STATISTICS查詢搭配使用,如此一來,當發生溢位時,SO_STATISTIC查詢會讓應用程式知道需要多少記憶體來防止溢位。 |
D3D11_QUERY_SO_STATISTICS_STREAM1 取得數據流 1 的串流輸出統計數據,例如 在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之間串流出的基本類型數目。 ID3D11DeviceContext::GetData 會傳回 D3D11_QUERY_DATA_SO_STATISTICS 結構。 |
D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1 判斷數據流 1 輸出緩衝區是否在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之間溢位。 ID3D11DeviceContext::GetData 會傳回 BOOL - TRUE 表示發生溢位, FALSE 表示沒有溢位。 如果串流輸出寫入多個緩衝區,而其中一個緩衝區溢位,則會停止寫入所有輸出緩衝區。 當 Direct3D 偵測到溢位時,會防止發生 - 沒有記憶體損毀。 此預先定義可與SO_STATISTICS查詢搭配使用,如此一來,當發生溢位時,SO_STATISTIC查詢會讓應用程式知道需要多少記憶體來防止溢位。 |
D3D11_QUERY_SO_STATISTICS_STREAM2 取得數據流 2 的串流輸出統計數據,例如 在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之間串流出的基本類型數目。 ID3D11DeviceContext::GetData 會傳回 D3D11_QUERY_DATA_SO_STATISTICS 結構。 |
D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2 判斷 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之間的數據流 2 輸出緩衝區是否溢位。 ID3D11DeviceContext::GetData 會傳回 BOOL - TRUE 表示發生溢位, FALSE 表示沒有溢位。 如果串流輸出寫入多個緩衝區,而其中一個緩衝區溢位,則會停止寫入所有輸出緩衝區。 當 Direct3D 偵測到溢位時,會防止發生 - 沒有記憶體損毀。 此預先定義可與SO_STATISTICS查詢搭配使用,如此一來,當發生溢位時,SO_STATISTIC查詢會讓應用程式知道需要多少記憶體來防止溢位。 |
D3D11_QUERY_SO_STATISTICS_STREAM3 取得數據流 3 的串流輸出統計數據,例如 在 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之間串流出的基本類型數目。 ID3D11DeviceContext::GetData 會傳回 D3D11_QUERY_DATA_SO_STATISTICS 結構。 |
D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3 判斷 ID3D11DeviceContext::Begin 和 ID3D11DeviceContext::End 之間的數據流 3 輸出緩衝區是否溢位。 ID3D11DeviceContext::GetData 會傳回 BOOL - TRUE 表示發生溢位, FALSE 表示沒有溢位。 如果串流輸出寫入多個緩衝區,而其中一個緩衝區溢位,則會停止寫入所有輸出緩衝區。 當 Direct3D 偵測到溢位時,會防止發生 - 沒有記憶體損毀。 此預先定義可與SO_STATISTICS查詢搭配使用,如此一來,當發生溢位時,SO_STATISTIC查詢會讓應用程式知道需要多少記憶體來防止溢位。 |
備註
使用 ID3D11Device::CreateQuery 建立查詢。
規格需求
需求 | 值 |
---|---|
標頭 | d3d11.h |