Bug 8427 - primus bridge fails in a few scenarios
: primus bridge fails in a few scenarios
Status: VERIFIED FIXED
Product: Desktop Bugs
Classification: ROSA Desktop
Component: Main Packages
: Fresh
: x86_64 Linux
: Normal normal
: ---
Assigned To: ROSA Linux Bugs
: ROSA Linux Bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2017-10-25 18:06 MSD by Sergei Trusov
Modified: 2017-11-20 18:48 MSK (History)
4 users (show)

See Also:
RPM Package: bumplebee primus
ISO-related:
Bad POT generating:
Upstream:
vladimir.potapov: qa_verified+
andrey.bondrov: published+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergei Trusov 2017-10-25 18:06:42 MSD
Description of problem:

There are some cases when bumblebee/primus can not run applications on a 64bit system.


Version-Release number of selected component (if applicable):

ROSA x64 R9


How reproducible:

Always.


Steps to Reproduce:

1. With default /etc/bumblebee/bumblebee.conf

[optirun]
Bridge=auto

Run a 32bit application:

$ optirun /opt/bin32/glxgears
ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
ERROR: ld.so: object 'librrfaker.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  156 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  23
  Current serial number in output stream:  24

Solution: urpmi libVirtualGL
This 32 bit library could be added to Requires (bumblebee.spec)


2. Change configuration: Bridge=primus
Reload the service to apply: systemctl restart bumblebee

a) Run a 32 bit app:

$ optirun /opt/bin32/glxgears
[ 8815.259974] [ERROR]Accel/display bridge primus is not installed.

Solution: urpmi libprimus_gl1
This 32 bit library could be added to Requires (primus.spec)

b) Run a 64 bit app:

$ optirun glxgears
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  156 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  23

Solution: change
PrimusLibraryPath=/usr/lib/primus:/usr/lib32/primus
to
PrimusLibraryPath=/usr/lib/primus:/usr/lib64/primus


3. With legacy (340) Nvidia drivers:

$ primusrun glxgears
primus: fatal: failed to load any of the libraries: /usr/$LIB/libglvnd/libGL.so.1
/usr/$LIB/libglvnd/libGL.so.1: cannot open shared object file: No such file or directory
Comment 1 Sergei Trusov 2017-10-25 18:25:04 MSD
https://abf.io/import/bumblebee/pull_requests/1 

fixes 1 & 2b


https://abf.io/import/primus/pull_requests/1

fixes 2a & 3
Comment 2 Eugene Shatokhin 2017-10-25 19:14:24 MSD
Thanks, Sergei!

Normally, adding 32-bit dependencies to 64-bit packages would be a bad practice but the graphics stuff is special. Running 32-bit graphics apps on 64-bit systems is very common, so I think it is OK to add these dependencies. Well, we already do  such things for NVidia drivers and GLVND.

The tests of the built packages will fail though (they do not search 32-bit repos on x86_64). This is expected.
Comment 3 Sergei Trusov 2017-11-05 15:15:51 MSK
Advisory: "Update primus to fix these issues"

https://abf.io/build_lists/2908189
https://abf.io/build_lists/2908190
Comment 4 Sergei Trusov 2017-11-05 15:18:35 MSK
Advisory: "Update bumblebee to fix these issues"

https://abf.io/build_lists/2908191
https://abf.io/build_lists/2908192
Comment 5 Vladimir Potapov 2017-11-16 16:59:19 MSK
The update is sent to expanded testing
***************************************
Comment 6 Vladimir Potapov 2017-11-20 16:54:49 MSK
primus-0.2-4
https://abf.io/build_lists/2908189
https://abf.io/build_lists/2908190

bumblebee-3.2.1-15
https://abf.io/build_lists/2908191
https://abf.io/build_lists/2908192

******************************** Advisory ********************************
Update primus and bumblebee to fix these issues
**************************************************************************
QA Verified