From 8886f5e3434e003238504dd82cfd44074d67e1e1 Mon Sep 17 00:00:00 2001 From: Giancarlo Devich Date: Fri, 16 Dec 2022 13:50:19 -0800 Subject: [PATCH] d3d12: Move query structs to header Also adds `fence_value` to `d3d12_query` to track which batch of work this query exists in and must be waited on. Part-of: --- src/gallium/drivers/d3d12/d3d12_query.cpp | 25 ------------------- src/gallium/drivers/d3d12/d3d12_query.h | 30 +++++++++++++++++++++++ 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/gallium/drivers/d3d12/d3d12_query.cpp b/src/gallium/drivers/d3d12/d3d12_query.cpp index 2d11cc36d32..90ef73c5a7a 100644 --- a/src/gallium/drivers/d3d12/d3d12_query.cpp +++ b/src/gallium/drivers/d3d12/d3d12_query.cpp @@ -34,31 +34,6 @@ #include -constexpr unsigned MAX_SUBQUERIES = 3; - -struct d3d12_query_impl { - ID3D12QueryHeap *query_heap; - unsigned curr_query, num_queries; - size_t query_size; - - D3D12_QUERY_TYPE d3d12qtype; - - pipe_resource *buffer; - unsigned buffer_offset; - - bool active; -}; - -struct d3d12_query { - struct threaded_query base; - enum pipe_query_type type; - - struct d3d12_query_impl subqueries[MAX_SUBQUERIES]; - - struct list_head active_list; - struct d3d12_resource *predicate; -}; - static unsigned num_sub_queries(unsigned query_type) { diff --git a/src/gallium/drivers/d3d12/d3d12_query.h b/src/gallium/drivers/d3d12/d3d12_query.h index 869bc49cc3e..b1801b015d0 100644 --- a/src/gallium/drivers/d3d12/d3d12_query.h +++ b/src/gallium/drivers/d3d12/d3d12_query.h @@ -24,6 +24,9 @@ #ifndef D3D12_QUERY_H #define D3D12_QUERY_H +#include "d3d12_common.h" +#include "d3d12_resource.h" + struct d3d12_context; void @@ -38,4 +41,31 @@ d3d12_validate_queries(struct d3d12_context *ctx); void d3d12_enable_predication(struct d3d12_context *ctx); +constexpr unsigned MAX_SUBQUERIES = 3; + +struct d3d12_query_impl { + ID3D12QueryHeap* query_heap; + unsigned curr_query, num_queries; + size_t query_size; + + D3D12_QUERY_TYPE d3d12qtype; + + pipe_resource* buffer; + unsigned buffer_offset; + + bool active; +}; + +struct d3d12_query { + struct threaded_query base; + enum pipe_query_type type; + + struct d3d12_query_impl subqueries[MAX_SUBQUERIES]; + + struct list_head active_list; + struct d3d12_resource* predicate; + + uint64_t fence_value; +}; + #endif