ClearVolume / clearvolume

ClearVolume is a real-time live 3D visualization library designed for high-end volumetric microscopes such as SPIM and DLSM microscopes. With ClearVolume you can see live on your screen the stacks acquired by your microscope instead of waiting for offline post-processing to give you an intuitive and comprehensive view on your data.
http://clearvolume.github.io
GNU Lesser General Public License v3.0
43 stars 11 forks source link

Texture allocation issue? #38

Closed kephale closed 8 years ago

kephale commented 8 years ago

Although there is some similarity in the content to https://github.com/ClearVolume/ClearVolume/issues/26 this seems like it might be more of a JOGL issue? Note that I've been playing with the jogl-java3d of 3D_viewer, but this happened with a fresh FIJI as well.

Platform: Apple {vendor: Apple, version: OpenCL 1.2 (May 10 2015 19:38:45), profile: FULL_PROFILE, extensions: [cl_APPLE_SetMemObjectDestructor, cl_APPLE_ContextLoggingFunctions, cl_APPLE_clut, cl_APPLE_query_kernel_names, cl_APPLE_gl_sharing, cl_khr_gl_event]}

device: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz (Apple)

    *opencl version: OpenCL C 1.2  
    *driver version: 1.1 
    *max mem alloc size: 4294967296 
    *global mem size: 17179869184 
    *max compute units: 8 
    *max clock freq: 2600 
    *3d volume max width: 2048 
    *3d volume max height: 2048 
    *3d volume max depth: 2048 
    *isHostUnifiedMemory: true 
#device: HD Graphics 4000 (Apple) 
    *opencl version: OpenCL C 1.2  
    *driver version: 1.2(Jul 29 2015 02:40:37) 
    *max mem alloc size: 268435456 
    *global mem size: 1073741824 
    *max compute units: 16 
    *max clock freq: 1250 
    *3d volume max width: 2048 
    *3d volume max height: 2048 
    *3d volume max depth: 2048 
    *isHostUnifiedMemory: true 
#device: GeForce GT 650M (Apple) 
    *opencl version: OpenCL C 1.2  
    *driver version: 10.4.2 310.41.35f01 
    *max mem alloc size: 268435456 
    *global mem size: 1073741824 
    *max compute units: 2 
    *max clock freq: 774 
    *3d volume max width: 2048 
    *3d volume max height: 2048 
    *3d volume max depth: 2048 
    *isHostUnifiedMemory: false 

Apple.HD Graphics 4000 L64k/G 1024M mem with 16 compute units Apple.GeForce GT 650M L48k/G 1024M mem with 2 compute units GeForce GT 650M is best in platform Apple Device name: GeForce GT 650M (Apple) Oct 28, 2015 11:45:32 AM com.nativelibs4java.opencl.JavaCL log WARNING: clCreateImage3D is deprecated from OpenCL version 1.2 (detected version is 1.2) java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at clearvolume.renderer.opencl.utils.JavaCLUtils.writeImage3D(JavaCLUtils.java:106) at clearvolume.renderer.opencl.OpenCLDevice.writeImage(OpenCLDevice.java:868) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.fillWithByteBuffer(OpenCLVolumeRenderer.java:432) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.prepareVolumeDataArray(OpenCLVolumeRenderer.java:257) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:184) at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.init(ClearGLVolumeRenderer.java:807) at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:641) at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:663) at jogamp.opengl.GLAutoDrawableBase$1.run(GLAutoDrawableBase.java:430) 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:680) at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:77) at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:451) at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) Caused by: com.nativelibs4java.opencl.CLException$OutOfResources: OutOfResources (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:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at java.lang.Class.newInstance(Class.java:442) at com.nativelibs4java.opencl.CLException.error(CLException.java:302) at com.nativelibs4java.opencl.CLImage.write(CLImage.java:162) ... 21 more Oct 28, 2015 11:45:32 AM com.nativelibs4java.opencl.JavaCL log WARNING: clCreateImage2D is deprecated from OpenCL version 1.2 (detected version is 1.2) Exception in thread "SciJava-53e9d610-Thread-4-FPSAWTAnimator#01-Timer1" com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: com.jogamp.opengl.GLException: Caught InvalidValue: InvalidValue (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout) on thread SciJava-53e9d610-Thread-4-FPSAWTAnimator#01-Timer1 at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:84) at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:451) at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178) at java.util.TimerThread.mainLoop(Timer.java:555) at java.util.TimerThread.run(Timer.java:505) Caused by: com.jogamp.opengl.GLException: Caught InvalidValue: InvalidValue (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout) on thread SciJava-53e9d610-Thread-4-FPSAWTAnimator#01-Timer1 at com.jogamp.opengl.GLException.newGLException(GLException.java:76) at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1311) at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131) at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:680) at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:77) ... 4 more Caused by: com.nativelibs4java.opencl.CLException$InvalidValue: InvalidValue (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:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at java.lang.Class.newInstance(Class.java:442) at com.nativelibs4java.opencl.CLException.error(CLException.java:302) at com.nativelibs4java.opencl.CLImage.write(CLImage.java:162) at com.nativelibs4java.opencl.CLImage2D.write(CLImage2D.java:154) at com.nativelibs4java.opencl.CLImage2D.write(CLImage2D.java:147) at clearvolume.renderer.opencl.OpenCLDevice.writeImage(OpenCLDevice.java:889) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.prepareTransferFunctionArray(OpenCLVolumeRenderer.java:287) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:187) at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.init(ClearGLVolumeRenderer.java:807) at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:641) at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:663) at jogamp.opengl.GLAutoDrawableBase$1.run(GLAutoDrawableBase.java:430) at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1275) ... 7 more java.lang.NullPointerException at cleargl.GLTexture.(GLTexture.java:141) at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.ensureTextureAllocated(ClearGLVolumeRenderer.java:616) at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:498) at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:480) at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:691) at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:673) at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:442) at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277) at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131) at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:680) at jogamp.opengl.GLAutoDrawableBase.defaultWindowRepaintOp(GLAutoDrawableBase.java:214) at com.jogamp.newt.opengl.GLWindow.access$100(GLWindow.java:119) at com.jogamp.newt.opengl.GLWindow$2.windowRepaint(GLWindow.java:136) at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:3700) at jogamp.newt.WindowImpl.consumeEvent(WindowImpl.java:2673) at jogamp.newt.WindowImpl.doEvent(WindowImpl.java:2619) at jogamp.newt.WindowImpl.windowRepaint(WindowImpl.java:3979) at jogamp.newt.WindowImpl.windowRepaint(WindowImpl.java:3958) at com.jogamp.newt.opengl.GLWindow.windowRepaint(GLWindow.java:731) at com.jogamp.newt.awt.NewtCanvasAWT.paint(NewtCanvasAWT.java:598) at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264) at sun.lwawt.LWRepaintArea.paintComponent(LWRepaintArea.java:59) at sun.awt.RepaintArea.paint(RepaintArea.java:240) at sun.lwawt.LWComponentPeer.handleJavaPaintEvent(LWComponentPeer.java:1314) at sun.lwawt.LWComponentPeer.handleEvent(LWComponentPeer.java:1198) at java.awt.Component.dispatchEventImpl(Component.java:4967) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at clearvolume.renderer.opencl.utils.JavaCLUtils.writeImage3D(JavaCLUtils.java:106) at clearvolume.renderer.opencl.OpenCLDevice.writeImage(OpenCLDevice.java:868) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.fillWithByteBuffer(OpenCLVolumeRenderer.java:432) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.prepareVolumeDataArray(OpenCLVolumeRenderer.java:257) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:388) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:308) at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:543) at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:480) at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:691) at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:673) at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:442) at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277) at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131) at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:680) at jogamp.opengl.GLAutoDrawableBase.defaultWindowRepaintOp(GLAutoDrawableBase.java:214) at com.jogamp.newt.opengl.GLWindow.access$100(GLWindow.java:119) at com.jogamp.newt.opengl.GLWindow$2.windowRepaint(GLWindow.java:136) at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:3700) at jogamp.newt.WindowImpl.consumeEvent(WindowImpl.java:2673) at jogamp.newt.WindowImpl.doEvent(WindowImpl.java:2619) at jogamp.newt.WindowImpl.windowRepaint(WindowImpl.java:3979) at jogamp.newt.WindowImpl.windowRepaint(WindowImpl.java:3958) at com.jogamp.newt.opengl.GLWindow.windowRepaint(GLWindow.java:731) at com.jogamp.newt.awt.NewtCanvasAWT.paint(NewtCanvasAWT.java:598) at com.jogamp.newt.awt.NewtCanvasAWT.update(NewtCanvasAWT.java:604) at sun.awt.RepaintArea.updateComponent(RepaintArea.java:255) at sun.lwawt.LWRepaintArea.updateComponent(LWRepaintArea.java:47) at sun.awt.RepaintArea.paint(RepaintArea.java:232) at sun.lwawt.LWComponentPeer.handleJavaPaintEvent(LWComponentPeer.java:1314) at sun.lwawt.LWComponentPeer.handleEvent(LWComponentPeer.java:1198) at java.awt.Component.dispatchEventImpl(Component.java:4967) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) Caused by: com.nativelibs4java.opencl.CLException$OutOfResources: OutOfResources (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:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at java.lang.Class.newInstance(Class.java:442) at com.nativelibs4java.opencl.CLException.error(CLException.java:302) at com.nativelibs4java.opencl.CLImage.write(CLImage.java:162) ... 54 more com.nativelibs4java.opencl.CLException$InvalidValue: InvalidValue (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:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) at java.lang.Class.newInstance(Class.java:442) at com.nativelibs4java.opencl.CLException.error(CLException.java:302) at com.nativelibs4java.opencl.CLImage.write(CLImage.java:162) at com.nativelibs4java.opencl.CLImage2D.write(CLImage2D.java:154) at com.nativelibs4java.opencl.CLImage2D.write(CLImage2D.java:147) at clearvolume.renderer.opencl.OpenCLDevice.writeImage(OpenCLDevice.java:889) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.prepareTransferFunctionArray(OpenCLVolumeRenderer.java:287) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.runKernel(OpenCLVolumeRenderer.java:446) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:417) at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:308) at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:543) at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:480) at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:691) at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:673) at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:442) at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277) at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131) at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:680) at jogamp.opengl.GLAutoDrawableBase.defaultWindowRepaintOp(GLAutoDrawableBase.java:214) at com.jogamp.newt.opengl.GLWindow.access$100(GLWindow.java:119) at com.jogamp.newt.opengl.GLWindow$2.windowRepaint(GLWindow.java:136) at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:3700) at jogamp.newt.WindowImpl.consumeEvent(WindowImpl.java:2673) at jogamp.newt.WindowImpl.doEvent(WindowImpl.java:2619) at jogamp.newt.WindowImpl.windowRepaint(WindowImpl.java:3979) at jogamp.newt.WindowImpl.windowRepaint(WindowImpl.java:3958) at com.jogamp.newt.opengl.GLWindow.windowRepaint(GLWindow.java:731) at com.jogamp.newt.awt.NewtCanvasAWT.paint(NewtCanvasAWT.java:598) at com.jogamp.newt.awt.NewtCanvasAWT.update(NewtCanvasAWT.java:604) at sun.awt.RepaintArea.updateComponent(RepaintArea.java:255) at sun.lwawt.LWRepaintArea.updateComponent(LWRepaintArea.java:47) at sun.awt.RepaintArea.paint(RepaintArea.java:232) at sun.lwawt.LWComponentPeer.handleJavaPaintEvent(LWComponentPeer.java:1314) at sun.lwawt.LWComponentPeer.handleEvent(LWComponentPeer.java:1198) at java.awt.Component.dispatchEventImpl(Component.java:4967) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

royerloic commented 8 years ago

Hi Kyle,

Several possibilities:

i) the stack it too big, try to open a small stack (128x128x128) that should for sure fit in memory.

ii) There is a problem with the choice of OpenCL device

I Think it’s i), we still need to improve support for very large datasets, keep in mind that CV was originally designed for fast volumetric microscopes (SPIM, DLSM), so very large datasets was not first on the todo list. But since we CV is becoming quite popular, and since we will ourselvs need it, we intend to improve support for very large datasets…

Try smaller datatsests and let us know what happens (console output very usefull!)

Cheers ;-)

Loic

kephale commented 8 years ago

Hi Loïc,

Aha, yes. The small volume works (that was a little confusing since the error looks different from the one in https://github.com/ClearVolume/ClearVolume/issues/26). BTW, the original images are DLSMs at 1920x1920x~800

Thank you! Kyle

skalarproduktraum commented 8 years ago

Hi Kyle,

I'd like to confirm Loic's suspicion - that error is really related to the graphics card running out of memory, or as the error a bit further down in the traceback likes to say:

Caused by: com.nativelibs4java.opencl.CLException$OutOfResources: OutOfResources (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout)

We're looking into options for out-of-core rendering, in the meantime we're limited to volumes where at least the current timepoint has to fit into the GPU memory. Actually, it even has to be a bit smaller than that, as your OS is also taking it's share of it.

Apart from that we should actually catch the exception here and display a meaningful error message...

EDIT: I actually forgot one detail: the developer has very little influence how the actual memory allocation on the graphics card is done. When you request a large chunk of memory, the driver will try to clean as much as possible, but may fail -- as in your case. This cleaning however also seems to continue after the error, so you might actually get lucky if you try a second time.

skalarproduktraum commented 8 years ago

I'll close this for now, as the cause is the same as in #26.