Welcome, Guest

Author Topic: [SOLVED] [BUG] Can't start US2 on Linux/AMD 7790 Bonaire  (Read 17009 times)

andy

  • **
  • Posts: 16
[SOLVED] [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« on: August 15, 2014, 08:36:15 AM »
Hi, first of all big thanks for letting me join the alpha testers group.
After launching the game, all I see is logo and rotating circular symbol. I waited more than 5 minutes, nothing happened. I checked the log file, and these are its final lines:
Code: [Select]
FormatException: Unknown char: .
  at System.Double.Parse (System.String s, NumberStyles style, IFormatProvider provider) [0x00000] in <filename unknown>:0
  at System.Single.Parse (System.String s) [0x00000] in <filename unknown>:0
  at System.Convert.ToSingle (System.String value) [0x00000] in <filename unknown>:0
  at CelestialFundamentalProperties.ReadPlanetModelDataTable () [0x00000] in <filename unknown>:0
  at CelestialFundamentalProperties.Load () [0x00000] in <filename unknown>:0
  at LoadMainLevel+<Start>c__Iterator8.MoveNext () [0x00000] in <filename unknown>:0
 
(Filename:  Line: -1)
is there anything obvious I could do to prevent this error?

My specs:
Ubuntu 12.04LTS 64 bit
RAM: 4GB DDR
CPU: AMD FX6300
GPU: Gigabyte Radeon HD7790 / 1GB RAM
drivers 14.4 (exact version from amdcccle: 14.10.1006-140417a-171101C)

I'm attaching my logfile.

It's worth noting, that the same game runs fine on Linux Mint, lower specs machine with Nvidia 8200 (although it runs very slow).
« Last Edit: November 12, 2014, 09:51:18 AM by andy »

C7

  • Development Team
  • *****
  • Posts: 544
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #1 on: August 15, 2014, 08:53:20 AM »
Seems to be a language issue with the version of Linux you're using. My suspicion, is that you're using a specification where the decimal separator is a comma, instead of a . like it is for other platforms.

For example, your system would show 1.1 as 1,1 instead.

In the meantime, you should be able to specify LC_ALL=C as an environment variable when launching the application.

Or, change your system language to one that uses . as a decimal separator instead of a comma.

http://www.howtogeek.com/howto/17528/change-the-user-interface-language-in-ubuntu/

I'll work on fixing the areas of the code where we're language dependent. But let me know if that works for you.

andy

  • **
  • Posts: 16
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #2 on: August 15, 2014, 09:16:49 AM »
Thanks for the quick response, C7.
This time it went a bit further and failed with core dump. Error seems to be:
Code: [Select]
NullReferenceException: Object reference not set to an instance of an object
  at (wrapper managed-to-native) Cloo.Bindings.CL10:CreateContext (intptr[],int,Cloo.Bindings.CLDeviceHandle[],Cloo.Bindings.ComputeContextNotifier,intptr,Cloo.ComputeErrorCode&)
  at Cloo.ComputeContext..ctor (ICollection`1 devices, Cloo.ComputeContextPropertyList properties, Cloo.Bindings.ComputeContextNotifier notify, IntPtr notifyDataPtr) [0x00000] in <filename unknown>:0
  at GiantArmy.Physics.NBody.Accelerators.Gravity.GravityCalculatorOpenCL.setupOpenCL (Cloo.ComputeDevice device) [0x00000] in <filename unknown>:0
  at GiantArmy.Physics.NBody.Accelerators.Gravity.GravityCalculatorOpenCL..ctor (ComputeDeviceDescriptor deviceDescriptor) [0x00000] in <filename unknown>:0
  at GiantArmy.Physics.NBody.Accelerators.Gravity.GravityCalculator.Create (ComputeDeviceDescriptor device) [0x00000] in <filename unknown>:0
  at GiantArmy.Physics.PhysicsEngine.set_ComputingDevice (ComputeDeviceDescriptor value) [0x00000] in <filename unknown>:0
  at GiantArmy.Physics.PhysicsEngine..ctor (GiantArmy.Physics.NBody.NBodyManager bodyManager) [0x00000] in <filename unknown>:0
  at Simulation..ctor () [0x00000] in <filename unknown>:0
  at Sandbox.Start () [0x00000] in <filename unknown>:0
 
(Filename:  Line: -1)
Full log attached.

C7

  • Development Team
  • *****
  • Posts: 544
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #3 on: August 15, 2014, 09:41:12 AM »
Ah, that one's a bit trickier. First thing is to check if your distro has OpenCL included in it. If not, you'll need to pull down a package that contains it. Since you're using an AMD card... you should be able to use the AMD Accelerated Parallel Processing packages. Seems your card is basically saying, "I can do OpenCL" so we switch to using that, (because it's a lot faster), then it can't bind to the compute device.

http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/

Sorry it's been a hassle, but we can hopefully find these dependencies and come up with a better process for Linux users as the Alpha progresses. Thank you for help with testing so far!

andy

  • **
  • Posts: 16
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #4 on: August 15, 2014, 10:18:39 AM »
It's no hassle, we're testing alpha after all;)
I used this machine to mine bitcoins on GPU (when it was still profitable), so I do have OpenCL installed (through AMD APP SDK).
I'm not sure however if it is right version for Universe Sandbox 2 needs.
If there's anything else I should check, please let me know.

Here is my output from clinfo:
Code: [Select]
Number of platforms:                             1
  Platform Profile:                              FULL_PROFILE
  Platform Version:                              OpenCL 1.2 AMD-APP (1113.2)
  Platform Name:                                 AMD Accelerated Parallel Processing
  Platform Vendor:                               Advanced Micro Devices, Inc.
  Platform Extensions:                           cl_khr_icd cl_amd_event_callback cl_amd_offline_devices


  Platform Name:                                 AMD Accelerated Parallel Processing
Number of devices:                               2
  Device Type:                                   CL_DEVICE_TYPE_GPU
  Vendor ID:                                     1002h
  Board name:                                    AMD Radeon HD 7700 Series
  Device Topology:                               PCI[ B#1, D#0, F#0 ]
  Max compute units:                             14
  Max work items dimensions:                     3
    Max work items[0]:                           256
    Max work items[1]:                           256
    Max work items[2]:                           256
  Max work group size:                           256
  Preferred vector width char:                   4
  Preferred vector width short:                  2
  Preferred vector width int:                    1
  Preferred vector width long:                   1
  Preferred vector width float:                  1
  Preferred vector width double:                 1
  Native vector width char:                      4
  Native vector width short:                     2
  Native vector width int:                       1
  Native vector width long:                      1
  Native vector width float:                     1
  Native vector width double:                    1
  Max clock frequency:                           1075Mhz
  Address bits:                                  32
  Max memory allocation:                         397934592
  Image support:                                 Yes
  Max number of images read arguments:           128
  Max number of images write arguments:          8
  Max image 2D width:                            16384
  Max image 2D height:                           16384
  Max image 3D width:                            2048
  Max image 3D height:                           2048
  Max image 3D depth:                            2048
  Max samplers within kernel:                    16
  Max size of kernel argument:                   1024
  Alignment (bits) of base address:              2048
  Minimum alignment (bytes) for any datatype:    128
  Single precision floating point capability
    Denorms:                                     No
    Quiet NaNs:                                  Yes
    Round to nearest even:                       Yes
    Round to zero:                               Yes
    Round to +ve and infinity:                   Yes
    IEEE754-2008 fused multiply-add:             Yes
  Cache type:                                    Read/Write
  Cache line size:                               64
  Cache size:                                    16384
  Global memory size:                            650117120
  Constant buffer size:                          65536
  Max number of constant args:                   8
  Local memory type:                             Scratchpad
  Local memory size:                             32768
  Kernel Preferred work group size multiple:     64
  Error correction support:                      0
  Unified memory for Host and Device:            0
  Profiling timer resolution:                    1
  Device endianess:                              Little
  Available:                                     Yes
  Compiler available:                            Yes
  Execution capabilities:                               
    Execute OpenCL kernels:                      Yes
    Execute native function:                     No
  Queue properties:                             
    Out-of-Order:                                No
    Profiling :                                  Yes
  Platform ID:                                   0x00007fd1f025f4e0
  Name:                                          Bonaire
  Vendor:                                        Advanced Micro Devices, Inc.
  Device OpenCL C version:                       OpenCL C 1.2
  Driver version:                                1113.2 (VM)
  Profile:                                       FULL_PROFILE
  Version:                                       OpenCL 1.2 AMD-APP (1113.2)
  Extensions:                                    cl_khr_fp64 cl_amd_fp64 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_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_gl_sharing cl_ext_atomic_counters_32 cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_popcnt cl_amd_c1x_atomics


  Device Type:                                   CL_DEVICE_TYPE_CPU
  Vendor ID:                                     1002h
  Board name:                                   
  Max compute units:                             6
  Max work items dimensions:                     3
    Max work items[0]:                           1024
    Max work items[1]:                           1024
    Max work items[2]:                           1024
  Max work group size:                           1024
  Preferred vector width char:                   16
  Preferred vector width short:                  8
  Preferred vector width int:                    4
  Preferred vector width long:                   2
  Preferred vector width float:                  8
  Preferred vector width double:                 4
  Native vector width char:                      16
  Native vector width short:                     8
  Native vector width int:                       4
  Native vector width long:                      2
  Native vector width float:                     8
  Native vector width double:                    4
  Max clock frequency:                           3500Mhz
  Address bits:                                  64
  Max memory allocation:                         2147483648
  Image support:                                 Yes
  Max number of images read arguments:           128
  Max number of images write arguments:          8
  Max image 2D width:                            8192
  Max image 2D height:                           8192
  Max image 3D width:                            2048
  Max image 3D height:                           2048
  Max image 3D depth:                            2048
  Max samplers within kernel:                    16
  Max size of kernel argument:                   4096
  Alignment (bits) of base address:              1024
  Minimum alignment (bytes) for any datatype:    128
  Single precision floating point capability
    Denorms:                                     Yes
    Quiet NaNs:                                  Yes
    Round to nearest even:                       Yes
    Round to zero:                               Yes
    Round to +ve and infinity:                   Yes
    IEEE754-2008 fused multiply-add:             Yes
  Cache type:                                    Read/Write
  Cache line size:                               64
  Cache size:                                    16384
  Global memory size:                            4025425920
  Constant buffer size:                          65536
  Max number of constant args:                   8
  Local memory type:                             Global
  Local memory size:                             32768

C7

  • Development Team
  • *****
  • Posts: 544
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #5 on: August 15, 2014, 06:10:14 PM »
Well, there's a few more things to try.

First remove the current APP, and see if US² will fall back to cpu computation safely. (If not, that's it's own bug and the log would be useful).

After that, install the latest version of the APP from AMD. Last I checked the version of the SDK was 2.9. (Provide another log if it fails)

See if that works out for you at all. If not, the next thing to try is the intel openCL implementation, you'll have to remove the AMD APP again, and then try the intel package. Even if you don't have an intel processor, the package is intended to be universal. (Again, more logs :D, you can never have too many logs..)

https://software.intel.com/en-us/vcsource/tools/opencl-sdk

Thanks!

andy

  • **
  • Posts: 16
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #6 on: August 16, 2014, 05:49:25 AM »
Ok, new results coming.
After deinstalling SDK 2.8 and installing version 2.9, I got this:
Code: [Select]
Could not load a dll file. Make sure that the steam_api.dll/libsteam_api.dylib file is placed at the correct location. See the documentation for more info.
 
(Filename: /BuildAgent/work/aeedb04a1292f85a/artifacts/LinuxStandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

SteamworksNative
 
(Filename: /BuildAgent/work/aeedb04a1292f85a/artifacts/LinuxStandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

Unloading 5 Unused Serialized files (Serialized files now loaded: 0 / Dirty serialized files: 0)

Unloading 10 unused Assets to reduce memory usage. Loaded Objects now: 1414.
Total: 6.282000 ms (FindLiveObjects: 0.138000 ms CreateObjectMapping: 0.069000 ms MarkObjects: 4.332000 ms  DeleteObjects: 1.682000 ms)

Graph logging is active, since it can hurt performance allways remember to remove any log calls when not in use.
 
(Filename: /BuildAgent/work/aeedb04a1292f85a/artifacts/LinuxStandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

Platform assembly: /home/andy/.local/share/Steam/SteamApps/common/Universe Sandbox 2/Universe Sandbox_Data/Managed/System.Configuration.dll (this message is harmless)
It seems to be easy to work out. I checked if have libsteam_api, and I do, in multiple locations (each game has one), but not libsteam_api.dylib (is this spelling correct?).

Full log attached.

andy

  • **
  • Posts: 16
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #7 on: August 16, 2014, 06:29:00 AM »
Ok, that problem was easily solvable by adding "." to LD_LIBRARY_PATH.
Unfortunately, it didn't help much - still dumps the core.

I think this time the problem is in:
Code: [Select]
Stacktrace:

  at (wrapper managed-to-native) Cloo.Bindings.CL10.CreateContext (intptr[],int,Cloo.Bindings.CLDeviceHandle[],Cloo.Bindings.ComputeContextNotifier,intptr,Cloo.ComputeErrorCode&) <0x00004>
  at (wrapper managed-to-native) Cloo.Bindings.CL10.CreateContext (intptr[],int,Cloo.Bindings.CLDeviceHandle[],Cloo.Bindings.ComputeContextNotifier,intptr,Cloo.ComputeErrorCode&) <0x00004>
  ATI Technologies Inc.

Or is it just the stack trace debug information? Anyway, I see no other obvious error message in the logs.

btw I've just noticed, the topic is wrong. It is 7790, not 7900.
« Last Edit: August 16, 2014, 03:01:48 PM by andy »

C7

  • Development Team
  • *****
  • Posts: 544
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #8 on: August 17, 2014, 03:08:00 AM »
Seems the game is unable to find the Steamworks platform dll files.

You can see it failing to load the dll dependencies here  in the log.

Fallback handler could not load library /home/andy/.local/share/Steam/SteamApps/common/Universe Sandbox 2/Universe Sandbox_Data/Mono/x86/SteamworksNative

First things first, is to determine that the file is actually in the correctly location, if not. Find the steamworks.dll files in your installation and copy them to the path that Unity is looking for them.

We may have a pathing issue on some Linux distros that are causing the dll files not to be found.

The other thing to check is to make sure you have adequate permissions in the directory that US² is installed in. I've seen that prevent dll loading in the past as well.

If the log files cites any other .dlls as failing to load, after you move that one, you'll need to just copy the named .dll file into the path it's requesting as well.

Let me know what dll files you needed to move and where. (Provided that actually solves your problem)

Thanks again! We'll hopefully get this up and running soon. I think I'm just going to have to build myself a Linux box to help with testing for Linux users, so you can have a smoother experience in the future.

andy

  • **
  • Posts: 16
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #9 on: August 17, 2014, 04:25:31 AM »
I've copied the libSteamworksNative.so to the path specified - still no success.
Then I've expanded the LD_LIBRARY_PATH to include the path containing this lib and got another core dump, but the logfile is different.
This time I honestly see nothing wrong in logs. Please have a look.
When grepped with "-v harmless" and tail after "Init Steam" all we see is:
Code: [Select]
Init Steam
 
(Filename: /BuildAgent/work/aeedb04a1292f85a/artifacts/LinuxStandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)

Unloading 5 Unused Serialized files (Serialized files now loaded: 0 / Dirty serialized files: 0)

Unloading 10 unused Assets to reduce memory usage. Loaded Objects now: 1414.
Total: 5.626000 ms (FindLiveObjects: 0.076000 ms CreateObjectMapping: 0.027000 ms MarkObjects: 3.214000 ms  DeleteObjects: 2.241000 ms)

Graph logging is active, since it can hurt performance allways remember to remove any log calls when not in use.
 
(Filename: /BuildAgent/work/aeedb04a1292f85a/artifacts/LinuxStandalonePlayerGenerated/UnityEngineDebug.cpp Line: 49)
« Last Edit: August 17, 2014, 04:38:44 AM by andy »

C7

  • Development Team
  • *****
  • Posts: 544
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #10 on: August 18, 2014, 03:41:30 PM »
Hmm, yea. I'm not seeing anything relevant in the logs either. Can you elaborate a bit on what exactly is happening? How far into the startup before the core dump occurs? Does the dump itself have any descriptive information in it?


andy

  • **
  • Posts: 16
Re: Can't start US2 on Linux/AMD 7900 Bonaire
« Reply #11 on: August 25, 2014, 06:57:41 AM »
Sorry for the delay-it was a really hard week in my work.

To answer your questions - program starts, shows splash with rotating symbol for about 2-3 seconds, then shuts down with "Segmentation fault (core dumped)" message.

I use Ubuntu, so the dump is redirected to the apport. Apport logs:
Code: [Select]
ERROR: apport (pid 3652) Mon Aug 25 15:49:52 2014: called for pid 3621, signal 11
ERROR: apport (pid 3652) Mon Aug 25 15:49:52 2014: executable: /home/andy/.local/share/Steam/SteamApps/common/Universe Sandbox 2/Universe Sandbox.x32 (command line "./Universe\ Sandbox.x32")
ERROR: apport (pid 3652) Mon Aug 25 15:49:52 2014: executable does not belong to a package, ignoring
ERROR: apport (pid 3652) Mon Aug 25 15:49:52 2014: writing core dump to /home/andy/.local/share/Steam/SteamApps/common/Universe Sandbox 2/core (limit: 18889465931478580853760)

When I ran the gdb through this core file, I got this:
Code: [Select]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./Universe Sandbox.x32'.
Program terminated with signal 11, Segmentation fault.
#0  0xf7738cb7 in pthread_mutex_lock () from /lib/i386-linux-gnu/libpthread.so.0

PS. Neither -forcecpu nor -safemode helped.
« Last Edit: August 25, 2014, 07:02:47 AM by andy »

C7

  • Development Team
  • *****
  • Posts: 544
Re: Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #12 on: August 26, 2014, 10:26:56 PM »
Thanks for the follow up. We've added a bunch of fixes that may help in Alpha 10, not sure if you've had a chance to try that or not.

I'll keep testing to see if I can reproduce your issue.

andy

  • **
  • Posts: 16
Re: Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #13 on: August 27, 2014, 04:56:18 AM »
Yes, I've tested the most recent version too, results were identical.
I don't know your policy on the subject, but it would be better if I had a chance to run the game on some debugging version. If it was a java code, I could check the full stack trace to see what function failed and pinpoint the exact line of code that causes the problem. I'm sure C# has similar capability. What do you think about it?

C7

  • Development Team
  • *****
  • Posts: 544
Re: Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #14 on: August 27, 2014, 05:15:14 AM »
Is it always seg faulting at the same place, and citing libthread.so? What version of libpthread.so are you using? I'm curious if it's an issue with version of the thread library your system is using, since it fails on a mutex lock.

As far as debugging is concerned, there's not much difference between debug flag versions of a Unity build and the standard.

Thank you for all your help so far by the way.

andy

  • **
  • Posts: 16
Re: Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #15 on: August 27, 2014, 10:37:37 AM »
It is always seg faulting at the same place for a particular version, now it is:
Code: [Select]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./Universe Sandbox.x32'.
Program terminated with signal 11, Segmentation fault.
#0  0xf76b0cb7 in pthread_mutex_lock ()
   from /lib/i386-linux-gnu/libpthread.so.0
and the address is stable (0xf76b0cb7).

As for the pthread version:
Code: [Select]
$ getconf GNU_LIBPTHREAD_VERSION
NPTL 2.15

I think I'm gonna upgrade to Ubuntu 14.4.1. I'm sure I'll regret that...

C7

  • Development Team
  • *****
  • Posts: 544
Re: Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #16 on: August 28, 2014, 11:38:36 PM »
Let me know if that helps at all, and we'll keep working on our end. I'd really like to find out what's causing the problem, but it seems to be an issue with the distro, or one of the dependent .so files.


andy

  • **
  • Posts: 16
Re: [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #17 on: October 29, 2014, 09:41:30 AM »
Sorry for the BIG delay, but this was hell of time... kids starting their school (damn you, government, for lowering the school age!), three new projects at work...
Ok, back to business. After upgrading Ubuntu to 14.04, everything broke, so I reinstalled the whole system from scratch.

Now, when I try to run 64-bit version of US2, I get the following response (attachement Player64.log). When I switch to 32-bits, it's no better (attachement Player32.log).
I don't know what else could I do.

C7

  • Development Team
  • *****
  • Posts: 544
Re: [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #18 on: October 29, 2014, 10:39:55 AM »
Taking a look at the logs, there's errors coming from ALSA, (Linux sound Architecture), and it's causing problems with Unity's implementation of FMOD, as it's trying to reference an invalid link to your sound card.

ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory

and the FMOD error is here.

FMOD failed to initialize ... Error initializing output device.
 
(Filename:  Line: 239)

(Filename:  Line: 311)

An invalid object handle was used.

Is the sound working okay in other applications or contexts?


andy

  • **
  • Posts: 16
Re: [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #19 on: October 29, 2014, 11:40:38 AM »
That's peculiar... it seems that my sound output is gone in all applications. It worked fine yesterday :(
I'll look into it, thank you for the quick response.

andy

  • **
  • Posts: 16
Re: [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #20 on: November 03, 2014, 12:18:48 PM »
Ok, tired of trying to fix what one Lennart Poettering broke (I'm referring to Pulseaudio) I just installed another instance of Linux on a new, hybrid ssd-hdd drive.
Everything works now. But tremendously slow - about 4fps, even on "Low" graphics setting.
It seems that the reason for this is lack of OpenCL support from my GPU. I'll tinker with that a bit in a while.

C7

  • Development Team
  • *****
  • Posts: 544
Re: [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #21 on: November 03, 2014, 03:05:46 PM »
Okay, you're at least running now. The slowness is going to be due to OpenCL not working, or detecting devices. You may need to make a symbolic link to your OpenCL .so files.

I looked up the reference specs on your card, and it is supposed to be compliant with OpenCL 1.2 at the hardware level. I'm not sure the state of the drivers on Linux for that card though, as we'd need it to be registered as a valid compute device when  we search, even if the hardware does support the operations.

-You may need to point this to the correct location of your libOpenCL.so file. Also, are you running a case sensitive file system?

Fallback handler could not load library /home/andy/.local/share/Steam/SteamApps/common/Universe Sandbox 2/Universe Sandbox_Data/Mono/x86_64/libOpenCL.so

andy

  • **
  • Posts: 16
Re: [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #22 on: November 05, 2014, 12:07:08 PM »
I've installed the AMD_APP_SDK libraries. Still no luck, no more than 4FPS.
As for your question, yes I use the case-sensitive filesystems (AFAIK all linux filesystems are case-sensitive).
I've linked the libOpenCL.so to the path mentioned in log, but it didn't help.
(ln -s  /opt/AMDAPPSDK-2.9-1/lib/x86_64/libOpenCL.so.1 libOpenCL.so).
Full log attached.

Do you have any ideas, how to solve this issue?

C7

  • Development Team
  • *****
  • Posts: 544
Re: [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #23 on: November 06, 2014, 02:24:52 AM »
It's a little bit of a stretch, but there's one more thing to try. It's possible that cloo is having an issue binding to the right library.

Try replacing the mono configuration file with the one I've included here. The path should be

(installation directory) /data/managed/etc/mono/config

https://dl.dropboxusercontent.com/u/36240098/US2/config

As a bit of an update, I've been working on solving some serious issues with our OpenCL bindings that showed up with OSX 10.10. I'm hoping this set of fixes will improve the situation on Linux as well, since it potentially effects any Unix based system. Once I finish testing that, I'll move back to working on Linux OpenCL problems.
« Last Edit: November 06, 2014, 02:31:43 AM by C7 »

andy

  • **
  • Posts: 16
Re: [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #24 on: November 08, 2014, 04:29:24 PM »
Thanks for the suggestions, but it didn't help at all. The resulting log file is exactly the same as before.
Curious about what is going on, I checked if I can run any openCL software, and it seems I can - bolt MonteCarloPI for example. And it successfully uses my GPU for computations.
I could check if this hardware is capable of running US2 smoothly under Windows, if only Windows had a liveCD version...

C7

  • Development Team
  • *****
  • Posts: 544
Re: [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #25 on: November 10, 2014, 05:04:08 AM »
I've been working here today testing linux to try and find a solution to the OpenCL problems. I checked your logs and you're getting the same issue I had. We're looking for libOpenCL.so, which is the wrapper that loads the .icd files to redirect to your vendor specific OpenCL implementation.

On my Ubuntu installation, I didn't have a libOpenCL.so file in my usr/lib/ folder. Instead, it was labeled as libOpenCL.so.1. I created a symbolic link in my usr/lib/ folder that redirects to the correct libOpenCL file. If that's working correctly you shouldn't be getting the fallback handler messages in your error logs.

Update:

After working on this issue some more this morning. I've been unable to get the Nvidia OpenCL implementation to work for me in Ubuntu. It won't locate my device, no matter what I try. (This also happens in other OpenCL applications like ratGPU).

I tried installing the AMD SDK for OpenCL, and surprisingly it worked perfectly right out of the door, including supporting my Intel CPU as a compute device. (Oddly enough, I haven't been able to get the intel OpenCL implementation working either..)

I'd suggest giving this a try for now as I can confirm it works without issue.

http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/


« Last Edit: November 10, 2014, 08:32:00 AM by C7 »

andy

  • **
  • Posts: 16
Re: [BUG] Can't start US2 on Linux/AMD 7790 Bonaire
« Reply #26 on: November 12, 2014, 09:50:58 AM »
I've been using AMD SDK all the time, I've never tried Intel nor Nvidia openCL implementation.
Despite being nearly sure that I've already made a symbolic link to a libOpenCL.so.1, I tried your suggestion... and it was a bull's-eye:) Now I have about 30fps nearly all the time.
Thank you for your assistance and for all the great work you are doing here.