If this warrants a bugtracker entry and isn't a simple fix for just me, I apologize.
It seems like such a small thing to file a bug report for...
Anyway, can't use the BlendLuxCore v2.0 package. Won't work at all.
Fails with 'ERROR: clGetDeviceIDs'
I know this has come up in at least one other thread before... yes I have installed - and working - both the Intel and NVIDIA CUDA/OpenCL drivers in linux. It works fine in blender*, I can pick between them for cycles.
All the [Exporter] [SDL] and [LuxCore] entries seem normal, then...
Code: Select all
...
[LuxRays][275.610] OpenCL Platform 0: The pocl project
[LuxRays][275.610] OpenCL Platform 1: NVIDIA Corporation
[LuxRays][275.610] OpenCL Platform 2: Mesa
[LuxRays][275.610] OpenCL Platform 3: Intel (R) Corporation
Traceback (most recent call last):
File "/home/trytoremember/.config/blender/2.79/scripts/addons/BlendLuxCore/engine/__init__.py", line 36, in render_final
final.render(self, scene)
File "/home/trytoremember/.config/blender/2.79/scripts/addons/BlendLuxCore/engine/final.py", line 36, in render
_render_layer(engine, scene)
File "/home/trytoremember/.config/blender/2.79/scripts/addons/BlendLuxCore/engine/final.py", line 48, in _render_layer
engine.session = engine.exporter.create_session(engine=engine)
File "/home/trytoremember/.config/blender/2.79/scripts/addons/BlendLuxCore/export/__init__.py", line 169, in create_session
session = pyluxcore.RenderSession(renderconfig)
RuntimeError: clGetDeviceIDs
ERROR: clGetDeviceIDs
Error: clGetDeviceIDs
Code: Select all
# clinfo
Number of platforms 4
Platform Name Portable Computing Language
Platform Vendor The pocl project
Platform Version OpenCL 1.2 pocl 1.1 RelWithDebInfo, LLVM 6.0.0, SPIR, SLEEF, DISTRO, POCL_DEBUG
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd
Platform Extensions function suffix POCL
Platform Name Clover
Platform Vendor Mesa
Platform Version OpenCL 1.1 Mesa 18.0.5
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd
Platform Extensions function suffix MESA
Platform Name NVIDIA CUDA
Platform Vendor NVIDIA Corporation
Platform Version OpenCL 1.2 CUDA 9.1.84
Platform Profile FULL_PROFILE
Platform 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_copy_opts cl_nv_create_buffer
Platform Extensions function suffix NV
Platform Name Intel(R) OpenCL
Platform Vendor Intel(R) Corporation
Platform Version OpenCL 2.0
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd 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_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64 cl_khr_image2d_from_buffer
Platform Extensions function suffix INTEL
But wait, there's more!
With BlendLuxCore plugin installed but not working, it breaks all console rendering, regardless of engine! Come to think of it, I bet this part is considered worthy of a bugtracker entry, when parsing opencl abilities stops all command line rendering...
Code: Select all
$ ./blender -b -E BLENDER_RENDER -F EXR -o //example-blender-internal.exr ~/example.blend
Read prefs: /home/trytoremember/.config/blender/2.79/config/userpref.blend
found bundled python: /home/trytoremember/Downloads/blender/blender-2.79b-linux-glibc219-x86_64/2.79/python
pyluxcore version: 2.0
Traceback (most recent call last):
File "/home/trytoremember/.config/blender/2.79/scripts/addons/BlendLuxCore/handlers/__init__.py", line 24, in luxcore_load_post
scene.luxcore.opencl.update_devices_if_necessary()
File "/home/trytoremember/.config/blender/2.79/scripts/addons/BlendLuxCore/properties/opencl.py", line 39, in update_devices_if_necessary
device_list = self.get_opencl_devices()
File "/home/trytoremember/.config/blender/2.79/scripts/addons/BlendLuxCore/properties/opencl.py", line 74, in get_opencl_devices
return pyluxcore.GetOpenCLDeviceList()
RuntimeError: clGetDeviceIDs
Read blend: /home/trytoremember/example.blend
Traceback (most recent call last):
File "/home/trytoremember/.config/blender/2.79/scripts/addons/BlendLuxCore/handlers/__init__.py", line 24, in luxcore_load_post
scene.luxcore.opencl.update_devices_if_necessary()
File "/home/trytoremember/.config/blender/2.79/scripts/addons/BlendLuxCore/properties/opencl.py", line 39, in update_devices_if_necessary
device_list = self.get_opencl_devices()
File "/home/trytoremember/.config/blender/2.79/scripts/addons/BlendLuxCore/properties/opencl.py", line 74, in get_opencl_devices
return pyluxcore.GetOpenCLDeviceList()
RuntimeError: clGetDeviceIDs
Blender quit
Thoughts?
I thought maybe it could it be the mesa or pocl entries since they don't list any extensions, but the script didn't include much in the way of checks; it doesn't seem like it would break, just maybe present something that wasn't a GPU?
Code: Select all
...
def devices_to_selection_string(self):
selection = ""
for device in self.devices:
enabled = device.enabled
# Never use OpenCL CPU devices
if device.type == "OPENCL_CPU":
enabled = False
selection += "1" if enabled else "0"
return selection
def get_opencl_devices(self):
"""
Returns a list of tuples of the form:
(name, type, compute_units, native_vector_width_float, max_memory, max_memory_alloc_size)
where:
- name is a name string, e.g. "Tahiti"
- type is a string in ("ALL", "NATIVE_THREAD", "OPENCL_ALL", "OPENCL_DEFAULT",
"OPENCL_CPU", "OPENCL_GPU", "OPENCL_UNKNOWN", "VIRTUAL", "UNKOWN")
(most common is probably "OPENCL_CPU" and "OPENCL_GPU")
"""
return pyluxcore.GetOpenCLDeviceList()
Can I maybe force it (hardcode it) to use nVidia/Intel/both and just bypass the query routine?
It's frustrating that the query routine failing breaks CPU rendering too; the i7-8750H has six 2.2GHz cores which might not be a supercomputer but is faster than 99% of laptops. ~40% faster than the ubitiquous gamer laptop's i7-7700HQ and ~25% faster than a Ryzen 7 Pro 2700 8-core desktop.
Any help appreciated, and thanks for reading!
---
* [[ Once I figured out the Fedora 28 package maintainer didn't properly compile CUDA/OpenCL support. Wasted an hour trying to figure it out before grabbing the blender.org one, which worked effortlessly. According to the build log they set the flags wrong, even though CUDA & OpenCL libs are actually compiled in. I guess I should learn how to file 'proper' bug reports. sigh. ]]