Joined: Sep 15, 2012
Post Count: 13
Status:
Offline
Can't start sweethome3d on Linux
Intel z270, i7-7700K, Linux 4.13 (4.13.8-1-zen), arch linux distro, Sapphire NITRO+ RADEON RX 580 Special Edition 8G GDDR5, amdgpu driver, 16gb ddr4, de KDE. system full updated, Linux-zen kernel.
Extended renderer info (GLX_MESA_query_renderer): Vendor: X.Org (0x1002) Device: Radeon RX 580 Series (AMD POLARIS10 / DRM 3.18.0 / 4.13.8-1-zen, LLVM 5.0.0) (0x67df) Version: 17.2.2 Accelerated: yes Video memory: 8143MB Unified memory: no Preferred profile: core (0x1) Max core profile version: 4.5 Max compat profile version: 3.0 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.1 OpenGL vendor string: X.Org OpenGL renderer string: Radeon RX 580 Series (AMD POLARIS10 / DRM 3.18.0 / 4.13.8-1-zen, LLVM 5.0.0) OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.2.2 OpenGL core profile shading language version string: 4.50 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile
I get the splash screen and then nothing happens. Running from a console, I can see the error messages/call stack. I especially notice: Exception in thread "main" java.lang.InternalError: XXX0 profile[1]: GL3bc -> profileImpl GL4bc !!! not mapped
Full call stack from error: Exception in thread "main" java.lang.InternalError: XXX0 profile[1]: GL3bc -> profileImpl GL4bc !!! not mapped at com.jogamp.opengl.GLProfile.computeProfileMap(GLProfile.java:2071) at com.jogamp.opengl.GLProfile.initProfilesForDeviceCritical(GLProfile.java:1924) at com.jogamp.opengl.GLProfile.initProfilesForDevice(GLProfile.java:1875) at com.jogamp.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1843) at com.jogamp.opengl.GLProfile.access$000(GLProfile.java:80) at com.jogamp.opengl.GLProfile$1.run(GLProfile.java:230) at java.security.AccessController.doPrivileged(Native Method) at com.jogamp.opengl.GLProfile.initSingleton(GLProfile.java:216) at com.jogamp.opengl.GLProfile.getProfileMap(GLProfile.java:2297) at com.jogamp.opengl.GLProfile.get(GLProfile.java:1021) at com.jogamp.opengl.GLProfile.get(GLProfile.java:1050) at com.jogamp.opengl.GLProfile.getMaxFixedFunc(GLProfile.java:803) at javax.media.j3d.JoglPipeline.initialize(JoglPipeline.java:131) at javax.media.j3d.Pipeline.createPipeline(Pipeline.java:92) at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:858) at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:267) at javax.media.j3d.GraphicsConfigTemplate3D.getBestConfiguration(GraphicsConfigTemplate3D.java:317) at java.awt.GraphicsDevice.getBestConfiguration(GraphicsDevice.java:207) at com.eteks.sweethome3d.j3d.Component3DManager.<init>(Unknown Source) at com.eteks.sweethome3d.j3d.Component3DManager.getInstance(Unknown Source) at com.eteks.sweethome3d.SweetHome3D.addComponent3DRenderingErrorObserver(Unknown Source) at com.eteks.sweethome3d.SweetHome3D.init(Unknown Source) at com.eteks.sweethome3d.SweetHome3D.main(Unknown Source)
Netherlands
Joined: Sep 26, 2009
Post Count: 4000
Status:
Offline
Re: Can't start sweethome3d on Linux
The Linux version comes with a startup-script called Java-1.5 or something similar. Use that script to start SH3D.
----------------------------------------
Hans
Netherlands
Joined: Sep 26, 2009
Post Count: 4000
Status:
Offline
Re: Can't start sweethome3d on Linux
#!/bin/sh
# Retrieve Sweet Home 3D directory PROGRAM=`readlink "$0"` if [ "$PROGRAM" = "" ]; then PROGRAM=$0 fi PROGRAM_DIR=`dirname "$PROGRAM"`
# Run Sweet Home 3D exec "$PROGRAM_DIR"/jre8/bin/java -Xmx1024m -classpath "$PROGRAM_DIR"/lib/SweetHome3D.jar:"$PROGRAM_DIR"/lib/Furniture.jar:"$PROGRAM_DIR"/lib/Textures.jar:"$PROGRAM_DIR"/lib/Examples.jar:"$PROGRAM_DIR"/lib/Help.jar:"$PROGRAM_DIR"/lib/iText-2.1.7.jar:"$PROGRAM_DIR"/lib/freehep-vectorgraphics-svg-2.1.1b.jar:"$PROGRAM_DIR"/lib/sunflow-0.07.3i.jar:"$PROGRAM_DIR"/lib/jmf.jar:"$PROGRAM_DIR"/lib/batik-svgpathparser-1.7.jar:"$PROGRAM_DIR"/lib/j3dcore.jar:"$PROGRAM_DIR"/lib/j3dutils.jar:"$PROGRAM_DIR"/lib/vecmath.jar:"$PROGRAM_DIR"/jre8/lib/javaws.jar -Djava.library.path="$PROGRAM_DIR"/lib -Dcom.eteks.sweethome3d.applicationId=SweetHome3D#Installer com.eteks.sweethome3d.SweetHome3D -open "$1"
----------------------------------------
Hans
France
Joined: Jan 23, 2018
Post Count: 6
Status:
Offline
[solved] Re: Can't start sweethome3d on Linux
I was thrilled to find this script, as I had the same problem on Arch Linux. I had to change "readlink" to "realpath" but SH3D then loaded. Very disappointed that it is not in fact doing any 3D. The bottom right panel remains blank and the plan shows a jumble of white rectangles where furniture and other items should be. Such a pity not to be able to run this application.
France
Joined: Jan 23, 2018
Post Count: 6
Status:
Offline
[solved] Re: Can't start sweethome3d on Linux
In the start script above, it probably depends on your shell, but may be necessary to replace (in line 4) the deprecated "readlink" with "realpath" to get the intended result.
France
Joined: Jan 23, 2018
Post Count: 6
Status:
Offline
Re: [solved] Re: Can't start sweethome3d on Linux
Further explanation of the problem using SH3D on Arch Linux.
Installation of the package available for the distro results in only the splash screen. Using the start script is difficult because the libraries listed are located in different directories. It may be possible to edit the script. I have not tried as I am unsure how to select compatible versions.
Installing from the SweetHome3D site, it is easy to edit the script to start the program, but the 3D rendering fails. The following errors are generated (it looks as though the first few lines are critical):
Java 3D: implicit antialiasing enabled amdgpu_parse_asic_ids: Cannot parse ASIC IDs: Ressource temporairement non disponible Exception in thread "AWT-EventQueue-0" javax.media.j3d.IllegalRenderingStateException: Can't create graphics environment for Canvas 3D at com.eteks.sweethome3d.j3d.Component3DManager.getCanvas3D(Unknown Source) at com.eteks.sweethome3d.j3d.Component3DManager.getOnscreenCanvas3D(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D.createComponent3D(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D.access$200(Unknown Source) at com.eteks.sweethome3d.swing.HomeComponent3D$1.ancestorAdded(Unknown Source) at javax.swing.AncestorNotifier.fireAncestorAdded(AncestorNotifier.java:86) at javax.swing.AncestorNotifier.componentShown(AncestorNotifier.java:193) at java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:180) at java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:179) at java.awt.AWTEventMulticaster.componentShown(AWTEventMulticaster.java:179) at java.awt.Component.processComponentEvent(Component.java:6365) at java.awt.Component.processEvent(Component.java:6313) at java.awt.Container.processEvent(Container.java:2237) at java.awt.Window.processEvent(Window.java:2025) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2295) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) 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