Open StephanJanosch opened 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
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!
I'll take care of that :)
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!
@skalarproduktraum, whats the status here? I might start working on large image support soon...
I picked on of my bigger datasets to look at and got this exception using Fiji on Mavericks, running Java 8