Cool VL Viewer forum

View unanswered posts | View active topics It is currently 2017-03-29 17:12:43



Reply to topic  [ 25 posts ]  Go to page Previous  1, 2, 3  Next
64-bit port? 
Author Message

Joined: 2009-03-17 18:42:51
Posts: 3503
Reply with quote
Since it has been very quiet on LL's viewers front, this week, I had a try at building a 64 bits viewer.

Since I didn't want to loose time recompiling all the pre-built libraries for 64 bits Linux, I reused, for most of them (I still had to recompile a few libraries), the ones used by another TPV. I had the choice between Singularity, Kokua and Firestorm... Singularity libraries are just too old (it's been over a year that this viewer didn't see a new release). Kokua's libraries have been compiled on a too recent Linux distribution and the Kokua viewer is not even running on my ROSA 2012 64 bits system... This left me with Firestorm (which libraries should be compatible with any 64 bits Linux distribution using gcc v4.6 or newer as its system compiler).

After some fiddling with the build system and a few 64-bits specific bug fixes, I could get the viewer to run fine and even added a "buildlinux64.sh" script to build it easily. The good news is therefore that tomorrow's source releases will be 64 bits compatible (i.e. you will be able to build the viewer yourself very easily from sources, but I will not provide a binary myself).

There are however limitations:
  • There is no possibility to reuse Snowglobe's KDU (32 bits) JPEG2000 image decoder library with 64 bits viewer builds, meaning that image decoding has to recourse to the OpenJPEG code, which is significantly slower.
  • The CEF3 plugin is, for now, not available to 64 bits builds. EDIT: fixed, see this message.
  • The QtWebKit plugin is, alas, statically linked against QtWebKit (because the Firestorm's pre-built QtWebKit library was, strangely, built has a static library), which means that each additional instance of a web plugin opened by the viewer will waste 40Mb of memory for nothing. EDIT: fixed, see this message.
  • The Voice client, still being a 32 bits binary, needs for the minimum 32 bits compatibility libraries (glibc & Co) to be installed on the target system in order to be usable (remember that "./cool_vl_viewer --check-libs" is your friend in finding missing system libraries !).


2016-01-29 19:39:48
Profile WWW

Joined: 2010-04-07 08:23:18
Posts: 162
Reply with quote
Hello Henri,

thank you for giving that a go. I gave it a try on my Ubuntu 12.04 system. It doesn't work out of the box -- linking SLPlugin fails because libapr uses stuff from libdl. I attempted to find my way around the hideous CMake maze to fix it by adding the dependency in the right spot, but eventually gave up, since it's beyond me.

Code:
Linking CXX executable SLPlugin
/home/amalia/src/linden/indra/../lib/release/libapr-1.a(dso.o): In function `dso_cleanup':
dso.c:(.text+0x10): undefined reference to `dlclose'
/home/amalia/src/linden/indra/../lib/release/libapr-1.a(dso.o): In function `apr_dso_load':
dso.c:(.text+0xd7): undefined reference to `dlopen'
dso.c:(.text+0x161): undefined reference to `dlerror'
/home/amalia/src/linden/indra/../lib/release/libapr-1.a(dso.o): In function `apr_dso_sym':
dso.c:(.text+0x1ac): undefined reference to `dlsym'
dso.c:(.text+0x1d1): undefined reference to `dlerror'
collect2: ld returned 1 exit status
make[2]: *** [llplugin/slplugin/SLPlugin] Error 1
make[2]: Leaving directory `/home/amalia/src/linden/indra/viewer-linux-x86_64-release'
make[1]: *** [llplugin/slplugin/CMakeFiles/SLPlugin.dir/all] Error 2


Love,
Lia


2016-01-31 10:59:41
Profile

Joined: 2009-03-17 18:42:51
Posts: 3503
Reply with quote
Amalia Illios wrote:
Hello Henri,

thank you for giving that a go. I gave it a try on my Ubuntu 12.04 system. It doesn't work out of the box -- linking SLPlugin fails because libapr uses stuff from libdl. I attempted to find my way around the hideous CMake maze to fix it by adding the dependency in the right spot, but eventually gave up, since it's beyond me.

Code:
Linking CXX executable SLPlugin
/home/amalia/src/linden/indra/../lib/release/libapr-1.a(dso.o): In function `dso_cleanup':
dso.c:(.text+0x10): undefined reference to `dlclose'
.../...

Well, *of course*, you need to have a functional development system... do you have the "devel" libraries installed on your system ?... libdl.so/lib64dl.so would be part of glibc-devel (or whatever it is called in Debian's packaging naming system)...
You, *of course*, will also need all the development libraries for OpenGL/Mesa/X11/etc...

EDIT: Should you have all the above already installed, then it could be a bug in Ubuntu 12.04... Quickly searching the web for similar errors, I found many references to this specific Ubuntu release. In this case, try changing linden/indra/cmake/LLCommon.cmake line 24 to read:
Code:
    set(LLCOMMON_LIBRARIES llcommon rt dl)
(i.e. adding "dl" to the list of libraries for Linux builds). It should force the linker to link against libdl.so...


2016-01-31 13:47:08
Profile WWW

Joined: 2009-03-17 18:42:51
Posts: 3503
Reply with quote
Today's releases (v1.26.16.11 and v1.26.17.9) include more goodies for 64 bits builders:

  • I compiled a tcmalloc-less CEF3 Linux 64 bits library and a Linux 64 bits llceflib library, so Linux 64 bits builds now also have the CEF3-based web plugin.
  • I re-compiled the Linux 64 bits llqtwebkit library, with shared QtWebkit linkage, meaning that there is no more memory wastage when using multiple plugin instances in a session (40Mb saved per additional web plugin instance).
  • I re-compiled the Linux 64 bits APR, SDL and glib libraries so that the viewer compiles fine on Ubuntu (tested by Amalia Illios: kudos to her !).
  • I increased the maximum video memory to 2Gb for 64 bits builds (since they don't have memory limitations like 32 bits build have): this should get rid of any "texture trashing" case and provides higher definition textures in texture-heavy environments.


2016-02-06 11:04:59
Profile WWW

Joined: 2009-06-08 16:33:20
Posts: 23
Reply with quote
Hi Henry, thanks for finally making a 64bit port available.

I was able to compile CoolVLViewer-x86_64-1.26.16.11 under ubuntu 14.04 and so far everything works, the viewer starts and i can play SL.

I hoped that i finally can watch video inworld but still does not work, i get the popup to allow the media but then nothing shows. Though i cant play video streams audio streams play just fine.

--check-libs showed no missing libraries

Do you or any other 64Bit user here have any hint? Does video work for other 64Bit users?


2016-02-09 22:27:21
Profile

Joined: 2009-03-17 18:42:51
Posts: 3503
Reply with quote
wired wrote:
Hi Henry, thanks for finally making a 64bit port available.

I was able to compile CoolVLViewer-x86_64-1.26.16.11 under ubuntu 14.04 and so far everything works, the viewer starts and i can play SL.

I hoped that i finally can watch video inworld but still does not work, i get the popup to allow the media but then nothing shows. Though i cant play video streams audio streams play just fine.

--check-libs showed no missing libraries

Do you or any other 64Bit user here have any hint? Does video work for other 64Bit users?

You need to install all the 64 bits gstreamer libraries/plugins (video playback tested and working on a 64 bits Rosa 2012 distro).


2016-02-09 22:31:33
Profile WWW

Joined: 2013-07-01 20:14:08
Posts: 7
Reply with quote
Hello Henri,

You have mentioned in the past that a Windows 64-bit build for Cool VL Viewer would have to wait until some or all of the 3rd party dependencies for a Windows build became available pre-compiled in 64-bit mode. Has the situation changed at all since then? Are any of these dependencies now available as 64-bit binaries? What remaining obstacles are there to providing a 64-bit Windows version?

Regards,
Charles Clary


2016-06-04 22:50:58
Profile

Joined: 2009-03-17 18:42:51
Posts: 3503
Reply with quote
LL is for now "stuck" with their 64 bits viewer port, because they must find a replacement for the QuickTime plugin. They are currently working on a VLC plugin and they will resume their 64 bits port after that.
When LL will have a complete set of pre-built 64 bits libraries, then I will spend some time to make my viewer build system compatible with Windows 64 bits builds (i.e. add the 64 bits packages and windows64 build target), and once I will have migrated my Windows build system (for now Windows 7 32 bits + VS2010) to Windows 7 64 bits + VS2013, then I will start producing 64 bits Windows builds to replace the 32 bits ones.
Note that the move to 64 bits builds will cause the impossibility to keep reusing Snowglobe's KDU image decoder because, unlike VS2010 (which I managed to convince and accept to load a VS2005 library), VS2012/3 can't be convinced to do the same.


2016-06-05 07:47:20
Profile WWW

Joined: 2012-08-08 17:51:35
Posts: 49
Reply with quote
Hi Henri.

I noticed in the release notes that there is this 64 bit version in the next branch.
I hope that you don't plan to drop the 32 bit branch too fast, as I am in the same situation like you, not able to upgrade over night exactly.


2016-06-25 16:16:50
Profile

Joined: 2009-03-17 18:42:51
Posts: 3503
Reply with quote
Jessica Hultcrantz wrote:
Hi Henri.

I noticed in the release notes that there is this 64 bit version in the next branch.
I hope that you don't plan to drop the 32 bit branch too fast, as I am in the same situation like you, not able to upgrade over night exactly.
For now, only the Linux build of the experimental branch (v1.26.19) is distributed as 64 bits binaries. You can however still build this branch from sources on your system, be it 32 or 64 bits (the only constraint being to use a compiler which ABI is compatible with the pre-built libraries, i.e. gcc v4.6 to 4.9 inclusive).

The move to 64 bits is going to happen, sooner or later, and while there are a few drawbacks to it (such as loosing the usage of the Snowglobe KDU image decoder), there are also many advantages, the most prominent being the absence of memory address space exhaustion issue.


2016-06-25 17:07:42
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 25 posts ]  Go to page Previous  1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.