ClearVolume / mpicbg-knip-clearvolume

org.mpicbg.knip.clearvolume
2 stars 2 forks source link

Memory Leak #9

Open dietzc opened 9 years ago

dietzc commented 9 years ago

When loading one float image after the other (pretty big ones), I experience the following error:

ClearGLWindow: GLProfile[GL4bc/GL4bc.hw]
Platform: NVIDIA CUDA {vendor: NVIDIA Corporation, version: OpenCL 1.1 CUDA 4.2.1, profile: FULL_PROFILE, extensions: [cl_khr_byte_addressable_store, cl_khr_icd, cl_khr_gl_sharing, cl_nv_compiler_options, cl_nv_device_attribute_query, cl_nv_pragma_unroll]} 
    #device: GeForce GT 640 (NVIDIA CUDA) 
        *opencl version: OpenCL C 1.1  
        *driver version: 304.125 
        *max mem alloc size: 536690688 
        *global mem size: 2146762752 
        *max compute units: 2 
        *max clock freq: 901 
        *3d volume max width: 4096 
        *3d volume max height: 4096 
        *3d volume max depth: 4096 
        *isHostUnifiedMemory: false 
NVIDIA CUDA.GeForce GT 640 L48k/G 2047M mem with 2 compute units
GeForce GT 640 is best in platform NVIDIA CUDA
Found best device to be: GeForce GT 640 from platform NVIDIA CUDA
Device name:     GeForce GT 640 (NVIDIA CUDA) 
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at clearvolume.renderer.opencl.utils.JavaCLUtils.writeImage3D(JavaCLUtils.java:104)
    at clearvolume.renderer.opencl.OpenCLDevice.writeImage(OpenCLDevice.java:777)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.fillWithByteBuffer(OpenCLVolumeRenderer.java:376)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.prepareVolumeDataArray(OpenCLVolumeRenderer.java:205)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:154)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.init(ClearGLVolumeRenderer.java:504)
    at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:640)
    at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:662)
    at jogamp.opengl.GLAutoDrawableBase$1.run(GLAutoDrawableBase.java:429)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1275)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131)
    at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:675)
    at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:77)
    at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:449)
    at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:176)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)
Caused by: com.nativelibs4java.opencl.CLException$MemObjectAllocationFailure: MemObjectAllocationFailure (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at java.lang.Class.newInstance(Class.java:374)
    at com.nativelibs4java.opencl.CLException.error(CLException.java:302)
    at com.nativelibs4java.opencl.CLImage.write(CLImage.java:162)
    ... 21 more

Using ClearVolume from latest master.

fjug commented 9 years ago

Was this also happening before yesterday's update? I hope yes... but in case it worked before it would be nice to know...

royerloic commented 9 years ago

Are the images that you load all of the same dimensions? (width, height, depth )

dietzc commented 9 years ago

not the same dimensions and using todays master.