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

ClearVolume not working on Nvidia Quadro RTX 3000 #79

Open bpavie opened 3 years ago

bpavie commented 3 years ago

Dear

I tried to use the last version of clearvolume (1.4.1 jar file) updated with the update Fiji mechanism but I have got the following error on Windows 10 using a NVIDIA Quadro RTX 3000 graphic card.

null
Warning: Caught Exception while retrieving executable temp base directory:
java.io.IOException: Could not determine a temporary executable directory
    at com.jogamp.common.util.IOUtil.getTempDir(IOUtil.java:1287)
    at com.jogamp.common.util.cache.TempFileCache.<clinit>(TempFileCache.java:81)
    at com.jogamp.common.util.cache.TempJarCache.initSingleton(TempJarCache.java:88)
    at com.jogamp.common.os.Platform$1.run(Platform.java:309)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.jogamp.common.os.Platform.<clinit>(Platform.java:287)
    at com.jogamp.opengl.GLProfile.<clinit>(GLProfile.java:147)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.<clinit>(ClearGLVolumeRenderer.java:88)
    at clearvolume.renderer.factory.ClearVolumeRendererFactory.internalCreateOpenCLRenderer(ClearVolumeRendererFactory.java:281)
    at clearvolume.renderer.factory.ClearVolumeRendererFactory.newOpenCLRenderer(ClearVolumeRendererFactory.java:253)
    at de.mpicbg.jug.clearvolume.ImgLib2ClearVolume.initClearVolumeUnsignedShortArrayImg(ImgLib2ClearVolume.java:273)
    at de.mpicbg.jug.clearvolume.ImgLib2ClearVolume.initRealImgs(ImgLib2ClearVolume.java:511)
    at de.mpicbg.jug.clearvolume.gui.ClearVolumeManager.run(ClearVolumeManager.java:182)
    at de.mpicbg.jug.clearvolume.gui.GenericClearVolumeGui.launchClearVolumeManager(GenericClearVolumeGui.java:306)
    at de.mpicbg.jug.clearvolume.gui.GenericClearVolumeGui.<init>(GenericClearVolumeGui.java:163)
    at de.mpicbg.jug.plugins.ClearVolumePlugin.run(ClearVolumePlugin.java:90)
    at org.scijava.command.CommandModule.run(CommandModule.java:196)
    at org.scijava.module.ModuleRunner.run(ModuleRunner.java:165)
    at org.scijava.module.ModuleRunner.call(ModuleRunner.java:124)
    at org.scijava.module.ModuleRunner.call(ModuleRunner.java:63)
    at org.scijava.thread.DefaultThreadService.lambda$wrap$2(DefaultThreadService.java:225)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
ClearGLWindow: GLProfile[GL4/GL4.hw]
1.0
1.0
1.0
WindowsJan 29, 2021 12:35:38 PM org.bridj.BridJ log
INFO: Library not found : atiocl64
Jan 29, 2021 12:35:38 PM org.bridj.BridJ log
INFO: Library not found : amdocl64
Jan 29, 2021 12:35:38 PM org.bridj.BridJ log
INFO: Library not found : atiocl32
Jan 29, 2021 12:35:38 PM org.bridj.BridJ log
INFO: Library not found : atiocl
Jan 29, 2021 12:35:38 PM org.bridj.BridJ log
INFO: Library not found : amdocl32
Jan 29, 2021 12:35:38 PM org.bridj.BridJ log
INFO: Library not found : amdocl
 --> Using backend: ClearCLBackendJOCL
clearcl.backend.jocl.ClearCLBackendJOCL@c49702f
________________________________________________________________________________
1 available OpenCL devices:

Device name: Quadro RTX 3000, type: GPU, OpenCL version: 1.20000 
 max global memory: 6442450944 
 max local memory: 49152 
 clock freq: 1215Mhz 
 nb compute units: 30 
 extensions: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 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_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer  

________________________________________________________________________________
Selected device:
Device name: Quadro RTX 3000, type: GPU, OpenCL version: 1.20000 
 max global memory: 6442450944 
 max local memory: 49152 
 clock freq: 1215Mhz 
 nb compute units: 30 
 extensions: cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_fp64 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_d3d10_sharing cl_khr_d3d10_sharing cl_nv_d3d11_sharing cl_nv_copy_opts cl_khr_gl_event cl_nv_create_buffer  

Device name:     ClearCLDevice [mClearCLPlatform=ClearCLPlatform [name=NVIDIA CUDA], name=Quadro RTX 3000] 
clearcl.exceptions.ClearCLException: org.bridj.Pointer.pointerToAddress(JJLorg/bridj/PointerIO;Lorg/bridj/Pointer$Releaser;)Lorg/bridj/Pointer;
    at clearcl.backend.BackendUtils.checkExceptions(BackendUtils.java:163)
    at clearcl.backend.jocl.ClearCLBackendJOCL.wrap(ClearCLBackendJOCL.java:1100)
    at clearcl.ClearCLImage.readFrom(ClearCLImage.java:572)
    at clearcl.ClearCLImage.readFrom(ClearCLImage.java:596)
    at clearvolume.renderer.opencl.OpenCLDevice.writeImage(OpenCLDevice.java:356)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.fillWithByteBuffer(OpenCLVolumeRenderer.java:418)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.prepareVolumeDataArray(OpenCLVolumeRenderer.java:238)
    at clearvolume.renderer.opencl.OpenCLVolumeRenderer.initVolumeRenderer(OpenCLVolumeRenderer.java:155)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.init(ClearGLVolumeRenderer.java:824)
    at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:644)
    at jogamp.opengl.GLDrawableHelper.init(GLDrawableHelper.java:667)
    at jogamp.opengl.GLAutoDrawableBase$1.run(GLAutoDrawableBase.java:431)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1291)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
    at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
    at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
    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: java.lang.NoSuchMethodError: org.bridj.Pointer.pointerToAddress(JJLorg/bridj/PointerIO;Lorg/bridj/Pointer$Releaser;)Lorg/bridj/Pointer;
    at coremem.interop.BridJInterop.getBridJPointer(BridJInterop.java:39)
    at coremem.interop.BridJInterop.getBridJPointer(BridJInterop.java:68)
    at coremem.MemoryBase.getBridJPointer(MemoryBase.java:841)
    at coremem.MemoryBase.getByteBuffer(MemoryBase.java:861)
    at clearcl.backend.jocl.ClearCLBackendJOCL.lambda$wrap$36(ClearCLBackendJOCL.java:1102)
    at clearcl.backend.BackendUtils.checkExceptions(BackendUtils.java:156)
    ... 19 more
java.lang.NullPointerException
    at cleargl.GLTexture.<init>(GLTexture.java:121)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.ensureTextureAllocated(ClearGLVolumeRenderer.java:629)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.displayInternal(ClearGLVolumeRenderer.java:507)
    at clearvolume.renderer.cleargl.ClearGLVolumeRenderer.display(ClearGLVolumeRenderer.java:489)
    at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
    at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
    at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
    at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
    at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
    at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
    at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
    at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
    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)
bpavie commented 3 years ago

Following this bug, I updated to version clearvolume-1.4.2.jar , which now do not display anymore error message but the viewer doesn't start, ClearVolume is stuck at the "Loading ClearVolume..." popup step. image