ai自主改之前

This commit is contained in:
2026-08-24 13:12:57 +08:00
parent cb9822074b
commit ca6d8f8e79
45 changed files with 996 additions and 613 deletions
+10 -1
View File
@@ -67,7 +67,15 @@ TEST(Render_3D_Scene, Paint_Submits_Without_Waiting_For_Gpu) {
Frame_3D unchanged_frame{Frame_Identity{2, 0}};
Frame_3D exchanged_unchanged_frame{Frame_Identity{3, 0}};
Frame_3D* completed_frame{};
scene->set_frame_callback([&](Frame_3D* value) { completed_frame = value; frame_ready.store(true, std::memory_order_release); });
std::atomic_size_t completion_calls{};
scene->completion_taskflow().emplace([&] {
completion_calls.fetch_add(1, std::memory_order_release);
}).name("test.scene_3d.completion");
scene->set_frame_callback([&](Frame_3D* value) {
EXPECT_GT(completion_calls.load(std::memory_order_acquire), 0u);
completed_frame = value;
frame_ready.store(true, std::memory_order_release);
});
const auto started = std::chrono::steady_clock::now();
EXPECT_EQ(scene->render(&frame), Render_Scene_3D::Render_Result::submitted);
const auto submit_duration = std::chrono::steady_clock::now() - started;
@@ -86,6 +94,7 @@ TEST(Render_3D_Scene, Paint_Submits_Without_Waiting_For_Gpu) {
EXPECT_EQ(scene->render(&exchanged_unchanged_frame), Render_Scene_3D::Render_Result::submitted);
for (std::size_t attempt = 0; attempt != 500 && !frame_ready.load(std::memory_order_acquire); ++attempt) std::this_thread::sleep_for(std::chrono::milliseconds(10));
EXPECT_EQ(completed_frame, &exchanged_unchanged_frame);
EXPECT_EQ(completion_calls.load(std::memory_order_acquire), 3u);
EXPECT_TRUE(std::ranges::equal(unchanged_frame.pixels(), exchanged_unchanged_frame.pixels()));
}
catch (const std::exception& error) {