|
@@ -3858,6 +3858,8 @@ void RenderingDevice::draw_list_draw(DrawListID p_list, bool p_use_indices, uint
|
|
|
|
|
|
draw_graph.add_draw_list_draw(to_draw, p_instances);
|
|
|
}
|
|
|
+
|
|
|
+ dl->state.draw_count++;
|
|
|
}
|
|
|
|
|
|
void RenderingDevice::draw_list_enable_scissor(DrawListID p_list, const Rect2 &p_rect) {
|
|
@@ -4201,6 +4203,7 @@ void RenderingDevice::compute_list_dispatch(ComputeListID p_list, uint32_t p_x_g
|
|
|
}
|
|
|
|
|
|
draw_graph.add_compute_list_dispatch(p_x_groups, p_y_groups, p_z_groups);
|
|
|
+ cl->state.dispatch_count++;
|
|
|
}
|
|
|
|
|
|
void RenderingDevice::compute_list_dispatch_threads(ComputeListID p_list, uint32_t p_x_threads, uint32_t p_y_threads, uint32_t p_z_threads) {
|
|
@@ -4294,6 +4297,7 @@ void RenderingDevice::compute_list_dispatch_indirect(ComputeListID p_list, RID p
|
|
|
}
|
|
|
|
|
|
draw_graph.add_compute_list_dispatch_indirect(buffer->driver_id, p_offset);
|
|
|
+ cl->state.dispatch_count++;
|
|
|
|
|
|
if (buffer->draw_tracker != nullptr) {
|
|
|
draw_graph.add_compute_list_usage(buffer->draw_tracker, RDG::RESOURCE_USAGE_INDIRECT_BUFFER_READ);
|
|
@@ -5206,8 +5210,8 @@ void RenderingDevice::_free_rids(T &p_owner, const char *p_type) {
|
|
|
}
|
|
|
|
|
|
void RenderingDevice::capture_timestamp(const String &p_name) {
|
|
|
- ERR_FAIL_COND_MSG(draw_list != nullptr, "Capturing timestamps during draw list creation is not allowed. Offending timestamp was: " + p_name);
|
|
|
- ERR_FAIL_COND_MSG(compute_list != nullptr, "Capturing timestamps during compute list creation is not allowed. Offending timestamp was: " + p_name);
|
|
|
+ ERR_FAIL_COND_MSG(draw_list != nullptr && draw_list->state.draw_count > 0, "Capturing timestamps during draw list creation is not allowed. Offending timestamp was: " + p_name);
|
|
|
+ ERR_FAIL_COND_MSG(compute_list != nullptr && compute_list->state.dispatch_count > 0, "Capturing timestamps during compute list creation is not allowed. Offending timestamp was: " + p_name);
|
|
|
ERR_FAIL_COND(frames[frame].timestamp_count >= max_timestamp_query_elements);
|
|
|
|
|
|
draw_graph.add_capture_timestamp(frames[frame].timestamp_pool, frames[frame].timestamp_count);
|