From a7f9ad5af6c825f2f609101f25cb4f5e90ae5f1f Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Wed, 18 Jun 2025 19:27:44 +0200 Subject: [PATCH] Fix #140527: Cycles CUDA + Vulkan animation render memory leak Missing call to free memory for graphics interop. Pull Request: https://projects.blender.org/blender/blender/pulls/140612 --- intern/cycles/device/cuda/graphics_interop.cpp | 5 ++++- intern/cycles/device/hip/graphics_interop.cpp | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/intern/cycles/device/cuda/graphics_interop.cpp b/intern/cycles/device/cuda/graphics_interop.cpp index b515884fec5..3ba4d6d5ae7 100644 --- a/intern/cycles/device/cuda/graphics_interop.cpp +++ b/intern/cycles/device/cuda/graphics_interop.cpp @@ -157,7 +157,10 @@ void CUDADeviceGraphicsInterop::free() cu_external_memory_ = nullptr; } - cu_external_memory_ptr_ = 0; + if (cu_external_memory_ptr_) { + cuda_device_assert(device_, cuMemFree(cu_external_memory_ptr_)); + cu_external_memory_ptr_ = 0; + } # ifdef _WIN32 if (vulkan_windows_handle_) { diff --git a/intern/cycles/device/hip/graphics_interop.cpp b/intern/cycles/device/hip/graphics_interop.cpp index 6fb198fb8ad..61bd1080986 100644 --- a/intern/cycles/device/hip/graphics_interop.cpp +++ b/intern/cycles/device/hip/graphics_interop.cpp @@ -105,7 +105,10 @@ void HIPDeviceGraphicsInterop::free() hip_graphics_resource_ = nullptr; } - hip_external_memory_ptr_ = 0; + if (hip_external_memory_ptr_) { + hip_device_assert(device_, hipFree(hip_external_memory_ptr_)); + hip_external_memory_ptr_ = 0; + } buffer_size_ = 0;