..:: PCSX2 Forums ::..

Full Version: PCSX2 0.9.9 svn on Gentoo AMD64 (GSdx problems)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi PCSX2 community,

I try to run the emulator on my Gentoo AMD64. Compilation seems to be all well, and i can launch PCSX2. But, i can't use the GSdx plugin, PCSX2 freeze on a blank screen whe i run a game, i have to kill the process. Launching with GDB confirms that i have a SEGFAULT signal. ZZogl runs, but it's quite slow and full of glitches, so i would like to run with GSdx. I've tried gsdx-ogl, same problem. Here's my infos :

Config :
Gentoo x86_64
Core i7 2600k
AMD Radeon HD 6870 with fglrx 11.12
gcc 4.5.3

library link for GSdx :
Code:
$ ldd /usr/games/lib32/pcsx2/libGSdx-0.1.16.so
    linux-gate.so.1 =>  (0xf76e4000)
    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf6e3d000)
    libGLEW.so.1.6 => /usr/lib32/libGLEW.so.1.6 (0xf6de6000)
    libGL.so.1 => /usr/lib32/opengl/ati/lib/libGL.so.1 (0xf6cfa000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf6cf6000)
    libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/32/libstdc++.so.6 (0xf6c07000)
    libm.so.6 => /lib32/libm.so.6 (0xf6be1000)
    libgcc_s.so.1 => /lib32/libgcc_s.so.1 (0xf6bc6000)
    libpthread.so.0 => /lib32/libpthread.so.0 (0xf6bac000)
    libc.so.6 => /lib32/libc.so.6 (0xf6a4e000)
    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf6a34000)
    libXext.so.6 => /usr/lib32/libXext.so.6 (0xf6a23000)
    /lib/ld-linux.so.2 (0xf76e5000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf6a1f000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf6a19000)

GDB output :
Code:
$ gdb pcsx2
GNU gdb (Gentoo 7.3.1 p2) 7.3.1
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.gentoo.org/>...
Reading symbols from /usr/games/bin/pcsx2...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/games/bin/pcsx2
[Thread debugging using libthread_db enabled]
Interface is initializing.  Entering Pcsx2App::OnInit!
Applying operating system default language...
Loading language translation databases for 'French' [fr_FR]
    pcsx2_Main not found -- translation dictionary may be incomplete.
    pcsx2_Iconized not found -- translation dictionary may be incomplete.
SetLanguage: Requested translation is not implemented yet.
Command line parsing...
Command line parsed!
[New Thread 0xf4afbb70 (LWP 17563)]
(pxEvtQueue:PauseCoreThread) Posting event! (pending=0, idle=0)
(pxEvtQueue:PauseCoreThread) Executing... [Cancelable]
[New Thread 0xf409fb70 (LWP 17565)]
[New Thread 0xf389eb70 (LWP 17566)]
[Thread 0xf389eb70 (LWP 17566) exited]
[New Thread 0xf389eb70 (LWP 17569)]
[New Thread 0xea410b70 (LWP 17570)]
[New Thread 0xe98ffb70 (LWP 17571)]
[Thread 0xf389eb70 (LWP 17569) exited]
[Thread 0xea410b70 (LWP 17570) exited]
[New Thread 0xea410b70 (LWP 17573)]
[Thread 0xe98ffb70 (LWP 17571) exited]
[New Thread 0xe98ffb70 (LWP 17574)]
[New Thread 0xf389eb70 (LWP 17575)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xf389eb70 (LWP 17575)]
0x00000000 in ?? ()

Thanks for your help.
GSdx-ogl (hardware render) won't work on amd system however the SW render must work (or I forgot to commit something Tongue2). My guess is that you have an issue with SDL/Wxwidget. Your wxwidget is probably link against SDL1.2, whereas GSdx is (statically) linked to SDL1.3... It can be checked with a command like that.
Code:
ldd /usr/lib/libwx_* | grep -i SDL

The easiest to test is to compile GSdx-ogl without the cmake SDL flags. Then use the SW ogl backend not SDL.

Side note: there is an hidden option inside GSdx that control the multithreading mode : "condvar" (0 or 1). If you have some time to benchmark it with your 8 core CPU, I would be glad. Thanks.
Damn, you're right :

Code:
$ ldd /usr/lib/libwx_* | grep -i SDL
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007fcdaec6c000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007fc30c3b2000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007f4feccbc000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007f8fc466e000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007fc2c6643000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007fe0ef94f000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007fed00bf7000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007ffe3aac9000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007f51964a3000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007f42ea473000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007f2ecaa5d000)
    libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007fb82d347000)
As libsdl 1.3 is not yet in Portage tree, i will recompile GSdx without SDL flag. I will post benchmarking in thanks for your help, but where ? In a topic ?
Well that easy every body have the same issue Tongue2

Here it is fine.

Another possibility is the rebuild of wxwidget without SDL. It is only uses for one useless audio backend. Debian/Ubuntu don't have this useless dependency.
Is it still not possible to replace sw+sdl with sw+ogl? I'd be happy to delete sdl from the source tree Laugh
it is possible ;-) I want to fix Few thing first then I will merge back my branch. The branch can be build without SDL so it will be easy to remove. I just need to find some free time to polish it.

One question however. I want to move ogl device and render into an ogl directory. It feels quite messy to have everything into a directory.Is it okay for you ?
Strange things can happen when the precompiled header (stdafx.h) is not in the same dir.