summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-11 19:02:54 +0100
committerskal <pascal.massimino@gmail.com>2026-02-11 19:02:54 +0100
commitba16f44c689e0bde3c50052c247c234029c9a816 (patch)
treeac8dd17e84075fdc647f47fc498ca52ea26bbe86
parent46e0935ba3b241dcd0e965e492ef8fa270b537ea (diff)
fix: Resolve WGPU threading crash in cnn_test
- Release queue reference after submit in texture_readback - Add final wgpuDevicePoll before cleanup to sync GPU work Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
-rw-r--r--src/gpu/texture_readback.cc1
-rw-r--r--tools/cnn_test.cc3
2 files changed, 4 insertions, 0 deletions
diff --git a/src/gpu/texture_readback.cc b/src/gpu/texture_readback.cc
index f3e4056..e25da9e 100644
--- a/src/gpu/texture_readback.cc
+++ b/src/gpu/texture_readback.cc
@@ -71,6 +71,7 @@ std::vector<uint8_t> read_texture_pixels(
wgpuQueueSubmit(queue, 1, &commands);
wgpuCommandBufferRelease(commands);
wgpuCommandEncoderRelease(encoder);
+ wgpuQueueRelease(queue); // Release the queue reference
// Wait for copy to complete before mapping
wgpuDevicePoll(device, true, nullptr);
diff --git a/tools/cnn_test.cc b/tools/cnn_test.cc
index 3c96800..4ce9637 100644
--- a/tools/cnn_test.cc
+++ b/tools/cnn_test.cc
@@ -525,6 +525,9 @@ int main(int argc, char** argv) {
}
}
+ // Wait for all GPU work to complete before cleanup
+ wgpuDevicePoll(device, true, nullptr);
+
// Cleanup
wgpuTextureViewRelease(intermediate_views[0]);
wgpuTextureViewRelease(intermediate_views[1]);