diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gpu/sequence.cc | 10 | ||||
| -rw-r--r-- | src/tests/gpu/test_shader_assets.cc | 3 |
2 files changed, 6 insertions, 7 deletions
diff --git a/src/gpu/sequence.cc b/src/gpu/sequence.cc index 9de4133..783f3df 100644 --- a/src/gpu/sequence.cc +++ b/src/gpu/sequence.cc @@ -30,15 +30,14 @@ NodeRegistry::NodeRegistry(WGPUDevice device, int default_width, NodeRegistry::~NodeRegistry() { for (auto& [name, node] : nodes_) { + if (node.texture == nullptr) continue; // External view, not owned if (node.view) { wgpuTextureViewRelease(node.view); } for (auto& mip_view : node.mip_views) { wgpuTextureViewRelease(mip_view); } - if (node.texture) { - wgpuTextureRelease(node.texture); - } + wgpuTextureRelease(node.texture); } } @@ -108,6 +107,7 @@ void NodeRegistry::resize(int width, int height) { default_height_ = height; for (auto& [name, node] : nodes_) { + if (node.texture == nullptr) continue; // External view, not owned // Release old texture if (node.view) { wgpuTextureViewRelease(node.view); @@ -115,9 +115,7 @@ void NodeRegistry::resize(int width, int height) { for (auto& mip_view : node.mip_views) { wgpuTextureViewRelease(mip_view); } - if (node.texture) { - wgpuTextureRelease(node.texture); - } + wgpuTextureRelease(node.texture); // Recreate with new dimensions node.width = width; diff --git a/src/tests/gpu/test_shader_assets.cc b/src/tests/gpu/test_shader_assets.cc index 63f9b5d..084694d 100644 --- a/src/tests/gpu/test_shader_assets.cc +++ b/src/tests/gpu/test_shader_assets.cc @@ -62,7 +62,8 @@ int main() { {"@vertex", "vs_main", "@fragment", "fs_main"}); all_passed &= validate_shader(AssetId::ASSET_SHADER_PASSTHROUGH, "PASSTHROUGH", - {"@vertex", "vs_main", "@fragment", "fs_main"}); + {"#include \"render/fullscreen_uv_vs\"", "@fragment", + "fs_main"}); all_passed &= validate_shader( AssetId::ASSET_SHADER_ELLIPSE, "ELLIPSE", {"#include \"render/fullscreen_vs\"", "@fragment", "fs_main"}); |
