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
44 stars 11 forks source link

Volume size warning needed? #26

Open StephanJanosch opened 9 years ago

StephanJanosch commented 9 years ago

I picked on of my bigger datasets to look at and got this exception using Fiji on Mavericks, running Java 8

ClearGLWindow: GLProfile[GL4/GL4.hw]
Platform: Apple {vendor: Apple, version: OpenCL 1.2 (Jul 29 2014 21:24:39), 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(Mar 18 2015 18:25:05) 
        *max mem alloc size: 268435456 
        *global mem size: 1073741824 
        *max compute units: 16 
        *max clock freq: 1200 
        *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: 8.26.29 310.40.55f01 
        *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
Found best device to be: GeForce GT 650M from platform Apple
Device name:     GeForce GT 650M (Apple) 
Jun 04, 2015 3:11:21 PM 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:778)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.fillWithByteBuffer(OpenCLVolumeRenderer.java:390)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.prepareVolumeDataArray(OpenCLVolumeRenderer.java:219)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:154)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.init(ClearGLVolumeRenderer.java:536)
    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
Jun 04, 2015 3:11:21 PM com.nativelibs4java.opencl.JavaCL log
WARNING: clCreateImage2D 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:778)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.fillWithByteBuffer(OpenCLVolumeRenderer.java:390)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.prepareVolumeDataArray(OpenCLVolumeRenderer.java:219)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:349)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:270)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:762)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:699)
    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 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)
    ... 23 more
Exception in thread "SciJava-1dd0e7c4-Thread-2-FPSAWTAnimator#00-Timer0" com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: com.jogamp.opengl.GLException: Caught MemObjectAllocationFailure: MemObjectAllocationFailure (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout) on thread SciJava-1dd0e7c4-Thread-2-FPSAWTAnimator#00-Timer0
    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 MemObjectAllocationFailure: MemObjectAllocationFailure (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout) on thread SciJava-1dd0e7c4-Thread-2-FPSAWTAnimator#00-Timer0
    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$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: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.CLKernel.enqueueNDRange(CLKernel.java:512)
    at com.nativelibs4java.opencl.CLKernel.enqueueNDRange(CLKernel.java:458)
    at clearvolume.renderer.opencl.OpenCLDevice.run(OpenCLDevice.java:431)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.runKernel(OpenCLVolumeRenderer.java:479)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:375)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:270)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:762)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:699)
    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)
    ... 7 more
[ERROR] Module threw exception
java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught MemObjectAllocationFailure: MemObjectAllocationFailure (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout) on thread SciJava-1dd0e7c4-Thread-2-Display-.macosx_nil-1-EDT-1
    at jogamp.newt.DefaultEDTUtil.invokeImpl(DefaultEDTUtil.java:249)
    at jogamp.newt.DefaultEDTUtil.invoke(DefaultEDTUtil.java:163)
    at jogamp.newt.DisplayImpl.runOnEDTIfAvail(DisplayImpl.java:427)
    at jogamp.newt.WindowImpl.runOnEDTIfAvail(WindowImpl.java:2133)
    at jogamp.newt.WindowImpl.setVisible(WindowImpl.java:1024)
    at jogamp.newt.WindowImpl.setVisible(WindowImpl.java:1029)
    at com.jogamp.newt.opengl.GLWindow.setVisible(GLWindow.java:499)
    at com.jogamp.newt.awt.NewtCanvasAWT.attachNewtChild(NewtCanvasAWT.java:923)
    at com.jogamp.newt.awt.NewtCanvasAWT.validateComponent(NewtCanvasAWT.java:822)
    at com.jogamp.newt.awt.NewtCanvasAWT.reshape(NewtCanvasAWT.java:616)
    at java.awt.Component.setBounds(Component.java:2253)
    at java.awt.BorderLayout.layoutContainer(BorderLayout.java:838)
    at java.awt.Container.layout(Container.java:1508)
    at java.awt.Container.doLayout(Container.java:1497)
    at java.awt.Container.validateTree(Container.java:1693)
    at java.awt.Container.validateTree(Container.java:1702)
    at java.awt.Container.validateTree(Container.java:1702)
    at java.awt.Container.validateTree(Container.java:1702)
    at java.awt.Container.validateTree(Container.java:1702)
    at java.awt.Container.validateTree(Container.java:1702)
    at java.awt.Container.validate(Container.java:1628)
    at java.awt.Container.validateUnconditionally(Container.java:1665)
    at java.awt.Window.show(Window.java:1033)
    at java.awt.Component.show(Component.java:1654)
    at java.awt.Component.setVisible(Component.java:1606)
    at java.awt.Window.setVisible(Window.java:1014)
    at de.mpicbg.jug.plugins.ClearVolumePlugin.run(ClearVolumePlugin.java:83)
    at org.scijava.command.CommandModule.run(CommandModule.java:201)
    at org.scijava.module.ModuleRunner.run(ModuleRunner.java:167)
    at org.scijava.module.ModuleRunner.call(ModuleRunner.java:126)
    at org.scijava.module.ModuleRunner.call(ModuleRunner.java:65)
    at org.scijava.thread.DefaultThreadService$2.call(DefaultThreadService.java:181)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: com.jogamp.opengl.GLException: Caught MemObjectAllocationFailure: MemObjectAllocationFailure (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout) on thread SciJava-1dd0e7c4-Thread-2-Display-.macosx_nil-1-EDT-1
    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 jogamp.opengl.GLAutoDrawableBase.defaultWindowResizedOp(GLAutoDrawableBase.java:259)
    at com.jogamp.newt.opengl.GLWindow.access$200(GLWindow.java:119)
    at com.jogamp.newt.opengl.GLWindow$2.windowResized(GLWindow.java:141)
    at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:3682)
    at jogamp.newt.WindowImpl.sendWindowEvent(WindowImpl.java:3616)
    at jogamp.newt.WindowImpl.setVisibleActionImpl(WindowImpl.java:1003)
    at jogamp.newt.WindowImpl$VisibleAction.run(WindowImpl.java:1015)
    at com.jogamp.common.util.RunnableTask.run(RunnableTask.java:150)
    at jogamp.newt.DefaultEDTUtil$NEDT.run(DefaultEDTUtil.java:372)
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: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.CLKernel.enqueueNDRange(CLKernel.java:512)
    at com.nativelibs4java.opencl.CLKernel.enqueueNDRange(CLKernel.java:458)
    at clearvolume.renderer.opencl.OpenCLDevice.run(OpenCLDevice.java:431)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.runKernel(OpenCLVolumeRenderer.java:479)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:375)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:270)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:762)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:699)
    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)
    ... 11 more
Exception in thread "AWT-EventQueue-0" com.jogamp.opengl.GLException: Caught MemObjectAllocationFailure: MemObjectAllocationFailure (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout) on thread AWT-EventQueue-0
    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 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:4957)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:702)
    at java.awt.EventQueue$3.run(EventQueue.java:696)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:724)
    at java.awt.EventQueue$4.run(EventQueue.java:722)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
    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$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: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.CLKernel.enqueueNDRange(CLKernel.java:512)
    at com.nativelibs4java.opencl.CLKernel.enqueueNDRange(CLKernel.java:458)
    at clearvolume.renderer.opencl.OpenCLDevice.run(OpenCLDevice.java:431)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.runKernel(OpenCLVolumeRenderer.java:479)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:375)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:270)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:762)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:699)
    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)
    ... 38 more
StephanJanosch commented 9 years ago

another one

ClearGLWindow: GLProfile[GL4/GL4.hw]
Platform: Apple {vendor: Apple, version: OpenCL 1.2 (Jul 29 2014 21:24:39), 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(Mar 18 2015 18:25:05) 
        *max mem alloc size: 268435456 
        *global mem size: 1073741824 
        *max compute units: 16 
        *max clock freq: 1200 
        *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: 8.26.29 310.40.55f01 
        *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
Found best device to be: GeForce GT 650M from platform Apple
Device name:     GeForce GT 650M (Apple) 
Jun 04, 2015 3:22:15 PM com.nativelibs4java.opencl.JavaCL log
WARNING: clCreateImage3D is deprecated from OpenCL version 1.2 (detected version is 1.2)
Jun 04, 2015 3:22:26 PM com.nativelibs4java.opencl.JavaCL log
WARNING: clCreateImage2D is deprecated from OpenCL version 1.2 (detected version is 1.2)

Exception in thread "SciJava-1dd0e7c4-Thread-14-FPSAWTAnimator#01-Timer1" com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: com.jogamp.opengl.GLException: Caught MemObjectAllocationFailure: MemObjectAllocationFailure (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout) on thread SciJava-1dd0e7c4-Thread-14-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 MemObjectAllocationFailure: MemObjectAllocationFailure (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout) on thread SciJava-1dd0e7c4-Thread-14-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$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: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.CLKernel.enqueueNDRange(CLKernel.java:512)
    at com.nativelibs4java.opencl.CLKernel.enqueueNDRange(CLKernel.java:458)
    at clearvolume.renderer.opencl.OpenCLDevice.run(OpenCLDevice.java:431)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.runKernel(OpenCLVolumeRenderer.java:479)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:375)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:270)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:762)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:699)
    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)
    ... 7 more
Exception in thread "AWT-EventQueue-0" com.jogamp.opengl.GLException: Caught MemObjectAllocationFailure: MemObjectAllocationFailure (make sure to log all errors with environment variable CL_LOG_ERRORS=stdout) on thread AWT-EventQueue-0
    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 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:4957)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:751)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:702)
    at java.awt.EventQueue$3.run(EventQueue.java:696)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:724)
    at java.awt.EventQueue$4.run(EventQueue.java:722)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:721)
    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$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: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.CLKernel.enqueueNDRange(CLKernel.java:512)
    at com.nativelibs4java.opencl.CLKernel.enqueueNDRange(CLKernel.java:458)
    at clearvolume.renderer.opencl.OpenCLDevice.run(OpenCLDevice.java:431)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.runKernel(OpenCLVolumeRenderer.java:479)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:375)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:270)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:762)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:699)
    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)
    ... 37 more
royerloic commented 9 years ago

Thanks Stephan, clearly we need to work on such warnings, right now it fails without a clear explanation. Thanks for the feedback! We will include that in the next version!

skalarproduktraum commented 9 years ago

I'll take care of that :)

royerloic commented 9 years ago

Thanks a lot Ulrik! A few recommendations: The best is to throw an 'TooBigVolumeException' exception that 'descends' from ClearVolumException (or similarly named and already existing...). This exception would then be caught in the FiJi plugin and a message would provided to the user. In general we should avoid popping up windows from the core API and instead throw exceptions for the different kind of problems - which then are caught and either displayed as a window or handled in the appropriate manner depending on the context. I am tempted to add some functionality so that ClearVolume can send exception reports by email to a dedicated email address so we have an idea of what breaks 'out there' this would be opt in of course. I have code for that we, can add it once we have some more polished exception handling :-) Thanks again!

fjug commented 9 years ago

@skalarproduktraum, whats the status here? I might start working on large image support soon...