cai567890 / pcsx2

Automatically exported from code.google.com/p/pcsx2
1 stars 0 forks source link

pcsx2 crashes using bumblebee/primus #1426

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
It can be bug in pcsx2 or in primus. I don't know.

I run Dragon Ball Budokai Tenkaihi using my Nvidia card through bumblebee.

optirun --bridge=primus pcsx2 /path/to/dragonball

I don't have this problem using virtualgl. In this case game runs.

pcsx2 shows:

/build/buildd/pcsx2.snapshot-5705/common/src/Utilities/Linux/LnxHostSys.cpp(64) 
: assertion failed:
    Function:  void SysPageFaultSignalFilter(int, siginfo_t*, void*)
    Thread:    MTGS
    Condition: false
    Message:   Unhandled page fault @ 0x6b636180

Stacktrace:

In terminal I see:
[10221.777337] [INFO]Response: Yes. X is active.

[10221.777386] [INFO]Running application using primus.
Interface is initializing.  Entering Pcsx2App::OnInit!
Applying operating system default language...
Loading language translation databases for 'Polish' [pl_PL]
Command line parsing...
Command line parsed!
`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

`menu_proxy_module_load': pcsx2: undefined symbol: menu_proxy_module_load

(pcsx2:8382): Gtk-WARNING **: Failed to load type module: (null)

sh: 1: Syntax error: "(" unexpected

Original issue reported on code.google.com by dev...@gmail.com on 27 Jul 2013 at 10:43

GoogleCodeExporter commented 9 years ago
>>> I don't have this problem using virtualgl. In this case game runs.

So 99% likely that there is some bugs in primus/bumblebee

Original comment by gregory....@gmail.com on 28 Jul 2013 at 8:32

GoogleCodeExporter commented 9 years ago
I noticed that problem occurs only when I use GSdx. ZZ Ogl runs - slow but 
without crash.

I created bug report also on Primus github:
https://github.com/amonakov/primus/issues/106

Ubuntu 13.04
pcsx2 svn 5705
primus 20130527.
bumblebee 3.2.1
kernel 3.8.0-26.38
nvidia 313.30

Original comment by dev...@gmail.com on 28 Jul 2013 at 9:42

GoogleCodeExporter commented 9 years ago
zzogl is opengl 2
GSdx is opengl 3+ (I used some opengl4 extensions)
So you can't seriously compare the 2.

Original comment by gregory....@gmail.com on 28 Jul 2013 at 9:46

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
It finally worked on Mint Olivia KDE and Bublebee, at 55fps average. The hint 
was Gregory's comment about using VirtualGL.

The thing is that "optirun" commmand now uses "primusrun" as default since the 
latter is faster. To use old VirtualGL-based optirun you have to use the "-b 
virtualgl" option. So this should do the trick:

optirun -b virtualgl pcsx2

I only played about 5 minutes using GSdx plugin and the "OpenGL (hardware)" as 
Renderer. Everything OK.

Original comment by physl...@gmail.com on 29 Jul 2013 at 7:59

GoogleCodeExporter commented 9 years ago
I know that virtualgl works :) Problem is why primus doesn't work?

For virtualgl I have something between 35-60fps (OpenGL hardware), for official 
optimus support in nvidia drivers (early beta) in my testing partition always 
~60fps. So I hope primus would be good solution for now.

Original comment by dev...@gmail.com on 29 Jul 2013 at 8:13

GoogleCodeExporter commented 9 years ago
IIRC, years ago virtual gl was buggy too because it missed one opengl feature 
(PBO). Maybe optirun miss somethings.

Original comment by gregory....@gmail.com on 29 Jul 2013 at 8:31

GoogleCodeExporter commented 9 years ago
I misread the first post. Sorry for the misleading comment. 

I'll will test the new nvidia drivers with Optimus support.

Original comment by physl...@gmail.com on 29 Jul 2013 at 8:40

GoogleCodeExporter commented 9 years ago
Hi, I'm primus' developer.  Looks like missing support for 
glXCreateContextAttribs in primus is the root cause here.  So far, all 
applications either did not use that, or had a fallback code path with 
glXCreateNewContext (Unigine engine), but I can see that adding a similar 
fallback in GSdx is more than 5 lines (you'd have to make a context current and 
check the GL version string), so I'll work on adding the extension in primus.

Gregory, can you explain the motivation for adding EGL codepath?  r5671 says it 
had to do with Mesa drivers, but I don't really see the connection — normally 
when EGL is available and working, so is glXCreateContextAttribs.  Thanks.

Original comment by amona...@gmail.com on 29 Jul 2013 at 4:39

GoogleCodeExporter commented 9 years ago
cool.

The more the merrier :) You got it wrong glx depends on the xserver (egl is 
purely on the client side). On debian I got an old xserver so it only work with 
egl. Besides egl is useful for opengles3 and eventually wayland/mir.

Original comment by gregory....@gmail.com on 29 Jul 2013 at 7:04

GoogleCodeExporter commented 9 years ago

Original comment by gregory....@gmail.com on 29 Jul 2013 at 7:44