From 3530fcd7414ea24c8916adc1e490f71c02ac96f1 Mon Sep 17 00:00:00 2001 From: skal Date: Wed, 11 Feb 2026 19:34:34 +0100 Subject: fix: Release cached samplers before WGPU shutdown SamplerCache singleton never released samplers, causing device to retain references at shutdown. Add clear() method and call before fixture cleanup. Co-Authored-By: Claude Sonnet 4.5 --- tools/cnn_test.cc | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tools/cnn_test.cc') diff --git a/tools/cnn_test.cc b/tools/cnn_test.cc index 4ce9637..fa4394f 100644 --- a/tools/cnn_test.cc +++ b/tools/cnn_test.cc @@ -281,6 +281,7 @@ int main(int argc, char** argv) { WGPUTexture input_texture = load_texture(device, queue, args.input_path, &width, &height); if (!input_texture) { + SamplerCache::Get().clear(); fixture.shutdown(); return 1; } @@ -311,6 +312,7 @@ int main(int argc, char** argv) { if (pipeline_final) wgpuRenderPipelineRelease(pipeline_final); wgpuTextureViewRelease(input_view); wgpuTextureRelease(input_texture); + SamplerCache::Get().clear(); fixture.shutdown(); return 1; } @@ -448,6 +450,7 @@ int main(int argc, char** argv) { wgpuBindGroupLayoutRelease(bgl); wgpuRenderPipelineRelease(pipeline_final); wgpuRenderPipelineRelease(pipeline_intermediate); + SamplerCache::Get().clear(); fixture.shutdown(); return 1; } @@ -474,6 +477,7 @@ int main(int argc, char** argv) { wgpuBindGroupLayoutRelease(bgl); wgpuRenderPipelineRelease(pipeline_final); wgpuRenderPipelineRelease(pipeline_intermediate); + SamplerCache::Get().clear(); fixture.shutdown(); return 1; } @@ -540,6 +544,7 @@ int main(int argc, char** argv) { wgpuRenderPipelineRelease(pipeline_final); wgpuTextureViewRelease(input_view); wgpuTextureRelease(input_texture); + SamplerCache::Get().clear(); fixture.shutdown(); return 0; -- cgit v1.2.3