Closed royerloic closed 7 years ago
ClearVolume is probably never going to work on a 32 bit machine. We don't ship 32 bit binaries. Is that all the output you get? A few questions: i) What graphics card do you have? ii) check if OpenCL on GPU works in your machine with LuxMark (http://www.luxrender.net/wiki/LuxMark) iii) Does it crash for every stack you tried? did you try some of the example stacks from Fiji?
I tried this again on a computer with a GeForce GTX 660 card. Now I can open stacks with no problem, everything works normally there, so it might be that my laptop's Intel HD 3000 graphics will not cut it. The network client still doesn't work, though it behaves differently and gives a different error:
java.lang.NoClassDefFoundError: org/junit/Assert
at clearvolume.network.client.ClearVolumeTCPClientHelper.startClient(ClearVolumeTCPClientHelper.java:119)
at clearvolume.network.client.main.ConnectionPanel$5.run(ConnectionPanel.java:243)
at java.lang.Thread.run(Unknown Source)
Mel
@msymeonides: Indeed, the HD3000 is a bit underpowered for ClearVolume (it has only a very limited amount of graphics memory and shares system memory for the rest), additionally, it's OpenCL implementation is somewhat crippled (e.g. it does not support image datatypes with only one 8bit or 16bit channel, though it does support three channels :confused: )...
We'll look into the Network Client error, thank you for the report :)
The server is down, can’t connect to it. Restarted it but still nothing. Something is wrong, and I am not sure what :-( We have to restart the box, but Martin is logged in, so we need to wait.
@Martin: I will log out, can you restart it and the server too?
thanks!
Loic
On 03 Jun 2015, at 16:56, Ulrik Guenther notifications@github.com wrote:
@msymeonides https://github.com/msymeonides: Indeed, the HD3000 is a bit underpowered for ClearVolume (it has only a very limited amount of graphics memory and shares system memory for the rest), additionally, it's OpenCL implementation is somewhat crippled (e.g. it does not support image datatypes with only one 8bit or 16bit channel, though it does support three channels )...
We'll look into the Network Client error, thank you for the report :)
— Reply to this email directly or view it on GitHub https://github.com/ClearVolume/ClearVolume/issues/25#issuecomment-108469585.
Dr. Loïc Alain Royer
Post-Doc - Myers Lab Max Planck Institute of Molecular Cell Biology and Genetics Pfotenhauerstr. 108 01307 Dresden
Too short? Here's why: http://emailcharter.org/
I have tried this on another PC running Windows 7 64 bit, Java 8, Fiji 64bit, and has an AMD Radeon HD 5450 card which supports OpenCL and runs LuxMark. The ClearVolume window opens, but the viewing area is empty (white) and I see the following error in the console:
[ERROR] Uncaught exception in thread Thread[SciJava-4152d38d-Thread-2-FPSAWTAnimator#00-Timer0,4,main]
com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: com.jogamp.opengl.GLException: Caught NullPointerException: null on thread SciJava-4152d38d-Thread-2-FPSAWTAnimator#00-Timer0
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:84) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:451) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at java.util.TimerThread.mainLoop(Unknown Source) ~[na:1.8.0_45]
at java.util.TimerThread.run(Unknown Source) ~[na:1.8.0_45]
Caused by: com.jogamp.opengl.GLException: Caught NullPointerException: null on thread SciJava-4152d38d-Thread-2-FPSAWTAnimator#00-Timer0
at com.jogamp.opengl.GLException.newGLException(GLException.java:76) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1311) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:680) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:77) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
... 4 common frames omitted
Caused by: java.lang.NullPointerException: null
at clearvolume.renderer.opencl.OpenCLDevice.setArgs(OpenCLDevice.java:345) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.runKernel(OpenCLVolumeRenderer.java:427) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:375) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:270) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:762) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:699) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:691) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:673) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:442) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
... 7 common frames omitted
Could you run FiJi on the command line and send us the whole console output? It seems to have trouble to find an OpenCL device, the std out should contain info about which device was picked. Thanks!
On Thu, Jun 4, 2015 at 9:47 PM, msymeonides notifications@github.com wrote:
I have tried this on another PC running Windows 7 64 bit, Java 8, Fiji 64bit, and has an AMD Radeon HD 5450 card which supports OpenCL and runs LuxMark. The ClearVolume window opens, but the viewing area is empty (white) and I see the following error in the console:
[ERROR] Uncaught exception in thread Thread[SciJava-4152d38d-Thread-2-FPSAWTAnimator#00-Timer0,4,main] com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: com.jogamp.opengl.GLException: Caught NullPointerException: null on thread SciJava-4152d38d-Thread-2-FPSAWTAnimator#00-Timer0 at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:84) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:451) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at java.util.TimerThread.mainLoop(Unknown Source) ~[na:1.8.0_45] at java.util.TimerThread.run(Unknown Source) ~[na:1.8.0_45] Caused by: com.jogamp.opengl.GLException: Caught NullPointerException: null on thread SciJava-4152d38d-Thread-2-FPSAWTAnimator#00-Timer0 at com.jogamp.opengl.GLException.newGLException(GLException.java:76) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1311) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:680) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:77) ~[imglib-clearvolume-1.0.0.jar:1.0.0] ... 4 common frames omitted Caused by: java.lang.NullPointerException: null at clearvolume.renderer.opencl.OpenCLDevice.setArgs(OpenCLDevice.java:345) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at clearvolume.renderer.opencl.OpenCLVolumeRenderer.runKernel(OpenCLVolumeRenderer.java:427) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:375) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:270) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:762) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:699) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:691) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:673) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:442) ~[imglib-clearvolume-1.0.0.jar:1.0.0] at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277) ~[imglib-clearvolume-1.0.0.jar:1.0.0] ... 7 common frames omitted
— Reply to this email directly or view it on GitHub https://github.com/ClearVolume/ClearVolume/issues/25#issuecomment-109029203 .
Dr. Loic Royer Bischofsweg 44 01099 Dresden Germany
Phone: cellphone: +49 157 84900128
Internet: email: royerloic@gmail.com skype: royerloic
I'm not sure I did exactly what you requested, but here's the output I get if I run a macro that opens the "First Instar Brain" sample stack and then opens ClearVolume, run in headless mode in the command prompt:
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.awt.HeadlessException
at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:271)
at net.imagej.legacy.DefaultLegacyHooks.interceptRunPlugIn(DefaultLegacyHooks.java:162)
at ij.IJ.runPlugIn(IJ.java)
at ij.Executer.runCommand(Executer.java:131)
at ij.Executer.run(Executer.java:64)
at ij.IJ.run(IJ.java:275)
at ij.macro.Functions.doRun(Functions.java:597)
at ij.macro.Functions.doFunction(Functions.java:95)
at ij.macro.Interpreter.doStatement(Interpreter.java:227)
at ij.macro.Interpreter.doStatements(Interpreter.java:215)
at ij.macro.Interpreter.run(Interpreter.java:112)
at ij.macro.Interpreter.run(Interpreter.java:82)
at ij.macro.Interpreter.run(Interpreter.java:93)
at ij.plugin.Macro_Runner.runMacro(Macro_Runner.java:153)
at ij.plugin.Macro_Runner.runMacroFile(Macro_Runner.java:137)
at ij.IJ.runMacroFile(IJ.java:130)
at net.imagej.legacy.IJ1Helper.runMacroFile(IJ1Helper.java:880)
at net.imagej.legacy.LegacyCommandline$Macro.handle(LegacyCommandline.java:182)
at org.scijava.console.DefaultConsoleService.processArgs(DefaultConsoleService.java:93)
at net.imagej.Main.launch(Main.java:64)
at net.imagej.Main.main(Main.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.imagej.launcher.ClassLauncher.launch(ClassLauncher.java:258)
at net.imagej.launcher.ClassLauncher.run(ClassLauncher.java:184)
at net.imagej.launcher.ClassLauncher.main(ClassLauncher.java:76)
Caused by: java.util.concurrent.ExecutionException: java.awt.HeadlessException
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:267)
... 27 more
Caused by: java.awt.HeadlessException
at sun.awt.HeadlessToolkit.getScreenSize(Unknown Source)
at de.mpicbg.jug.plugins.ClearVolumePlugin.run(ClearVolumePlugin.java:67)
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(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
if that's not what you were looking for, please give me more specifics as to what you want me to do.
no,no, I did not mean to start FiJi in headless mode - that’s never going to work because by definition you cannot open windows in headless mode. Just to start it from the command line, Actually the important thing is not the command line, but the std output.
In any case you should start FiJi using Java 7 or Java 8 as explained here: http://fiji.sc/ClearVolume http://fiji.sc/ClearVolume
On 04 Jun 2015, at 22:09, msymeonides notifications@github.com wrote:
I'm not sure I did exactly what you requested, but here's the output I get if I run a macro that opens the "First Instar Brain" sample stack and then opens ClearVolume, run in headless mode in the command prompt:
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.awt.HeadlessException at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:271) at net.imagej.legacy.DefaultLegacyHooks.interceptRunPlugIn(DefaultLegacyHooks.java:162) at ij.IJ.runPlugIn(IJ.java) at ij.Executer.runCommand(Executer.java:131) at ij.Executer.run(Executer.java:64) at ij.IJ.run(IJ.java:275) at ij.macro.Functions.doRun(Functions.java:597) at ij.macro.Functions.doFunction(Functions.java:95) at ij.macro.Interpreter.doStatement(Interpreter.java:227) at ij.macro.Interpreter.doStatements(Interpreter.java:215) at ij.macro.Interpreter.run(Interpreter.java:112) at ij.macro.Interpreter.run(Interpreter.java:82) at ij.macro.Interpreter.run(Interpreter.java:93) at ij.plugin.Macro_Runner.runMacro(Macro_Runner.java:153) at ij.plugin.Macro_Runner.runMacroFile(Macro_Runner.java:137) at ij.IJ.runMacroFile(IJ.java:130) at net.imagej.legacy.IJ1Helper.runMacroFile(IJ1Helper.java:880) at net.imagej.legacy.LegacyCommandline$Macro.handle(LegacyCommandline.java:182) at org.scijava.console.DefaultConsoleService.processArgs(DefaultConsoleService.java:93) at net.imagej.Main.launch(Main.java:64) at net.imagej.Main.main(Main.java:73) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.imagej.launcher.ClassLauncher.launch(ClassLauncher.java:258) at net.imagej.launcher.ClassLauncher.run(ClassLauncher.java:184) at net.imagej.launcher.ClassLauncher.main(ClassLauncher.java:76) Caused by: java.util.concurrent.ExecutionException: java.awt.HeadlessException at java.util.concurrent.FutureTask.report(Unknown Source) at java.util.concurrent.FutureTask.get(Unknown Source) at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:267) ... 27 more Caused by: java.awt.HeadlessException at sun.awt.HeadlessToolkit.getScreenSize(Unknown Source) at de.mpicbg.jug.plugins.ClearVolumePlugin.run(ClearVolumePlugin.java:67) 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(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
if that's not what you were looking for, please give me more specifics as to what you want me to do.
— Reply to this email directly or view it on GitHub https://github.com/ClearVolume/ClearVolume/issues/25#issuecomment-109034200.
Dr. Loïc Alain Royer
Post-Doc - Myers Lab Max Planck Institute of Molecular Cell Biology and Genetics Pfotenhauerstr. 108 01307 Dresden
Too short? Here's why: http://emailcharter.org/
I started Fiji from the command line, but honestly do not see any output in the command line, other than "reverting to system Java" (which is what presumably happens when you delete the java dir within Fiji). Anyway, here is the full Fiji console output when I do the same operation I mentioned above, but initiating Fiji within a command prompt:
i think the information you're looking for is there. It looks like OpenCL is selecting the GPU, not the CPU, but something goes wrong afterwards.
com.apple.eawt.Application
ClearGLWindow: GLProfile[GL4bc/GL4bc.hw]
Platform: AMD Accelerated Parallel Processing {vendor: Advanced Micro Devices, Inc., version: OpenCL 2.0 AMD-APP (1642.5), profile: FULL_PROFILE, extensions: [cl_khr_icd, cl_khr_d3d10_sharing, cl_khr_d3d11_sharing, cl_khr_dx9_media_sharing, cl_amd_event_callback, cl_amd_offline_devices]}
#device: Cedar (AMD Accelerated Parallel Processing)
*opencl version: OpenCL C 1.2
*driver version: 1642.5 (VM)
*max mem alloc size: 536870912
*global mem size: 1073741824
*max compute units: 2
*max clock freq: 650
*3d volume max width: 2048
*3d volume max height: 2048
*3d volume max depth: 2048
*isHostUnifiedMemory: false
#device: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz (AMD Accelerated Parallel Processing)
*opencl version: OpenCL C 1.2
*driver version: 1642.5 (sse2)
*max mem alloc size: 2147483648
*global mem size: 4294172672
*max compute units: 4
*max clock freq: 2400
*3d volume max width: 2048
*3d volume max height: 2048
*3d volume max depth: 2048
*isHostUnifiedMemory: true
AMD Accelerated Parallel Processing.Cedar L32k/G 1024M mem with 2 compute units
Cedar is best in platform AMD Accelerated Parallel Processing
Found best device to be: Cedar from platform AMD Accelerated Parallel Processing
Device name: Cedar (AMD Accelerated Parallel Processing)
couldn't create kernel 'maxproj_render'
com.nativelibs4java.opencl.CLException$InvalidDevice: InvalidDevice (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(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.nativelibs4java.opencl.CLException.error(CLException.java:302)
at com.nativelibs4java.opencl.CLProgram.getProgramBuildInfo(CLProgram.java:755)
at com.nativelibs4java.opencl.CLProgram.getProgramBuildInfo(CLProgram.java:775)
at com.nativelibs4java.opencl.CLProgram.build(CLProgram.java:843)
at com.nativelibs4java.opencl.CLProgram.createKernel(CLProgram.java:909)
at clearvolume.renderer.opencl.OpenCLDevice.compileKernel(OpenCLDevice.java:327)
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:134)
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(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
couldn't create kernel 'clearbuffer'
com.nativelibs4java.opencl.CLException$InvalidDevice: InvalidDevice (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(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.nativelibs4java.opencl.CLException.error(CLException.java:302)
at com.nativelibs4java.opencl.CLProgram.getProgramBuildInfo(CLProgram.java:755)
at com.nativelibs4java.opencl.CLProgram.getProgramBuildInfo(CLProgram.java:775)
at com.nativelibs4java.opencl.CLProgram.build(CLProgram.java:843)
at com.nativelibs4java.opencl.CLProgram.createKernel(CLProgram.java:909)
at clearvolume.renderer.opencl.OpenCLDevice.compileKernel(OpenCLDevice.java:327)
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:136)
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(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
couldn't create kernel 'isosurface_render'
com.nativelibs4java.opencl.CLException$InvalidDevice: InvalidDevice (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(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.nativelibs4java.opencl.CLException.error(CLException.java:302)
at com.nativelibs4java.opencl.CLProgram.getProgramBuildInfo(CLProgram.java:755)
at com.nativelibs4java.opencl.CLProgram.getProgramBuildInfo(CLProgram.java:775)
at com.nativelibs4java.opencl.CLProgram.build(CLProgram.java:843)
at com.nativelibs4java.opencl.CLProgram.createKernel(CLProgram.java:909)
at clearvolume.renderer.opencl.OpenCLDevice.compileKernel(OpenCLDevice.java:327)
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:139)
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(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
Jun 05, 2015 1:47:33 PM com.nativelibs4java.opencl.JavaCL log
WARNING: clCreateImage3D is deprecated from OpenCL version 1.2 (detected version is 2.0)
Jun 05, 2015 1:47:33 PM com.nativelibs4java.opencl.JavaCL log
WARNING: clCreateImage2D is deprecated from OpenCL version 1.2 (detected version is 2.0)
[ERROR] Uncaught exception in thread Thread[SciJava-3591009c-Thread-0-FPSAWTAnimator#00-Timer0,5,main]
com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: com.jogamp.opengl.GLException: Caught NullPointerException: null on thread SciJava-3591009c-Thread-0-FPSAWTAnimator#00-Timer0
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:84) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:451) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at java.util.TimerThread.mainLoop(Unknown Source) ~[na:1.8.0_45]
at java.util.TimerThread.run(Unknown Source) ~[na:1.8.0_45]
Caused by: com.jogamp.opengl.GLException: Caught NullPointerException: null on thread SciJava-3591009c-Thread-0-FPSAWTAnimator#00-Timer0
at com.jogamp.opengl.GLException.newGLException(GLException.java:76) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1311) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:680) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:77) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
... 4 common frames omitted
Caused by: java.lang.NullPointerException: null
at clearvolume.renderer.opencl.OpenCLDevice.setArgs(OpenCLDevice.java:345) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.runKernel(OpenCLVolumeRenderer.java:427) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:375) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:270) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:762) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:699) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:691) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:673) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:442) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
... 7 common frames omitted
[ERROR] Uncaught exception in thread Thread[SciJava-3591009c-Thread-0-Display-.windows_nil-1-EDT-1,5,main]
com.jogamp.opengl.GLException: Caught NullPointerException: null on thread SciJava-3591009c-Thread-0-Display-.windows_nil-1-EDT-1
at com.jogamp.opengl.GLException.newGLException(GLException.java:76) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1311) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1131) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:680) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLAutoDrawableBase.defaultWindowRepaintOp(GLAutoDrawableBase.java:214) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.newt.opengl.GLWindow.access$100(GLWindow.java:119) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at com.jogamp.newt.opengl.GLWindow$2.windowRepaint(GLWindow.java:136) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.newt.WindowImpl.consumeWindowEvent(WindowImpl.java:3700) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.newt.WindowImpl.consumeEvent(WindowImpl.java:2673) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.newt.WindowImpl.doEvent(WindowImpl.java:2619) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.newt.WindowImpl.windowRepaint(WindowImpl.java:3979) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.newt.driver.windows.DisplayDriver.DispatchMessages0(Native Method) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.newt.driver.windows.DisplayDriver.dispatchMessagesNative(DisplayDriver.java:120) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.newt.DisplayImpl.dispatchMessages(DisplayImpl.java:734) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.newt.DisplayImpl$7.run(DisplayImpl.java:657) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.newt.DefaultEDTUtil$NEDT.run(DefaultEDTUtil.java:344) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
Caused by: java.lang.NullPointerException: null
at clearvolume.renderer.opencl.OpenCLDevice.setArgs(OpenCLDevice.java:345) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.runKernel(OpenCLVolumeRenderer.java:427) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.updateBufferAndRunKernel(OpenCLVolumeRenderer.java:375) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.renderVolume(OpenCLVolumeRenderer.java:270) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:762) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:699) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:691) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:673) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:442) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1277) ~[imglib-clearvolume-1.0.0.jar:1.0.0]
... 14 common frames omitted
Ok, we are getting closer,
What is this Cedar thing? never heard about it!! Looking into it, I read that this is some new - still experimental - framework from AMD. From the xception “InvalidDevice” it is clear that this device is not caompatible to JavaCL. So there are two solutions:
i) Uninstall this APP SDK and install some more classic OpenCL drivers
ii) Wait for the next version of the plugin that will exclude APP devices (until they actually work…)
OK, I have an update for this issue. That Cedar GPU is obviously incompatible with ClearVolume as it uses a weird SDK. So, I just put in a new video card in this computer, it's a GeForce GT 730. However, I still cannot run ClearVolume in Fiji! Here is the error I get when I run the plugin after opening the "First Instar Brain" sample stack.
com.apple.eawt.Application
ClearGLWindow: GLProfile[GL4bc/GL4bc.hw]
Platform: AMD Accelerated Parallel Processing {vendor: Advanced Micro Devices, Inc., version: OpenCL 2.0 AMD-APP (1642.5), profile: FULL_PROFILE, extensions: [cl_khr_icd, cl_khr_d3d10_sharing, cl_khr_d3d11_sharing, cl_khr_dx9_media_sharing, cl_amd_event_callback, cl_amd_offline_devices]}
#device: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz (AMD Accelerated Parallel Processing)
*opencl version: OpenCL C 1.2
*driver version: 1642.5 (sse2)
*max mem alloc size: 2147483648
*global mem size: 4294172672
*max compute units: 4
*max clock freq: 2833
*3d volume max width: 2048
*3d volume max height: 2048
*3d volume max depth: 2048
*isHostUnifiedMemory: true
Platform: NVIDIA CUDA {vendor: NVIDIA Corporation, version: OpenCL 1.2 CUDA 7.5.8, 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, cl_nv_d3d9_sharing, cl_nv_d3d10_sharing, cl_khr_d3d10_sharing, cl_nv_d3d11_sharing, cl_nv_copy_opts]}
#device: GeForce GT 730 (NVIDIA CUDA)
*opencl version: OpenCL C 1.2
*driver version: 353.06
*max mem alloc size: 536870912
*global mem size: 2147483648
*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 730 L48k/G 2048M mem with 2 compute units
GeForce GT 730 is best in platform NVIDIA CUDA
Device name: GeForce GT 730 (NVIDIA CUDA)
couldn't create kernel 'maxproj_render'
com.nativelibs4java.opencl.CLBuildException: Compilation failure : (devices: [GeForce GT 730 (NVIDIA CUDA)])
Error in processing command line: Don't understand command line argument "Lab\.javacl\includes\includes6028947933632405878"!
at com.nativelibs4java.opencl.CLProgram.build(CLProgram.java:846)
at com.nativelibs4java.opencl.CLProgram.createKernel(CLProgram.java:909)
at clearvolume.renderer.opencl.OpenCLDevice.compileKernel(OpenCLDevice.java:359)
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)
couldn't create kernel 'clearbuffer'
com.nativelibs4java.opencl.CLBuildException: Compilation failure : (devices: [GeForce GT 730 (NVIDIA CUDA)])
Error in processing command line: Don't understand command line argument "Lab\.javacl\includes\includes2451251202754881340"!
at com.nativelibs4java.opencl.CLProgram.build(CLProgram.java:846)
at com.nativelibs4java.opencl.CLProgram.createKernel(CLProgram.java:909)
at clearvolume.renderer.opencl.OpenCLDevice.compileKernel(OpenCLDevice.java:359)
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:156)
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)
couldn't create kernel 'isosurface_render'
com.nativelibs4java.opencl.CLBuildException: Compilation failure : (devices: [GeForce GT 730 (NVIDIA CUDA)])
Error in processing command line: Don't understand command line argument "Lab\.javacl\includes\includes638207849833637450"!
at com.nativelibs4java.opencl.CLProgram.build(CLProgram.java:846)
at com.nativelibs4java.opencl.CLProgram.createKernel(CLProgram.java:909)
at clearvolume.renderer.opencl.OpenCLDevice.compileKernel(OpenCLDevice.java:359)
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:159)
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)
Jun 17, 2015 6:37:05 PM com.nativelibs4java.opencl.JavaCL log
WARNING: clCreateImage3D is deprecated from OpenCL version 1.2 (detected version is 1.2)
Jun 17, 2015 6:37:05 PM com.nativelibs4java.opencl.JavaCL log
WARNING: clCreateImage2D is deprecated from OpenCL version 1.2 (detected version is 1.2)
The ClearVolume window opens and I can see all the window elements, but the actual image window is just grey. I tried double-clicking it to go to fullscreen, it just flashes my screen black and returns back to the grey window state.
Great!
We should probably set up a blacklist of bad cards.... For the client, please update FiJi, we have a new verersesion out. Keep in mind that if someone else is connected, you won't be able to connect until they disconnect...
Cheers,
Loic
Sorry, you may have misunderstood my message. I still cannot use ClearVolume at all (not just the stream server) on this computer, despite installing the new graphics card. See the error above that relates to this.
Is this issue still persisting?
Yes, the problem persists. I just updated my graphics card driver, as well as Fiji and Java. Here's the error output below. Once again, I am getting the ClearVolume window appearing with all its sidebars and toolbars, it just doesn't display the image data.
ClearGLWindow: GLProfile[GL4bc/GL4bc.hw]
Platform: AMD Accelerated Parallel Processing {vendor: Advanced Micro Devices, Inc., version: OpenCL 2.0 AMD-APP (1642.5), profile: FULL_PROFILE, extensions: [cl_khr_icd, cl_khr_d3d10_sharing, cl_khr_d3d11_sharing, cl_khr_dx9_media_sharing, cl_amd_event_callback, cl_amd_offline_devices]}
#device: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz (AMD Accelerated Parallel Processing)
*opencl version: OpenCL C 1.2
*driver version: 1642.5 (sse2)
*max mem alloc size: 2147483648
*global mem size: 4294172672
*max compute units: 4
*max clock freq: 2833
*3d volume max width: 2048
*3d volume max height: 2048
*3d volume max depth: 2048
*isHostUnifiedMemory: true
Platform: NVIDIA CUDA {vendor: NVIDIA Corporation, version: OpenCL 1.2 CUDA 7.5.0, 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, cl_nv_d3d9_sharing, cl_nv_d3d10_sharing, cl_khr_d3d10_sharing, cl_nv_d3d11_sharing, cl_nv_copy_opts]}
#device: GeForce GT 730 (NVIDIA CUDA)
*opencl version: OpenCL C 1.2
*driver version: 355.82
*max mem alloc size: 536870912
*global mem size: 2147483648
*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 730 L48k/G 2048M mem with 2 compute units
GeForce GT 730 is best in platform NVIDIA CUDA
Device name: GeForce GT 730 (NVIDIA CUDA)
couldn't create kernel 'maxproj_render'
com.nativelibs4java.opencl.CLBuildException: Compilation failure : (devices: [GeForce GT 730 (NVIDIA CUDA)])
Error in processing command line: Don't understand command line argument "Lab\.javacl\includes\includes1321921870366129471"!
at com.nativelibs4java.opencl.CLProgram.build(CLProgram.java:846)
at com.nativelibs4java.opencl.CLProgram.createKernel(CLProgram.java:909)
at clearvolume.renderer.opencl.OpenCLDevice.compileKernel(OpenCLDevice.java:301)
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:153)
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)
couldn't create kernel 'clearbuffer'
com.nativelibs4java.opencl.CLBuildException: Compilation failure : (devices: [GeForce GT 730 (NVIDIA CUDA)])
Error in processing command line: Don't understand command line argument "Lab\.javacl\includes\includes7593766743412607679"!
at com.nativelibs4java.opencl.CLProgram.build(CLProgram.java:846)
at com.nativelibs4java.opencl.CLProgram.createKernel(CLProgram.java:909)
at clearvolume.renderer.opencl.OpenCLDevice.compileKernel(OpenCLDevice.java:301)
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:155)
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)
couldn't create kernel 'isosurface_render'
com.nativelibs4java.opencl.CLBuildException: Compilation failure : (devices: [GeForce GT 730 (NVIDIA CUDA)])
Error in processing command line: Don't understand command line argument "Lab\.javacl\includes\includes2435525135483185881"!
at com.nativelibs4java.opencl.CLProgram.build(CLProgram.java:846)
at com.nativelibs4java.opencl.CLProgram.createKernel(CLProgram.java:909)
at clearvolume.renderer.opencl.OpenCLDevice.compileKernel(OpenCLDevice.java:301)
at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:158)
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)
Sep 09, 2015 9:43:29 PM com.nativelibs4java.opencl.JavaCL log
WARNING: clCreateImage3D is deprecated from OpenCL version 1.2 (detected version is 1.2)
Sep 09, 2015 9:43:29 PM com.nativelibs4java.opencl.JavaCL log
WARNING: clCreateImage2D is deprecated from OpenCL version 1.2 (detected version is 1.2)
I would suggest the following:
remove the AMD APP thingy, you don’t need it, Also remove CUDa if you installed it. then reinstall the latest graphics drivers for your card. Since we are now using OpenCL exclusively in ClearVolume for FiJi, that should be fine - OpenCL comes with the graphics drivers.
Hope this works this time….
Thanks. I removed the remnants of the AMD APP and all NVIDIA drivers using a driver cleanup software, and then installed the NVIDIA driver alone. However, the NVIDIA CUDA was automatically installed with it, and I could not find any option to omit it from the installation or remove it afterwards. The same problem with ClearVolume persists (though AMD APP is no longer listed as a device in the output, just the NVIDIA CUDA).
Is there any way to make ClearVolume ignore CUDA, since it runs on OpenCL exclusively? It seems to prioritize CUDA if it's present, but from what you said it sounds like it should not be doing this anymore?
On 13 Sep 2015, at 16:39, msymeonides notifications@github.com wrote:
Thanks. I removed the remnants of the AMD APP and all NVIDIA drivers using a driver cleanup software, and then installed the NVIDIA driver alone. However, the NVIDIA CUDA was automatically installed with it, and I could not find any option to omit it from the installation or remove it afterwards. The same problem with ClearVolume persists (though AMD APP is no longer listed as a device in the output, just the NVIDIA CUDA).
Is there any way to make ClearVolume ignore CUDA, since it runs on OpenCL exclusively? It seems to prioritize CUDA if it’s present, but from what you said it sounds like it should not be doing this anymore?
We don’t use CUDA at all for the FiJi version of CV. It’s just that OpenCL from NVIDIA uses a CUDA backend - which is normal. By uninstalling CUDA I meant uninstalling the SDK in case you had done that, which does not seem to be the case.
Are running on Linux? We have still an issue on some Linux machines, but unfortunately we have not figured out what the problem is :-(
Very frustrating…
— Reply to this email directly or view it on GitHub https://github.com/ClearVolume/ClearVolume/issues/25#issuecomment-139882398.
Dr. Loïc Alain Royer
Post-Doc - Myers Lab Max Planck Institute of Molecular Cell Biology and Genetics Pfotenhauerstr. 108 01307 Dresden
Too short? Here's why: http://emailcharter.org/
I'm running Windows 7. I really don't know what is going on with that computer, as I have another computer also with a GeForce card (a GTX 660) with the same driver version and Java JDK version that runs ClearVolume under Fiji just fine. I guess I could do some more testing and uninstall/reinstalls but it could be a peculiarity of that computer or of the GeForce GT 730. Is there anything in that console ouput that indicates what the specific issue could be?
On 13 Sep 2015, at 18:49, msymeonides notifications@github.com wrote:
I'm running Windows 7. I really don't know what is going on with that computer, as I have another computer also with a GeForce card (a GTX 660) with the same driver version and Java JDK version that runs ClearVolume under Fiji just fine. I guess I could do some more testing and uninstall/reinstalls but it could be a peculiarity of that computer or of the GeForce GT 730. Is there anything in that console ouput that indicates what the specific issue could be?
From the logs, It could be a misconfiguration of OpenCL, whcih could come from AMD APP. Unfortunately, the only way to be certain would be to reinstall W7 on the computer…
— Reply to this email directly or view it on GitHub https://github.com/ClearVolume/ClearVolume/issues/25#issuecomment-139893940.
Dr. Loïc Alain Royer
Post-Doc - Myers Lab Max Planck Institute of Molecular Cell Biology and Genetics Pfotenhauerstr. 108 01307 Dresden
Too short? Here's why: http://emailcharter.org/
Yeah, I'm completely at a loss here. I even deleted OpenCL.dll from \Windows\system32 and \Windows\syswow64, reinstalled the NVIDIA drivers, and I see the exact same behavior. It's been bugging me to update to Windows 10, so maybe I'll give that a shot and hope it fixes it.
Hello @msymeonides,
there are two things I can suggest to find out what's wrong:
Lab\.javacl\includes\
on your machine? I assume Lab would be the user you are logged in as. If you can find that folder, could you please send us it's contents?C:\Path to fiji\ImageJ-win64.exe -DClearVolume.OpenCLDevice=0,1
-- the 0,1
should be the CPU. If that does not work, try other combinations, like 1,0
, etc.As an aside, @royerloic, from what I've seen so far I don't think it's a problem that is related to either the CUDA SDK or the graphics driver, but rather how JavaCL calls the nvcc. Let's see...
@msymeonides: Did you have any success getting it to run?
@skalarproduktraum nope, I sort of just gave up. Just tried again in case any updates might have resolved the issue, they have not. Maybe that card just isn't compatible!
@msymeonides: We have just released a new update that replaces the OpenCL library we used so far (it caused us some problems unrelated to this issue recently). If you like you can give it a shot again. If it still doesn't work, please let us know, because then it'd probably be a good idea to introduce a black list at some point and present the user with a message that the graphics card is not compatible, and we could add the GT730 to that.
@skalarproduktraum: Unfortunately with this update it is behaving even worse, I am now not even getting a ClearVolume window, all I get is a java exception:
(Fiji Is Just) ImageJ 2.0.0-rc-43/1.51h; Java 1.8.0_60 [64-bit]; Windows 7 6.1; 60MB of 3038MB (1%)
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: com/jogamp/newt/awt/NewtCanvasAWT
at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:274)
at net.imagej.legacy.DefaultLegacyHooks.interceptRunPlugIn(DefaultLegacyHooks.java:161)
at ij.IJ.runPlugIn(IJ.java)
at ij.Executer.runCommand(Executer.java:137)
at ij.Executer.run(Executer.java:66)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: com/jogamp/newt/awt/NewtCanvasAWT
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:270)
... 5 more
Caused by: java.lang.NoClassDefFoundError: com/jogamp/newt/awt/NewtCanvasAWT
at de.mpicbg.jug.plugins.ClearVolumePlugin.run(ClearVolumePlugin.java:81)
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:191)
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)
... 1 more
Caused by: java.lang.ClassNotFoundException: com.jogamp.newt.awt.NewtCanvasAWT
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 10 more
I am working on it. I managed to run ClearVolume on the CPU, it’s slow, but at least it works, even with no card. Working on making sure that the fall back happens.
Your problem might have to do with shadding JOGL. @Florian: I have the impression that we have another JOGL on that machine,
@msysmeonides: Could you check the version numbers of any JOGL related jars in your Fiji installation? Do you have the 3D viewer installed? Could you try with a fresh Fiji install?
Thanks!
OK, fresh Fiji install -> it works! Looks great. So the GT 730 is fine.
BTW: Also tried it on a laptop with Intel HD Graphics 3000, and it doesn't work, but I think that's still as expected?
Hello @msymeonides,
that's great to hear! So no GT730 on the black list 8-)
Regarding the Intel HD Graphics 3000: This GPU is really much too old to be supported, and has much too less graphics memory (384 MB) to be useful for volume rendering, so we will never support it. That being said, @royerloic is currently working on an addition to ClearVolume which will enable rendering on the CPU on low-end machines. This will be slow, but we think it's still better than showing nothing.
I will mark this issue as resolved for now, please let us know if there's anything else we can help you with!
Hello,
I have not been able to have ClearVolume work in Fiji at all.
When I try to open a TIFF stack with it, I get the following error:
(Fiji Is Just) ImageJ 2.0.0-rc-30/1.49t; Java 1.8.0_45 [64-bit]; Windows 7 6.1; 1131MB of 4464MB (25%)
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:271) at net.imagej.legacy.DefaultLegacyHooks.interceptRunPlugIn(DefaultLegacyHooks.java:162) at ij.IJ.runPlugIn(IJ.java) at ij.Executer.runCommand(Executer.java:131) at ij.Executer.run(Executer.java:64) at java.lang.Thread.run(Unknown Source) Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException at java.util.concurrent.FutureTask.report(Unknown Source) at java.util.concurrent.FutureTask.get(Unknown Source) at net.imagej.legacy.LegacyService.runLegacyCompatibleCommand(LegacyService.java:267) ... 5 more Caused by: java.lang.NullPointerException at de.mpicbg.jug.clearvolume.ImgLib2ClearVolume.initClearVolumeUnsignedShortArrayImg(ImgLib2ClearVolume.java:264) at de.mpicbg.jug.clearvolume.ImgLib2ClearVolume.initRealImgs(ImgLib2ClearVolume.java:418) at de.mpicbg.jug.clearvolume.gui.ClearVolumeManager.run(ClearVolumeManager.java:156) at de.mpicbg.jug.clearvolume.gui.GenericClearVolumeGui.launchClearVolumeManager(GenericClearVolumeGui.java:208) at de.mpicbg.jug.clearvolume.gui.GenericClearVolumeGui.(GenericClearVolumeGui.java:135)
at de.mpicbg.jug.plugins.ClearVolumePlugin.run(ClearVolumePlugin.java:80)
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(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
... 1 more
When trying to start the network client, I get this error:
java.lang.NullPointerException at clearvolume.volume.sink.renderer.ClearVolumeRendererSink.createRenderer(ClearVolumeRendererSink.java:150) at clearvolume.volume.sink.renderer.ClearVolumeRendererSink.(ClearVolumeRendererSink.java:69)
at clearvolume.network.client.ClearVolumeTCPClientHelper.startClient(ClearVolumeTCPClientHelper.java:62)
at clearvolume.network.client.main.ConnectionPanel$5.run(ConnectionPanel.java:243)
at java.lang.Thread.run(Unknown Source)
I have also tried using Fiji 32bit (with the most recent 32bit Java installed) and tried on two different Win7 machines, and get the same errors in all cases. Am I doing something wrong?
Kind regards, Mel