From 53187e2d930cf982a0bc7f99262586c6a8a0640a Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 21 Feb 2026 10:02:22 +0100 Subject: test: fix test_effect_base intermittent crashes and SIGTRAP - Fix stack-use-after-scope dangling reference by storing mutable GpuContext in WebGPUTestFixture. - Fix wgpuDevicePoll causing SIGTRAP and replace with target.read_pixels() to block for GPU teardown safely. - Fix WGPUCommandEncoder leak. --- src/tests/gpu/test_effect_base.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/tests/gpu/test_effect_base.cc') diff --git a/src/tests/gpu/test_effect_base.cc b/src/tests/gpu/test_effect_base.cc index 68aabe3..64e5fa4 100644 --- a/src/tests/gpu/test_effect_base.cc +++ b/src/tests/gpu/test_effect_base.cc @@ -164,9 +164,11 @@ static void test_sequence_render() { WGPUCommandBuffer commands = wgpuCommandEncoderFinish(encoder, nullptr); wgpuQueueSubmit(fixture.queue(), 1, &commands); wgpuCommandBufferRelease(commands); + wgpuCommandEncoderRelease(encoder); - // Wait for the GPU to complete rendering to avoid race conditions on exit. - wgpuDevicePoll(fixture.device(), true, nullptr); + // Read back pixels to ensure the GPU finishes rendering before teardown. + // This avoids intermittent crashes on shutdown. + target.read_pixels(); fprintf(stdout, " ✓ Sequence rendered without error\n"); } -- cgit v1.2.3