修复若干问题

This commit is contained in:
2026-08-15 02:51:11 +08:00
parent 282768e0ea
commit 04a9156cd6
25 changed files with 631 additions and 176 deletions
+13 -2
View File
@@ -59,7 +59,8 @@ inline Json metrics_json(const Node_Execution_Metrics& metrics) {
"primitive_count", "queue_wait_ns", "apply_duration_ns",
"plan_emit_duration_ns", "backend_execute_duration_ns",
"submit_duration_ns", "gpu_fence_wait_ns",
"gpu_render_duration_ns", "gpu_copy_duration_ns",
"gpu_render_duration_ns", "gpu_transition_duration_ns",
"gpu_copy_duration_ns", "gpu_total_duration_ns",
"readback_duration_ns", "backend_resource_version",
"backend_frame_index", "backend_artifact_status",
"backend_validation_code", "backend_validation_command",
@@ -147,6 +148,11 @@ inline Json plan_json(const Scene_Base& scene, const Render_Plan& plan) {
inline Json execution_json(const Node_Execution& execution,
const Frame_Snapshot& frame) {
Json attachments = Json::array();
for (const auto& attachment : execution.attachments) {
attachments.push_back({{"type", attachment.type},
{"content", attachment.content}});
}
return {
{"node_id", execution.node_id},
{"ready_time_ns", execution.ready_time_ns},
@@ -172,7 +178,8 @@ inline Json execution_json(const Node_Execution& execution,
{"external_duration_ns", execution.external_duration_ns()},
{"worker_id", execution.worker_id},
{"status", execution_status(execution.status)},
{"metrics", metrics_json(execution.metrics)}
{"metrics", metrics_json(execution.metrics)},
{"attachments", std::move(attachments)}
};
}
@@ -240,6 +247,10 @@ inline Json node_statistics_json(const Node_Statistics& statistics) {
{"p99_ns", statistics.p99_ns},
{"minimum_ns", statistics.minimum_ns},
{"maximum_ns", statistics.maximum_ns},
{"average_cpu_ns", statistics.average_cpu_ns},
{"average_external_ns", statistics.average_external_ns},
{"p95_cpu_ns", statistics.p95_cpu_ns},
{"p95_external_ns", statistics.p95_external_ns},
{"critical_path_frequency", statistics.critical_path_frequency},
{"average_scheduler_wait_ns", statistics.average_scheduler_wait_ns}
};
+5
View File
@@ -551,6 +551,7 @@ TEST(RenderiveWebGallery, PerformanceCaptureReturnsPlanFrameAnalysisAndStatistic
EXPECT_TRUE(execution.contains("end_time_ns"));
EXPECT_TRUE(execution.contains("worker_id"));
EXPECT_TRUE(execution.contains("status"));
EXPECT_TRUE(execution.contains("attachments"));
const auto& analysis = frame.at("analysis");
EXPECT_TRUE(analysis.contains("critical_path"));
EXPECT_TRUE(analysis.contains("parallel_overlap_ns"));
@@ -570,6 +571,10 @@ TEST(RenderiveWebGallery, PerformanceCaptureReturnsPlanFrameAnalysisAndStatistic
EXPECT_TRUE(statistic.contains("p50_ns"));
EXPECT_TRUE(statistic.contains("p95_ns"));
EXPECT_TRUE(statistic.contains("p99_ns"));
EXPECT_TRUE(statistic.contains("average_cpu_ns"));
EXPECT_TRUE(statistic.contains("average_external_ns"));
EXPECT_TRUE(statistic.contains("p95_cpu_ns"));
EXPECT_TRUE(statistic.contains("p95_external_ns"));
EXPECT_TRUE(statistic.contains("critical_path_frequency"));
EXPECT_TRUE(statistic.contains("average_scheduler_wait_ns"));
}