ai自主改之前
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user