From: Roberto S. <rcs...@ya...> - 2004-07-28 01:47:16
|
I have followed the instructions provided by Roland Scheidegger: http://homepage.hispeed.ch/rscheidegger/dri_experimental/s3tc_index.html I was able to get DRI, Mesa, and DRM to compile and run. I then applied Roland's patches and recompiled, and again everything worked. The problem is that Neverwinter Nights hangs on me. I have downloaded and played the UT2003 demo, and it works great. This makes me think that it is a specific problem. It is so bad that the only way to recover is to ssh in and kill -9 the nwmain process and then restart X. The hang occurs specificaly at the point where you are about to be dropped into the game, i.e., once you start a new game or load a game and press "play." The sequence will change, the progress bar will move, and just as it is about to reach the end of the box , the process hangs. I have strace'd NWN a coulpe of times, and here are the tail ends of the traces: Trace 1: rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGINT, {0x8075fd0, [], 0}, {SIG_DFL}, 8) = 0 waitpid(-1, Mesa: software DXTn compression/decompression available ./nwn: line 12: 2662 Killed ./nwmain $@ [{WIFEXITED(s) && WEXITSTATUS(s) == 137}], 0) = 2661 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 --- SIGCHLD (Child exited) @ 0 (0) --- waitpid(-1, 0xbffff41c, WNOHANG) = -1 ECHILD (No child processes) sigreturn() = ? (mask now []) rt_sigaction(SIGINT, {SIG_DFL}, {0x8075fd0, [], 0}, 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 read(255, "", 40) = 0 exit_group(137) = ? Trace 2: rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGINT, {0x8075fd0, [], 0}, {SIG_DFL}, 8) = 0 waitpid(-1, Mesa: software DXTn compression/decompression available ./nwn: line 12: 3791 Killed ./nwmain $@ [{WIFEXITED(s) && WEXITSTATUS(s) == 137}], 0) = 3790 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 --- SIGCHLD (Child exited) @ 0 (0) --- waitpid(-1, 0xbffff3ac, WNOHANG) = -1 ECHILD (No child processes) sigreturn() = ? (mask now []) rt_sigaction(SIGINT, {SIG_DFL}, {0x8075fd0, [], 0}, 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 read(255, "", 40) = 0 exit_group(137) = ? Trace 3: rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGINT, {0x8075fd0, [], 0}, {SIG_DFL}, 8) = 0 waitpid(-1, Mesa: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable 0xbffff7a8, 0) = ? ERESTARTSYS (To be restarted) --- SIGTERM (Terminated) @ 0 (0) --- +++ killed by SIGTERM +++ I am a halfway decent coder, or so I like to think, but I am not familiar with the DRI code. If someone can provide some suggestions, I have no problems rolling up my sleeves and getting my hands dirty. --Roberto Sanchez |
From: Roland S. <rsc...@hi...> - 2004-07-28 13:00:02
|
Roberto Sanchez wrote: > I have followed the instructions provided by Roland Scheidegger: > http://homepage.hispeed.ch/rscheidegger/dri_experimental/s3tc_index.html > > > I was able to get DRI, Mesa, and DRM to compile and run. I then > applied Roland's patches and recompiled, and again everything worked. > The problem is that Neverwinter Nights hangs on me. I have downloaded > and played the UT2003 demo, and it works great. This makes me think > that it is a specific problem. It is so bad that the only way to > recover is to ssh in and kill -9 the nwmain process and then restart > X. > > The hang occurs specificaly at the point where you are about to be > dropped into the game, i.e., once you start a new game or load a game > and press "play." The sequence will change, the progress bar will > move, and just as it is about to reach the end of the box , the > process hangs. Does this also happen when you don't have the s3tc patch applied? The trace seems to suggest it could indeed be a problem of the s3tc patch, but I'd like to know for certain - those traces can be misleading in my experience. If it is a problem of the patch, then I don't know what the problem could be. Though probably related to the external library, the dlopen/dlsym stuff is ugly (and might be non-thread safe?). Or something has changed in Mesa and I didn't notice... Roland |
From: Roberto S. <rcs...@ya...> - 2004-07-28 16:20:06
|
Roland Scheidegger wrote: > Roberto Sanchez wrote: > >> I have followed the instructions provided by Roland Scheidegger: >> http://homepage.hispeed.ch/rscheidegger/dri_experimental/s3tc_index.html >> >> >> I was able to get DRI, Mesa, and DRM to compile and run. I then >> applied Roland's patches and recompiled, and again everything worked. >> The problem is that Neverwinter Nights hangs on me. I have downloaded >> and played the UT2003 demo, and it works great. This makes me think >> that it is a specific problem. It is so bad that the only way to >> recover is to ssh in and kill -9 the nwmain process and then restart >> X. >> >> The hang occurs specificaly at the point where you are about to be >> dropped into the game, i.e., once you start a new game or load a game >> and press "play." The sequence will change, the progress bar will >> move, and just as it is about to reach the end of the box , the >> process hangs. > > Does this also happen when you don't have the s3tc patch applied? The > trace seems to suggest it could indeed be a problem of the s3tc patch, > but I'd like to know for certain - those traces can be misleading in my > experience. > If it is a problem of the patch, then I don't know what the problem > could be. Though probably related to the external library, the > dlopen/dlsym stuff is ugly (and might be non-thread safe?). Or something > has changed in Mesa and I didn't notice... > > Roland It happens with and without the patch. I have attached the tail ends of some more straces below. If necessary I can post or email the complete strace logs. I am otherwise at a loss here. --Roberto Sanchez Strace 1 (DRI from 07-26-2004): rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGINT, {0x8075fd0, [], 0}, {SIG_DFL}, 8) = 0 waitpid(-1, ./nwn: line 12: 16466 Killed ./nwmain $@ [{WIFEXITED(s) && WEXITSTATUS(s) == 137}], 0) = 16465 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 --- SIGCHLD (Child exited) @ 0 (0) --- waitpid(-1, 0xbffff41c, WNOHANG) = -1 ECHILD (No child processes) sigreturn() = ? (mask now []) rt_sigaction(SIGINT, {SIG_DFL}, {0x8075fd0, [], 0}, 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 read(255, "", 40) = 0 exit_group(137) = ? Strace 2 (DRI from 07-26-2004 w/ s3tc and libtx_dxtn): rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGINT, {0x8075fd0, [], 0}, {SIG_DFL}, 8) = 0 waitpid(-1, Mesa: software DXTn compression/decompression available ./nwn: line 12: 2539 Killed ./nwmain $@ [{WIFEXITED(s) && WEXITSTATUS(s) == 137}], 0) = 2538 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 --- SIGCHLD (Child exited) @ 0 (0) --- waitpid(-1, 0xbffff41c, WNOHANG) = -1 ECHILD (No child processes) sigreturn() = ? (mask now []) rt_sigaction(SIGINT, {SIG_DFL}, {0x8075fd0, [], 0}, 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 read(255, "", 40) = 0 exit_group(137) = ? Strace 3 (DRI from 07-26-2004 w/ s3tc and no libtx_dxtn): rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGINT, {0x8075fd0, [], 0}, {SIG_DFL}, 8) = 0 waitpid(-1, Mesa: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable ./nwn: line 12: 2574 Killed ./nwmain $@ [{WIFEXITED(s) && WEXITSTATUS(s) == 137}], 0) = 2573 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 --- SIGCHLD (Child exited) @ 0 (0) --- waitpid(-1, 0xbffff41c, WNOHANG) = -1 ECHILD (No child processes) sigreturn() = ? (mask now []) rt_sigaction(SIGINT, {SIG_DFL}, {0x8075fd0, [], 0}, 8) = 0 rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0 read(255, "", 40) = 0 exit_group(137) = ? |