New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to activate addon #114
Comments
So only the 2.79b from this PPA fails to load it? We can only support official Blender releases due to a lack of manpower. It reminds me a bit of this problem, it had to do with an older Blender version: https://forums.luxcorerender.org/viewtopic.php?f=4&t=193#p2510 |
It is like if this special version of Blender is compiled with an older version of Intel TBB and there is conflict with the newer version required by Intel Embree. Anyway I don't have such a problem using official Blender 2.79b. The procedure used to compile Blender version: 2.79b (from Thomas Schiex PPA) may be not entirely correct or conform to what Blender Foundation does. Any particular reason to not use the official Blender 2.79b ? |
Kubuntu Linux x64, Blender 2.79b official Had trouble activating addon while following installation instruction.
Like pyluxcore binary has interface different from what LuxBlend expected. Finally I found that I need to disable old LuxRender 1.7 addon and not only that, but restart Blender after deactivation, and now new LuxCore addon activation went smoothly.
Hope it is relevant. |
I think step 4 is not needed, or is it? |
Yes, step 4 looks unnecessary.
I'm not a native english-speaker. But I can do that. If nobody will make it in about a day than I will register and add a mark. |
It may be handy to have a check in BlendLuxCore if the old plugin is enabled, is it possible ? |
Nobody in the team is, currently ;)
I'll look into it. |
OK, 2.79b official activates the addon, but crashes while attempting to render.
It is cozily to get updates automatically, no need to go to the website, download an archive and unzip it. Nothing more. |
Any useful error messages or just the usual ERROR_ACCESS_VIOLATION? |
See my post here: https://forums.luxcorerender.org/viewtopic.php?f=5&p=2637#p2637 |
What I did: started Blender, removed standard material, created new (matte, glossy, glass), changed lamp to Sun, attached it to Sky, started render. |
Can you post the scene triggering this crash, are you rendering on CPU or GPU ? |
And what CPU do you have ? It is unlikely but if you have a very old CPU, LuxCore may have been compiled with some instruction set is not supported by your CPU. |
My CPU is AMD Phenom II 1055T. No matter what I choose: CPU or GPU only, it crashes. https://drive.google.com/open?id=1nmz43ddjVzNasMGd2_k2M0v0egb48gBs |
Got it. Added to the Wiki page.
works fine for me, CPU, GPU, both. Intel i7 3770, AMD R9 290. So no new info from my side. P.S. Tried to build Blender following instructions there: https://wiki.blender.org/index.php/Dev:Doc/Building_Blender/Linux/Ubuntu/CMake and got Blender incompatible with LuxCore 2.0 beta2. Error message at activation exactly like presented by mageaster.
|
The scene works fine here too. There must be something in mageaster installation. @mageaster, can you try to download and install the BlendLuxCore CPU-only version (OpenCL-less) ? If it works it may be a problem strictly related to your OpenCL driver installation (not uncommon on Linux when using AMD/NVIDIA binary drivers). |
@Dade916, OpenCL-less version crashes as well. |
Strange problem, one more test: try to download the stand alone cpu-only version (https://github.com/LuxCoreRender/LuxCore/releases/download/luxcorerender_v2.0beta2/luxcorerender-v2.0beta2-linux64.tar.bz2), unpack the tar and run the following command:
Does it work ? |
|
Russian isn't exactly my native language, anyway I assume it is a crash. There is something different in your system, it may be some language related setting. If you switch to a western language, I assume that it will work. I can not investigate this problem because I don't have such a system. |
I think, this issue should be isolated into a new entry. |
Try: gdb ./luxcoreui and, after the crash: bt Does Russia uses "," as decimal separator instead of "." ? The problem may be here:
|
Yes, it uses comma, but changing numeric locale has no effect. |
It may be something like this: https://issues.apache.org/jira/browse/IMPALA-1399?attachmentSortBy=fileName Check the "julien.eid_impala_81c5 Julien Eid added a comment - 22/Dec/14 18:02" comment. Boost seems to uses SSE4 to accelerate boost::uuids so current LuxCore binaries works only on SSE4 capable CPUs even it is not compiled to use SSE4 instruction set. I will check if it is easy to disable Boost SSE4 usage but it may be not possible. |
That's weird because I have the exact same CPU on my Windows machine (AMD Phenom II 1055t) and it works fine there. |
It may be just the Linux Boost binaries used, to be compiled (by error) for SSE4. My CPU is SSE4 enabled. |
So I guess the problem is in your Phenom II system, closing the issue. |
How can it be problem in Phenom II system, if self-built luxcoreui works? No, this is pyluxcore issue. |
Or its a problem of how the Phenom II system is installed: some setting, some package conflict or something else. Anyway it is something only you can track because it happens only on that particular system as the test on your laptop seems to prove. |
I'm facing the same issue. Running on completely different hardware here:
I assume it might be a shared library path issue. I've been facing this with other projects, that i couldn't compile due to undefined symbol errors, even though they were compiling just fine on other machines. Back then i fixed it by adding a directory to LDFLAGS. There's a similar environment variable called LD_LIBRARY_PATH for dynamically linked executables. I'll be searching on this today and post my findings here @mageaster Are you still facing this issue? |
The renderer itself works for me too. Only BlendLuxCore fails to activate with the same undefined symbol error as mageaster's |
@leso-kn I didn't try it any more. |
Hrm.. maybe you could try again with the latest version. If the issue persists i'll tell you if i can fix it |
OK, I've tested it right now. Blender 2.79b official, BlendLuxCore 2.0 with OpenCL official. Now on Kubuntu 18.04. Add-on activates, but still crashes Blender even when I try to open a preview (probably still requires SSE4/SSSE3). |
okay, interesting! I'm using the same blender version on Ubuntu 16.04.5 (forgot to mention that in the specs) |
Everything except OS and driver's version is the same: hardware, locale etc. |
Maybe it's related to the os then. I guess it's not necessarily been tried on 16.04.. |
As this is probably not hardware related, but because of linking, can we re-open the issue? @Dade916 |
:~$ Downloads/blender-2.79b-linux-glibc219-x86_64/blender |
@leso-kn The problem is hardware related, our hardware doesn't support certain instructions. Dade916 can deploy this software with whatever optimizations his heart desires, and is wise to set those optimizations to best help the most people. I'd much rather he spend his expertise working on stuff far beyond my comprehension than this. Forum post. I'm working through the Linux compilation. One solution could be to instead of statically linking against Boost (which is deployed with BlendLuxCore & LuxCore), it would be dynamically linked against, and the libboost.so built deployed with BlendLuxCore alongside the other three shared libraries (e.g. libtbb.so). In our circumstance, the distributed libboost.so could be just renamed/deleted, so that the system's libboost is used instead (e.g. libboost-chrono1.67.0 Debian package). This solution would result in affected end users (e.g. AMD Phenom II) not having to compile anything. Debian package policy strictly forbids CPU specific optimizations (unless both optimized & non are deployed), so there shouldn't be any problem with Debian's libboost (if there is it's a bug against that package). I'll try to put in a pull request with this solution. Stuff showing I'm also affected:
And using gdb:
|
@AndrewSmart Thank you for this solution approach! I could run a test with your patches on my hardware if you want. Did you upload a patched version of the source already? |
@leso-kn Thinking on this more I think using Debian package management would be better/broader solution than what I mentioned earlier... leaving their static Linux build alone. I'll look into making a script to build a Debian "BlendLuxCore" package... essentially this but with appropriate dependencies. Resultant package can be installed with EDIT: Related... requested Debian package. |
@AndrewSmart Sounds good too! Having a debian package would cover a lot of advantages. But i guess it's a bit more time consuming than just linking libboost dynamically. Maybe we can start off with that and ship the dynamically linked version with future debian packages when that task is taken on |
If you find a way to modify the Boost building options (https://github.com/LuxCoreRender/LinuxCompile/blob/2d200db4982ea36f6d4decb0991a7d58da007eb0/build#L221) without SSS3 instructions, we can just use it as default procedure. I'm pretty sure that the lack of SSS3 instruction will not have any impact on performance. It is just the default way Boost seems to be compiled. |
@Dade916 Yes, '-mtune=generic -mno-ssse3' would work, but I've found LuxCore would still have ssse3 due to cmake/PlatformSpecific.cmake. Proof with ~/dev/LuxCoreRender/LuxCore$ gdb ./build/bin/luxcoreui
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
[...snip...]
(gdb) r scenes/cornell/cornell.cfg
Starting program: /media/crunchbang/nvidia1/dev/LuxCoreRender/LuxCore/build/bin/luxcoreui scenes/cornell/cornell.cfg
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffd5a00700 (LWP 11946)]
LuxCoreUI v2.1alpha4 (LuxCore demo: http://www.luxcorerender.org)
[LuxCore][0.001] Configuration:
[LuxCore][0.001] film.width = "512"
[LuxCore][0.001] film.height = "512"
[LuxCore][0.001] scene.file = "scenes/cornell/cornell.scn"
[LuxCore][0.001] film.imagepipelines.0.0.type = "GAMMA_CORRECTION"
[LuxCore][0.001] film.imagepipelines.0.0.value = "2.2"
[LuxCore][0.001] film.outputs.2.type = "MATERIAL_ID_COLOR"
[LuxCore][0.001] film.outputs.2.filename = "cornell_MATERIAL_ID_COLOR.png"
[SDL][0.001] Reading scene: scenes/cornell/cornell.scn
[SDL][0.001] Material definition: Khaki
[SDL][0.002] Material definition: HalveRed
[SDL][0.002] Material definition: DarkGreen
[SDL][0.002] Material definition: Light
[SDL][0.002] WARNING: deprecated property scene.camera.lookat
[SDL][0.002] Camera type: perspective
[SDL][0.002] Camera position: Point[-2.78, -8, 2.73]
[SDL][0.002] Camera target: Point[-2.78, 2, 2.73]
[SDL][0.002] Camera clipping plane disabled
[SDL][0.003] The Grey object is a light sources with 2 triangles
[SDL][0.003] Scene objects count: 4
[SDL][0.309] Camera type: perspective
[SDL][0.309] Camera position: Point[-2.78, -8, 2.73]
[SDL][0.309] Camera target: Point[-2.78, 2, 2.73]
[SDL][0.309] Camera clipping plane disabled
Film size adjusted: 512x512 (Frame buffer size: 512x512)
[LuxCore][0.309] Film resolution: 512x512
[SDL][0.316] Film output definition: RGB_IMAGEPIPELINE [image.png]
[SDL][0.317] Image pipeline: film.imagepipelines.0
[SDL][0.317] Image pipeline step 0: GAMMA_CORRECTION
[SDL][0.317] Film output definition: MATERIAL_ID_COLOR [cornell_MATERIAL_ID_COLOR.png]
[LuxRays][1.412] OpenCL Platform 0: Advanced Micro Devices, Inc.
[LuxRays][1.413] Device 0 name: NativeThread
[LuxRays][1.413] Device 0 type: NATIVE_THREAD
[LuxRays][1.413] Device 0 compute units: 1
[LuxRays][1.413] Device 0 preferred float vector width: 4
[LuxRays][1.413] Device 0 max allocable memory: 0MBytes
[LuxRays][1.413] Device 0 max allocable memory block size: 0MBytes
[LuxRays][1.413] Device 1 name: AMD Phenom(tm) II X6 1100T Processor
[LuxRays][1.413] Device 1 type: OPENCL_CPU
[LuxRays][1.413] Device 1 compute units: 6
[LuxRays][1.413] Device 1 preferred float vector width: 4
[LuxRays][1.413] Device 1 max allocable memory: 7966MBytes
[LuxRays][1.413] Device 1 max allocable memory block size: 2048MBytes
[LuxRays][1.413] Creating 6 intersection device(s)
[LuxRays][1.413] Allocating intersection device 0: NativeThread (Type = NATIVE_THREAD)
[LuxRays][1.413] Allocating intersection device 1: NativeThread (Type = NATIVE_THREAD)
[LuxRays][1.413] Allocating intersection device 2: NativeThread (Type = NATIVE_THREAD)
[LuxRays][1.413] Allocating intersection device 3: NativeThread (Type = NATIVE_THREAD)
[LuxRays][1.414] Allocating intersection device 4: NativeThread (Type = NATIVE_THREAD)
[LuxRays][1.414] Allocating intersection device 5: NativeThread (Type = NATIVE_THREAD)
[LuxCore][1.414] Configuring 6 CPU render threads
[LuxRays][1.414] Preprocessing DataSet
[LuxRays][1.414] Total vertex count: 64
[LuxRays][1.414] Total triangle count: 32
[LuxRays][1.414] Preprocessing DataSet done
[LuxRays][1.414] Adding DataSet accelerator: EMBREE
[LuxRays][1.414] Total vertex count: 64
[LuxRays][1.414] Total triangle count: 32
[New Thread 0x7fffc4a56700 (LWP 11949)]
[New Thread 0x7fffbffff700 (LWP 11950)]
[New Thread 0x7fffc4655700 (LWP 11951)]
[New Thread 0x7fffbfbfe700 (LWP 11952)]
[New Thread 0x7fffbf7fd700 (LWP 11953)]
[LuxRays][1.434] EmbreeAccel build time: 17ms
[New Thread 0x7fffbe3f8700 (LWP 11954)]
[New Thread 0x7fffbdbf7700 (LWP 11955)]
[New Thread 0x7fffbd3f6700 (LWP 11956)]
[New Thread 0x7fffbcbf5700 (LWP 11957)]
[New Thread 0x7fff9ffff700 (LWP 11958)]
[New Thread 0x7fff9f7fe700 (LWP 11959)]
[LuxCore][1.465] Film OpenCL image pipeline
[New Thread 0x7fff9effd700 (LWP 11960)]
[New Thread 0x7fff9e7fc700 (LWP 11961)]
[New Thread 0x7fff9dffb700 (LWP 11962)]
[New Thread 0x7fff9d7fa700 (LWP 11963)]
[New Thread 0x7fff9cff9700 (LWP 11964)]
Program received signal SIGILL, Illegal instruction.
0x000055555584da42 in ImDrawList::AddConvexPolyFilled(ImVec2 const*, int, unsigned int, bool) ()
(gdb) display/i $pc
1: x/i $pc
=> 0x55555584da42 <_ZN10ImDrawList19AddConvexPolyFilledEPK6ImVec2ijb+242>: pshufb 0x756635(%rip),%xmm5 # 0x555555fa4080 To solve said problem, I propose two release CMAKE_BUILD_TYPE types, which I have implemented:
See an example difference in instruction sets here. |
I'm thinking 3 packages:
For sure, you would know far better than I how everything should be organized, and what all should be included. It is the cmake 'install' clauses which dictate what is put into which package. Here is my packaging progress so far, all generated from CMake:
I don't have a blender-luxcorerender prototype yet.
Now a peek at the files:
Some warnings on libraries that don't appear to be used (FYI, IDK if important):
I have some plumbing in there for Ubuntu packaging, and rpm packaging, but I don't have the capacity/interest to test/validate those. But that is more a wishlist item anyway, those users do have the capacity to install Debian debs. CPack may improve distribution onto APPLE/Windows computers as well, with the relevant package generators. Once the Debian packages are made, maybe Mr. Matteo F. Vescovi may be of help, as he appears to maintain the Debian blender and openimageio packages. But problems would need to be addressed first, like libembree packaging. Also, I propose:
Both of which are distributed via Debian packages. If they are not found on the system, then cmake would include those sources from the source tree, e.g. add_subdirectory(deps/glfw-3.1.1). By doing this the binary size of the luxcorerender2.1alpha4.deb would be substantially reduced. I am quite tight on space, as is Mr. stig-atle. Perhaps the scenes could be deployed compressed on a per scene basis? 120.8 MB -> 27.1MB via .tar.lzma, e.g.
I thought I'd get your feedback before progressing more. EDIT: You can check out my branch to inspect/try the .deb packages if you wish. sudo alien embree3-devel-3.2.1-1.noarch.rpm
sudo alien embree-lib-3.2.1-1.x86_64.rpm --scripts
sudo dpkg -i embree3-devel_3.2.1-2_all.deb
sudo dpkg -i embree3-lib_3.2.1-2_amd64.deb And I call luxcore via |
@AndrewSmart Thank you for providing your deb packages! I will try them out now and tell you the results as soon as possible |
Okay i tried serval things now but cmake doesn't seem to find boost. Is there any option to specify the boost location? So far everything looks good inside the makefiles |
@leso-kn You need boost 1.67, as it is the first one distributed on Debian/Ubuntu with libboost_numpy3. It needs libc6 (>= 2.17), same as boost 1.58, so I think you're good. Upgrading libc6 due to a package in a newer release can break things, in this case you don't have to upgrade libc6. I don't use Ubuntu, but I'm guessing you need to add universe from cosmic if you had not already: sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu cosmic universe" Then sudo apt-get install libboost-atomic1.67-dev libboost-atomic1.67.0 libboost-chrono1.67-dev libboost-chrono1.67.0 libboost-date-time1.67-dev libboost-date-time1.67.0 libboost-filesystem1.67-dev libboost-filesystem1.67.0 libboost-iostreams1.67-dev libboost-iostreams1.67.0 libboost-numpy1.67-dev libboost-numpy1.67.0 libboost-program-options1.67-dev libboost-program-options1.67.0 libboost-python1.67-dev libboost-python1.67.0 libboost-regex1.67-dev libboost-regex1.67.0 libboost-serialization1.67-dev libboost-serialization1.67.0 libboost-system1.67-dev libboost-system1.67.0 libboost-thread1.67-dev libboost-thread1.67.0 libboost1.67-dev |
oof.. That seems like a lot of libraries. Also i think it may cause dependency issues with other packages. Maybe i'll just go for installing all these libraries on version 1.58, the makefiles say minimum version requirement is 1.56 |
The -dev ones include the .a static libraries, for static linkage. the .0 ones contain the .so shared libraries for dynamic linkage, and the libboost1.67-dev contains the header files.
Shouldn't. 1.58 can be installed alongside 1.67, and must be the case as libopenimageio1.6 requires boost 1.58. It all works fine on my system... and the boost devs made sure to mangle the symbol names between versions so there won't be any conflicts. An important detail I forgot to mention earlier is apt-pinning after adding cosmic universe, so that you don't encounter issues updating other packages. If you do add the cosmic repo, pin cosmic packages at something like 50, so that they're not installed instead of your 16.04 release: Create and edit a new file in /etc/apt/preferences.d/ directory:
Then you'll see cosmic packages pinned at 50, and your release at 500:
So But anyways, do whatever you want, figure out what works for you. |
@AndrewSmart Alright, so it works with the boost 1.67 libraries from cosmic. I had to uninstall my old boost libraries, but nothing depended on them so i guess it's fine. I'll install embree now and see if it works |
@AndrewSmart Thanks, I have added a "-mno-ssse3" to any place where "-mtune=generic" is used in LinuxCompile repository. So the next builds should work on old CPU too. |
@Dade916 Thank you! 👍 As it's morning arround here, i didn't test the changes on my hardware yet, but i compiled the changes overnight and will test everything within the next hour |
As i'm still having trouble compiling the renderer due to some boost library issues (there are some conflicts with my version and the new one) i'll just wait for the new release. I'll upgrade this machine at some point anyways. Thanks everyone for the support, looking forward to see this in the next version! |
System Information
Ubuntu MATE 16.04.4, Nvidia GeForce GTX 550Ti, driver version 384.111
Software Version
Error message from Blender console
Short description of error
Addon installs, but unable to activate
Exact steps for others to reproduce the error
Launch Blender, install addon, try to activate.
Blender 2.79 official works nice.
The text was updated successfully, but these errors were encountered: