|
|
@ -120,8 +120,8 @@ public: |
|
|
scheduler{scheduler_}, memory_allocator{memory_allocator_} { |
|
|
scheduler{scheduler_}, memory_allocator{memory_allocator_} { |
|
|
current_bank = nullptr; |
|
|
current_bank = nullptr; |
|
|
current_query = nullptr; |
|
|
current_query = nullptr; |
|
|
ammend_value = 0; |
|
|
|
|
|
acumulation_value = 0; |
|
|
|
|
|
|
|
|
amend_value = 0; |
|
|
|
|
|
accumulation_value = 0; |
|
|
queries_prefix_scan_pass = std::make_unique<QueriesPrefixScanPass>( |
|
|
queries_prefix_scan_pass = std::make_unique<QueriesPrefixScanPass>( |
|
|
device, scheduler, descriptor_pool, compute_pass_descriptor_queue); |
|
|
device, scheduler, descriptor_pool, compute_pass_descriptor_queue); |
|
|
|
|
|
|
|
|
@ -176,8 +176,8 @@ public: |
|
|
} |
|
|
} |
|
|
AbandonCurrentQuery(); |
|
|
AbandonCurrentQuery(); |
|
|
std::function<void()> func([this, counts = pending_flush_queries.size()] { |
|
|
std::function<void()> func([this, counts = pending_flush_queries.size()] { |
|
|
ammend_value = 0; |
|
|
|
|
|
acumulation_value = 0; |
|
|
|
|
|
|
|
|
amend_value = 0; |
|
|
|
|
|
accumulation_value = 0; |
|
|
}); |
|
|
}); |
|
|
rasterizer->SyncOperation(std::move(func)); |
|
|
rasterizer->SyncOperation(std::move(func)); |
|
|
accumulation_since_last_sync = false; |
|
|
accumulation_since_last_sync = false; |
|
|
@ -307,7 +307,7 @@ public: |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
ReplicateCurrentQueryIfNeeded(); |
|
|
ReplicateCurrentQueryIfNeeded(); |
|
|
std::function<void()> func([this] { ammend_value = acumulation_value; }); |
|
|
|
|
|
|
|
|
std::function<void()> func([this] { amend_value = accumulation_value; }); |
|
|
rasterizer->SyncOperation(std::move(func)); |
|
|
rasterizer->SyncOperation(std::move(func)); |
|
|
AbandonCurrentQuery(); |
|
|
AbandonCurrentQuery(); |
|
|
num_slots_used = 0; |
|
|
num_slots_used = 0; |
|
|
@ -512,7 +512,7 @@ private: |
|
|
pending_flush_queries.push_back(index); |
|
|
pending_flush_queries.push_back(index); |
|
|
std::function<void()> func([this, index] { |
|
|
std::function<void()> func([this, index] { |
|
|
auto* query = GetQuery(index); |
|
|
auto* query = GetQuery(index); |
|
|
query->value += GetAmmendValue(); |
|
|
|
|
|
|
|
|
query->value += GetAmendValue(); |
|
|
SetAccumulationValue(query->value); |
|
|
SetAccumulationValue(query->value); |
|
|
Free(index); |
|
|
Free(index); |
|
|
}); |
|
|
}); |
|
|
@ -1169,7 +1169,7 @@ struct QueryCacheRuntimeImpl { |
|
|
primitives_succeeded_streamer( |
|
|
primitives_succeeded_streamer( |
|
|
static_cast<size_t>(QueryType::StreamingPrimitivesSucceeded), runtime, tfb_streamer, |
|
|
static_cast<size_t>(QueryType::StreamingPrimitivesSucceeded), runtime, tfb_streamer, |
|
|
cpu_memory_), |
|
|
cpu_memory_), |
|
|
primitives_needed_minus_suceeded_streamer( |
|
|
|
|
|
|
|
|
primitives_needed_minus_succeeded_streamer( |
|
|
static_cast<size_t>(QueryType::StreamingPrimitivesNeededMinusSucceeded), runtime, 0u), |
|
|
static_cast<size_t>(QueryType::StreamingPrimitivesNeededMinusSucceeded), runtime, 0u), |
|
|
hcr_setup{}, hcr_is_set{}, is_hcr_running{}, maxwell3d{} { |
|
|
hcr_setup{}, hcr_is_set{}, is_hcr_running{}, maxwell3d{} { |
|
|
|
|
|
|
|
|
@ -1208,7 +1208,7 @@ struct QueryCacheRuntimeImpl { |
|
|
SamplesStreamer sample_streamer; |
|
|
SamplesStreamer sample_streamer; |
|
|
TFBCounterStreamer tfb_streamer; |
|
|
TFBCounterStreamer tfb_streamer; |
|
|
PrimitivesSucceededStreamer primitives_succeeded_streamer; |
|
|
PrimitivesSucceededStreamer primitives_succeeded_streamer; |
|
|
VideoCommon::StubStreamer<QueryCacheParams> primitives_needed_minus_suceeded_streamer; |
|
|
|
|
|
|
|
|
VideoCommon::StubStreamer<QueryCacheParams> primitives_needed_minus_succeeded_streamer; |
|
|
|
|
|
|
|
|
std::vector<std::pair<VAddr, VAddr>> little_cache; |
|
|
std::vector<std::pair<VAddr, VAddr>> little_cache; |
|
|
std::vector<std::pair<VkBuffer, VkDeviceSize>> buffers_to_upload_to; |
|
|
std::vector<std::pair<VkBuffer, VkDeviceSize>> buffers_to_upload_to; |
|
|
@ -1433,7 +1433,7 @@ VideoCommon::StreamerInterface* QueryCacheRuntime::GetStreamerInterface(QueryTyp |
|
|
case QueryType::StreamingPrimitivesSucceeded: |
|
|
case QueryType::StreamingPrimitivesSucceeded: |
|
|
return &impl->primitives_succeeded_streamer; |
|
|
return &impl->primitives_succeeded_streamer; |
|
|
case QueryType::StreamingPrimitivesNeededMinusSucceeded: |
|
|
case QueryType::StreamingPrimitivesNeededMinusSucceeded: |
|
|
return &impl->primitives_needed_minus_suceeded_streamer; |
|
|
|
|
|
|
|
|
return &impl->primitives_needed_minus_succeeded_streamer; |
|
|
default: |
|
|
default: |
|
|
return nullptr; |
|
|
return nullptr; |
|
|
} |
|
|
} |
|
|
|