diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-11 19:02:54 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-11 19:02:54 +0100 |
| commit | ba16f44c689e0bde3c50052c247c234029c9a816 (patch) | |
| tree | ac8dd17e84075fdc647f47fc498ca52ea26bbe86 | |
| parent | 46e0935ba3b241dcd0e965e492ef8fa270b537ea (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.cc | 1 | ||||
| -rw-r--r-- | tools/cnn_test.cc | 3 |
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]); |
