Heli-X6 for Linux using 32-bit libraries - Slowness ensues

Installation and usage on Linux / Installation unter Linux
Post Reply
Dralan
Posts: 4
Joined: 25 Jul 2015 21:45

Heli-X6 for Linux using 32-bit libraries - Slowness ensues

Post by Dralan »

Hello,

I've been using Heli-X41 (paid version) for many years now on Linux, and it works great. My system is by no means slow:
2600k, 16GB dual channel memory, two Nvidia 580 GTX cards running SLI with the Nvidia Driver (opengl works fine, and I play games in steam without issue).

A few days ago, I tried to use Heli-X6, and immediately had issues. First, I noticed that the old dual library option was gone, and instead of having separate scripts to load run time libraries for 32-bit and 64-bit compilations, there is only a single script to start Heli-X.

From Heli-X41:
./libs/gluegen/linux-i586/libgluegen-rt.so
./libs/gluegen/linux-amd64/libgluegen-rt.so
./libs/jinput_old/linux-i586/libjinput-linux.so
./libs/jinput_old/linux-amd64/libjinput-linux64.so
./libs/joal/linux-i586/libopenal.so
./libs/joal/linux-i586/libjoal_native.so
./libs/joal/linux-amd64/libopenal.so
./libs/joal/linux-amd64/libjoal_native.so
./libs/lwjgl/linux-i586/liblwjgl.so
./libs/lwjgl/linux-amd64/liblwjgl64.so
./libs/jinput/linux-i586/libjinput-linux.so
./libs/jinput/linux-amd64/libjinput-linux64.so
./libs/jogl/linux-i586/libjogl.so
./libs/jogl/linux-i586/libjogl_cg.so
./libs/jogl/linux-i586/libjogl_drihack.so
./libs/jogl/linux-i586/libjogl_awt.so
./libs/jogl/linux-amd64/libjogl.so
./libs/jogl/linux-amd64/libjogl_cg.so
./libs/jogl/linux-amd64/libjogl_awt.so

From Heli-X6:
libjinput-linux64.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=59e779dc7019bb3d4dcff5bd6be7e8cc9cb37ebe, stripped
libjinput-linux.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=4fb5e1fbbfba0a937f53c3e1379b0805f4569c07, stripped
liblwjgl64.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=79aea5a6f9402a4197f8d76c333a5b8c671ba11e, stripped
liblwjgl.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=2f476eda4eb53baad0dc4a3d72e5812c7bb06f25, stripped
libopenal64.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=cd6f23c3576be4bba86264d3fc2be378e15596a6, not stripped
libopenal.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, BuildID[sha1]=14c3264f900f71fad221f4a49c81406c4bb29a26, not stripped

When I try to use the launcher provided, runHELI-X.sh, it tries to load the 32-bit libraries, and causes problems:
OpenJDK 64-Bit Server VM warning: You have loaded library /home/dralan/games/HELI-X6/libjinput-linux.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.

After that, the menus are sluggish, and I only get 5FPS in the game no matter what video options I try or what resolution I run at. Heli-X41 worked fine, and I could get hundreds of frames per seconds on my machine.

How do I tell it to load the 64-bit libraries?
User avatar
Michael
Posts: 1825
Joined: 25 May 2008 16:11
Location: Germany
Contact:

Re: Heli-X6 for Linux using 32-bit libraries - Slowness ensu

Post by Michael »

Hi,

please make sure that the 64 bit java is in your path. Then, the 64 bit libs should be loaded automatically. The Sun java is usually better the openJDK.

Michael
Dralan
Posts: 4
Joined: 25 Jul 2015 21:45

Re: Heli-X6 for Linux using 32-bit libraries - Slowness ensu

Post by Dralan »

Hello,

I had actually already tried it with:
openjdk version "1.8.0_45"
OpenJDK Runtime Environment (build 1.8.0_45-b14)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)

and with:
java version "1.8.0_51"
Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

Is there some way I can force this to run in 64-bit mode? I don't even have 32-bit java installed on my system.
User avatar
Michael
Posts: 1825
Joined: 25 May 2008 16:11
Location: Germany
Contact:

Re: Heli-X6 for Linux using 32-bit libraries - Slowness ensu

Post by Michael »

... the default resolutions of the airports changed from 4.1 to higher versions. Please load an airport of type SkyBox1024
Dralan
Posts: 4
Joined: 25 Jul 2015 21:45

Re: Heli-X6 for Linux using 32-bit libraries - Slowness ensu

Post by Dralan »

I have updated all of the helicopters and all of the airports. I have also solved the library problem / jvm warning, but the slowness persists with some bugs.

Here's what I did to fix the JVM issue:

I deleted all 32-bit .so libraries and symlinked the 64-bit libraries to their old names.
I ran ldd on all libraries and found that it was using a mix and mash of java libraries, which I fixed by setting the environment variable LD_LIBRARY_PATH=/usr/java/latest/lib/amd64/:/usr/java/latest/lib/amd64/server/. Now I get the following:
libjinput-linux64.so:
linux-vdso.so.1 (0x00007ffe861fa000)
libc.so.6 => /lib64/libc.so.6 (0x00007fd9d8512000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd9d8aee000)
liblwjgl64.so:
linux-vdso.so.1 (0x00007ffca56cc000)
libm.so.6 => /lib64/libm.so.6 (0x00007f6d6d19f000)
libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f6d6ce60000)
libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f6d6cc4e000)
libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007f6d6ca43000)
libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007f6d6c838000)
libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007f6d6c632000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6d6c415000)
libjawt.so => /usr/java/latest/lib/amd64/libjawt.so (0x00007f6d6c213000)
libc.so.6 => /lib64/libc.so.6 (0x00007f6d6be6c000)
libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f6d6bc4c000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f6d6ba47000)
libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f6d6b83d000)
libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f6d6b637000)
/lib64/ld-linux-x86-64.so.2 (0x00007f6d6d73f000)
libawt.so => /usr/java/latest/lib/amd64/libawt.so (0x00007f6d6b364000)
libawt_xawt.so => /usr/java/latest/lib/amd64/libawt_xawt.so (0x00007f6d6b10b000)
libjava.so => /usr/java/latest/lib/amd64/libjava.so (0x00007f6d6aedf000)
libjvm.so => /usr/java/latest/lib/amd64/server/libjvm.so (0x00007f6d69f15000)
libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f6d69d11000)
libXtst.so.6 => /usr/lib64/libXtst.so.6 (0x00007f6d69b0a000)
libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007f6d698fa000)
libverify.so => /usr/java/latest/lib/amd64/libverify.so (0x00007f6d696eb000)
libopenal64.so:
linux-vdso.so.1 (0x00007ffd2f547000)
librt.so.1 => /lib64/librt.so.1 (0x00007f9da99e4000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9da97c6000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f9da95c2000)
libm.so.6 => /lib64/libm.so.6 (0x00007f9da92c1000)
libc.so.6 => /lib64/libc.so.6 (0x00007f9da8f19000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9da9e76000)

Now all of the warning messages have gone away, and I think it's safe to say it is using Oracle/Sun's java, and not openJDK.

I still have slowness issues, but they are strange. I will see a white tile overhead. If the helicopter is on the ground, or if it is above eye level, I get a solid 5 FPS. If the helicopter is eye level, it suddenly speeds up to my vsync rate of 60 FPS. I think perhaps that something is not working well with my NVidia driver? I am able to play fullscreen opengl games at 1080p with max FPS with vsync enabled. I tried disabling vsync and it made no difference. Are there any other suggestions? I am running out of ideas.

Also of note, even the menus are extremely sluggish.
Dralan
Posts: 4
Joined: 25 Jul 2015 21:45

Re: Heli-X6 for Linux using 32-bit libraries - Slowness ensu

Post by Dralan »

I figured it out. It was actually shadows. I disabled shadows and am able to play the simulator with otherwise very heavy settings and it runs smoothly. I guess I'll have to turn on the shadow options one by one to see which one is causing the problem, but at least I can fly with the new version. 5FPS is simply not flyable.
Post Reply