Project

General

Profile

Actions

Emulator Issues #1217

closed

linux does not enable dual core

Added by skarmiglione.sk4r over 15 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

What steps will reproduce the problem?
1.enable dual core on configure
2.run game
3.

What is the expected output? What do you see instead?

crash window with this out in terminal

Dolphin: ../../src/xcb_io.c:242: process_responses: Afirmación `(((long)
(dpy->last_request_read) - (long) (dpy->request)) <= 0)' fallida.
Cancelado

What version of the product are you using? On what operating system?
linux, svn 3894-release

Please provide any additional information below.
amd x2 3800+ nvidia 7600gt ubuntu 9.04

Actions #1

Updated by marcus over 15 years ago

  • Status changed from New to Questionable

Can anyone confirm this?

Actions #2

Updated by XTra.KrazzY over 15 years ago

yes, it's the result of X being accessed from two different threads. But there's
already an issue for it here, forgot what it was.

Actions #3

Updated by skarmiglione.sk4r over 15 years ago

"Comment by skarmiglione.sk4r, Jul 29 (2 days ago)

a bug only in linux version 02:24:502 NVideo?: glX-Version 1.3 02:26:507 NBOOT?:
Booting /media/disk/todo lo del otro disco/Juegos/Emulacion
linux/GC/tuxcube/mprime.gcm 02:26:774 NOSREPORT?: (PC=81200308) OSReport: Apploader
Initialized. $Revision: 29 $. 02:26:774 NOSREPORT?: (PC=81200324) OSReport: This
Apploader built Mar 28 2002 02:34:54 02:29:127 NVideo?: GLWin Depth 24 02:29:127
NVideo?: detected direct rendering Dolphin: ../../src/xcb_io.c:242:
process_responses: Afirmación `(((long) (dpy->last_request_read) - (long)
(dpy->request)) <= 0)' fallida. Cancelado

when i check the "enable dual core" that happen with metroid prime 1 please help.
Delete comment
Comment by skarmiglione.sk4r, Jul 29 (2 days ago)

a ok with zelda happen too Dolphin: ../../src/xcb_io.c:242: process_responses:
Afirmación `(((long) (dpy->last_request_read) - (long) (dpy->request)) <= 0)'
fallida. Cancelado

Comment by JennieCop, Jul 29 (2 days ago)

it happens to me too
"

that happens in the wiki http://code.google.com/p/dolphin-emu/wiki/Linux_dependencies

Actions #4

Updated by knuckles500 over 15 years ago

Just posting here to say that it still doesn't seem to work.

Which is odd, I could've sworn it was working before...

Using Single Core still works as well.

Using R3977 by the way, with Ubuntu 9.04 AMD64. My drivers are NVidia 190.18 for a
GeForce 9800 GTX+ graphics card.

Also for the sake of authenticity (if there even were any), here's a terminal log
from when Dolphin launches, boots a game (in this case Luigi's Mansion), and crashes
back to the terminal:

12:16:531 N[BOOT]: Saving Settings to ./User/Config/Dolphin.ini
12:17:647 N[Video]: glX-Version 1.4
12:17:653 N[Video]: XF86VidModeExtension-Version 2.2
12:17:653 N[Video]: Resolution 1440x900
12:17:659 N[BOOT]: Booting /media/NEW/gcm/Luigi's Mansion (US).gcz
12:17:709 N[OSREPORT]: (PC=81200230) OSReport: Apploader Initialized. $Revision: 24 $.
12:17:709 N[OSREPORT]: (PC=8120024c) OSReport: This Apploader built Aug 9 2001 17:42:56
12:17:968 N[Video]: GLWin Depth 24
12:17:968 N[Video]: detected direct rendering
12:18:142 N[DSPHLE]: Luigi Stylee!
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
ALSA: underrun, at least 0ms.
Dolphin: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0.
12:19:221 N[BOOT]: Saving Settings to ./User/Config/Dolphin.ini
(0) : fatal error C9999: *** exception during compilation ***
Cg compiler terminated due to fatal error(0) : fatal error C9999: *** exception
during compilation ***
Cg compiler terminated due to fatal
errorknuckles500@knuckles500-desktop:~/dolphin-emu-read-only/Binary/Linux-x86_64$

Actions #5

Updated by ivo.benner about 15 years ago

Someone in the forum told me that this is a controller plugin issue.
If you choose njoy plugin instead of KB/X360 Pad it works.

But njoy doesn't detect my gamepad in linux, so i still have a problem :)
It would be very nice if someone would fix the KB/X360 plugin.

Actions #6

Updated by ivo.benner about 15 years ago

I really want to use the dual core mode under linux. so i took a look at the code and
searched for the problem myself.
The main problem seems to be, that the X11Lib isn't thread safe.

The problem is that the Core.cpp of Dolphin starts two threads. They are called
"Video Thread" and "Core Thread".
But this ONLY happens in dual core mode, in single core mode these both threads are
just ONE, so there is no conflict in accessing X11Lib.

By putting in some debug lines I found 2 locations in the code where there is active
polling of XEvents with XNextEvent(...) , one in GLUtil.cpp and the other in
PadSimple.cpp .

I'am pretty sure that there is a problem. I testet a few things:

I ran Zelda TP, the intro plays a few seconds, then the game crashes with either:
"Dolphin: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.0"
or "Dolphin: xcb_io.c:242: process_responses: Assertion `(((long)
(dpy->last_request_read) - (long) (dpy->request)) <= 0)' failed."

When i comment out the polling in PadSimple: The intro works, but no keyboard input :)

Then i created a mutex for X11Lib access in GLUtil and PadSimple, but that doesn't
really work as i wished. But the game seems to crash a little bit later, i could even
play now a WHOLE minute sometimes :D

So i guess there must be another active thread or something that i have missed.

The funny thing is that nJoy plugin works, its using SDL, maybe its worth thinking
about rewriting PadSimple using SDL instead X11Lib directly.

Actions #7

Updated by nakeee about 15 years ago

Well, it can be fixed using XInitThreads, XLockDisplay, XUnlockDisplay but I truly
believe that the way we do input now in linux is wrong. (you can try calling
Xinitthread that alone should fix some things getting stuck)

Actions #8

Updated by ivo.benner about 15 years ago

Hey dual core works now :D
I put XInitThreads() directly at the top of DolphinApp::OnInit(), in main.cpp of
DolphinWx.

If you want to try it yourself also add a "#include <X11/Xlib.h>" at the top of the
file. I know my solution is quick and dirty but i hope one of the dolphin team will
patch the current svn in a more windows and mac friendly way :)

Thanks for your tip nakeee, i didn't know that Xorg is able to accept multithreading.

I'am off ... playing gamecube with full speed under linux ;D

Actions #9

Updated by Anonymous about 15 years ago

  • Status changed from Questionable to Fixed
Actions

Also available in: Atom PDF