Hard Light Productions Forums
Modding, Mission Design, and Coding => FS2 Open Coding - The Source Code Project (SCP) => Topic started by: Vertigo 7 on July 05, 2011, 04:29:47 pm
-
for the life of me i can't figure out what the problem is and judging by the silence on #scp, the guys there can't either.
Every script thats using ba.getFrametime is causing debugs to crash with out error on my linux install. Even the sample script in the wiki is causing that -
#Global Hooks
$Global: [
--If the g_WheeXPosition variable does not exist,
--it means we are on the first frame.
--If that is the case, set it to zero.
if not g_WheeXPosition then
g_WheeXPosition = 0
end
--Move the text
g_WheeXPosition = g_WheeXPosition + (5 * ba.getFrametime())
--Draw "WHEE!!!"
gr.drawString("WHEE!!!", g_WheeXPosition, 10)
]
#End
I don't know what else to look for as this scripting stuff is a touch over my head. I've been compiling SVN Trunk, can't execute any of the nightlies as it gives this error
./fs2_open_INF_d-20110628_r7289: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory
and yes the SDL libs and devel are installed.
heres the log of the debug build using that script -
==========================================================================
DEBUG SPEW: No debug_filter.cfg found, so only general, error, and warning
categories can be shown and no debug_filter.cfg info will be saved.
==========================================================================
Opened log '/home/Vertigo7/.fs2_open/data/fs2_open.log', Tue Jul 05 16:10:13 2011 ...
FreeSpace version: 3.6.13
Passed cmdline options:
-spec_exp 8
-fov 0.57
-ogl_spec 40
-spec_static 0.75
-spec_point 0.6
-spec_tube 0.75
-ambient_factor 37
-env
-glow
-spec
-no_emissive_light
-normal
-3dshockwave
-post_process
-bloom_intensity 42
-fxaa
-fxaa_preset 6
-no_vsync
-ballistic_gauge
-dualscanlines
-orbradar
-rearm_timer
-targetinfo
-3dwarp
-ship_choice_3d
-weapon_choice_3d
-snd_preload
-fps
-window
Building file index...
Found root pack '/home/Vertigo7/fs2/Root_fs2.vp' with a checksum of 0xce10d76c
Found root pack '/home/Vertigo7/fs2/smarty_fs2.vp' with a checksum of 0xddeb3b1e
Found root pack '/home/Vertigo7/fs2/sparky_fs2.vp' with a checksum of 0x164fe65a
Found root pack '/home/Vertigo7/fs2/sparky_hi_fs2.vp' with a checksum of 0xa11d56f1
Found root pack '/home/Vertigo7/fs2/stu_fs2.vp' with a checksum of 0xd77da83a
Found root pack '/home/Vertigo7/fs2/tango1_fs2.vp' with a checksum of 0x4c25221e
Found root pack '/home/Vertigo7/fs2/tango2_fs2.vp' with a checksum of 0x86920b82
Found root pack '/home/Vertigo7/fs2/tango3_fs2.vp' with a checksum of 0x705e8d71
Found root pack '/home/Vertigo7/fs2/warble_fs2.vp' with a checksum of 0xd85c305d
Searching root '/home/Vertigo7/.fs2_open/' ... 21 files
Searching root '/home/Vertigo7/fs2/' ... 1 files
Searching root pack '/home/Vertigo7/fs2/Root_fs2.vp' ... 157 files
Searching root pack '/home/Vertigo7/fs2/smarty_fs2.vp' ... 10 files
Searching root pack '/home/Vertigo7/fs2/sparky_fs2.vp' ... 3027 files
Searching root pack '/home/Vertigo7/fs2/sparky_hi_fs2.vp' ... 1337 files
Searching root pack '/home/Vertigo7/fs2/stu_fs2.vp' ... 2355 files
Searching root pack '/home/Vertigo7/fs2/tango1_fs2.vp' ... 32 files
Searching root pack '/home/Vertigo7/fs2/tango2_fs2.vp' ... 15 files
Searching root pack '/home/Vertigo7/fs2/tango3_fs2.vp' ... 10 files
Searching root pack '/home/Vertigo7/fs2/warble_fs2.vp' ... 52 files
Found 11 roots and 7017 files.
AutoLang: Language auto-detection successful...
Setting language to English
Initializing OpenAL...
OpenAL Vendor : OpenAL Community
OpenAL Renderer : OpenAL Soft
OpenAL Version : 1.1 ALSOFT 1.12.854
Why are you trying to free a NULL pointer? [fsmemory.cpp(19)]
Why are you trying to free a NULL pointer? [fsmemory.cpp(19)]
Why are you trying to free a NULL pointer? [fsmemory.cpp(19)]
Why are you trying to free a NULL pointer? [fsmemory.cpp(19)]
Found extension "AL_EXT_float32".
Found extension "ALC_EXT_EFX".
Sample rate: 44100 (44100)
EFX enabled: NO
Playback device: PulseAudio Software
Capture device: PulseAudio Capture
... OpenAL successfully initialized!
Failed to init speech
Initializing OpenGL graphics device at 1152x864 with 32-bit color...
Initializing SDL...
Requested SDL Video values = R: 8, G: 8, B: 8, depth: 24, double-buffer: 1, FSAA: 0
Actual SDL Video values = R: 8, G: 8, B: 8, depth: 24, double-buffer: 1, FSAA: 0
OpenGL Vendor : NVIDIA Corporation
OpenGL Renderer : GeForce GTX 295/PCI/SSE2
OpenGL Version : 3.3.0 NVIDIA 275.09.07
Using extension "GL_EXT_fog_coord".
Using extension "GL_ARB_multitexture".
Using extension "GL_ARB_texture_env_add".
Using extension "GL_ARB_texture_compression".
Using extension "GL_EXT_texture_compression_s3tc".
Using extension "GL_EXT_texture_filter_anisotropic".
Using extension "GL_ARB_texture_env_combine".
Using extension "GL_EXT_compiled_vertex_array".
Using extension "GL_EXT_draw_range_elements".
Using extension "GL_ARB_texture_mirrored_repeat".
Using extension "GL_ARB_texture_non_power_of_two".
Using extension "GL_ARB_vertex_buffer_object".
Using extension "GL_ARB_pixel_buffer_object".
Using extension "GL_SGIS_generate_mipmap".
Using extension "GL_EXT_framebuffer_object".
Using extension "GL_ARB_texture_rectangle".
Using extension "GL_EXT_bgra".
Using extension "GL_ARB_texture_cube_map".
Using extension "GL_EXT_texture_lod_bias".
Using extension "GL_ARB_point_sprite".
Using extension "GL_ARB_shading_language_100".
Using extension "GL_ARB_shader_objects".
Using extension "GL_ARB_vertex_shader".
Using extension "GL_ARB_fragment_shader".
Using extension "GL_NV_vertex_program3".
Found special extension function "glXSwapIntervalSGI".
Compiling shader: main-v.sdr (null-v.sdr), main-f.sdr (null-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lb-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (b-v.sdr), main-f.sdr (b-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (b-v.sdr), main-f.sdr (bg-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbg-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbgs-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lbs-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lbgse-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lbse-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbgn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbgsn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lbsn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lbgsne-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lbsne-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfb-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbg-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbgs-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lf-v.sdr), main-f.sdr (lfbs-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lfe-v.sdr), main-f.sdr (lfbgse-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lfe-v.sdr), main-f.sdr (lfbse-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbgn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbgsn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lfn-v.sdr), main-f.sdr (lfbsn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lfne-v.sdr), main-f.sdr (lfbgsne-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lfne-v.sdr), main-f.sdr (lfbsne-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (null-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lg-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (lgs-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (l-v.sdr), main-f.sdr (ls-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lgse-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (le-v.sdr), main-f.sdr (lse-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lgn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lgsn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (ln-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (ln-v.sdr), main-f.sdr (lsn-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lgsne-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling shader: main-v.sdr (lne-v.sdr), main-f.sdr (lsne-f.sdr)
Loading built-in default shader for: main-v.sdr
Loading built-in default shader for: main-f.sdr
Compiling post-processing shader 1 ...
Loading built-in default shader for: post-v.sdr
Loading built-in default shader for: post-f.sdr
Compiling post-processing shader 2 ...
Loading built-in default shader for: post-v.sdr
Loading built-in default shader for: blur-f.sdr
Compiling post-processing shader 3 ...
Loading built-in default shader for: post-v.sdr
Loading built-in default shader for: blur-f.sdr
Compiling post-processing shader 4 ...
Loading built-in default shader for: post-v.sdr
Loading built-in default shader for: brightpass-f.sdr
Compiling post-processing shader 5 ...
Loading built-in default shader for: fxaa-v.sdr
Loading built-in default shader for: fxaa-f.sdr
Max texture units: 4 (32)
Max elements vertices: 1048576
Max elements indices: 1048576
Max texture size: 8192x8192
Max render buffer size: 8192x8192
Can use compressed textures: YES
Texture compression available: YES
Post-processing enabled: YES
Using trilinear texture filter.
Using GLSL for model rendering.
OpenGL Shader Version: 3.30 NVIDIA via Cg compiler
... OpenGL init is complete!
Size of bitmap info = 853 KB
Size of bitmap extra info = 56 bytes
ANI cursorweb with size 24x24 (25.0% wasted)
GRAPHICS: Initializing default colors...
SCRIPTING: Beginning initialization sequence...
SCRIPTING: Beginning Lua initialization...
LUA: Opening LUA state...
LUA: Initializing base Lua libraries...
LUA: Beginning ADE initialization
ADE: Initializing enumeration constants...
ADE: Assigning Lua session...
SCRIPTING: Beginning main hook parse sequence....
SCRIPTING: Inititialization complete.
SCRIPTING: Splash screen overrides checked
SCRIPTING: Splash hook has been run
SCRIPTING: Splash screen conditional hook has been run
release build seems to execute the script fine (i see the WHEE moving slowly across the screen)
anyone have any ideas?
-
ba.getFrametime is pretty stable on windows, are you sure its not some other problem. i suggest replacing all instances of ba.getFrametime in your script with a fudge factor like 0.01666 (the length of a frame at 60 fps), and see if it still crashes. also i only like to call it once a frame and then store it in a variable, for speed if nothing else. i also notice you are calling the script from global which is only executed once at game init. suggest using $on frame: or $simulation: hooks instead. you could also make it a function and call it from other hooks.
-
im just going shoot the moon here but if it says sdl.1.2 not found but you say you have it that can only mean that you have a wrong version installed. maybe this also causes the crash some debug feature that uses sdl dont know what . and nuke hes on linux
-
and nuke hes on linux
I assume nuke is getting at the hook is pretty stable, because the level abstraction level that the lua hooks are run in the engine, it likely has little to do with the OS.
Vertigo 7: The best way of solving finding this issue is to get your self compiled binaries to run so that you can use gdb to catch the exception that is killing fso. To start, what distro are you using?
-
o rite, gdb, i forgot mention that. Yeah i tried to do that earlier by running -
$gdb fs2_open_INF_d
(gdb) run -mod mediavps_3612
when it gets to the point where it crashes, it doesn't return back to the gdb prompt. I get no response from anything in X and im forced to kill the gdb process from a tty prompt to get control of X back so i haven't been able to get the callstack =/
I'm using Fedora 15.
Also SDL version should be current
[root@TheBlackKnight ~]# yum install SDL
Loaded plugins: auto-update-debuginfo, langpacks, presto, refresh-packagekit
adobe-linux-i386 | 951 B 00:00
rpmfusion-free-updates | 2.7 kB 00:00
rpmfusion-free-updates-debuginfo | 2.7 kB 00:00
rpmfusion-nonfree-updates | 2.7 kB 00:00
rpmfusion-nonfree-updates-debuginfo | 2.7 kB 00:00
updates/metalink | 17 kB 00:00
updates-debuginfo/metalink | 14 kB 00:00
Setting up Install Process
Package SDL-1.2.14-11.fc15.x86_64 already installed and latest version
Nothing to do
[root@TheBlackKnight ~]# yum install SDL-devel
Loaded plugins: auto-update-debuginfo, langpacks, presto, refresh-packagekit
Setting up Install Process
Package SDL-devel-1.2.14-11.fc15.x86_64 already installed and latest version
Nothing to do
-
ba.getFrametime is pretty stable on windows, are you sure its not some other problem. i suggest replacing all instances of ba.getFrametime in your script with a fudge factor like 0.01666 (the length of a frame at 60 fps), and see if it still crashes. also i only like to call it once a frame and then store it in a variable, for speed if nothing else. i also notice you are calling the script from global which is only executed once at game init. suggest using $on frame: or $simulation: hooks instead. you could also make it a function and call it from other hooks.
I was just using that script for testing. Problem is mods like mediavp's and others that use any scripts will cause the debug build to crash on me if they use ba.getFrametime in any context. Im tryin to figure out why thats happening. (explosion and flak script use it. It is in the debris script but is commented out)
*edit
From the sample script, i changed the line
g_WheeXPosition = g_WheeXPosition + (5 * ba.getFrametime())
to
g_WheeXPosition = g_WheeXPosition + (5 * 0.01666)
and it executes fine in debug
-
ba.getFrametime is pretty stable on windows, are you sure its not some other problem. i suggest replacing all instances of ba.getFrametime in your script with a fudge factor like 0.01666 (the length of a frame at 60 fps), and see if it still crashes. also i only like to call it once a frame and then store it in a variable, for speed if nothing else. i also notice you are calling the script from global which is only executed once at game init. suggest using $on frame: or $simulation: hooks instead. you could also make it a function and call it from other hooks.
I was just using that script for testing. Problem is mods like mediavp's and others that use any scripts will cause the debug build to crash on me if they use ba.getFrametime in any context. Im tryin to figure out why thats happening. (explosion and flak script use it. It is in the debris script but is commented out)
*edit
From the sample script, i changed the line
g_WheeXPosition = g_WheeXPosition + (5 * ba.getFrametime())
to
g_WheeXPosition = g_WheeXPosition + (5 * 0.01666)
and it executes fine in debug
that definitely incriminates ba.frametime(). my theory at this point is that if the game makes use of any hardware timers thought the windows api (and sdl on *nix platforms) for timing functions there might be some minor differences in their functionality that might cause the glitch. of course i cant make heads or tails of freespace timing code (or even find it) to confirm this. calling frametime in lua simply gives you access to flFrametime variable defined in freespace.cpp.
-
I don't know what else to look for as this scripting stuff is a touch over my head. I've been compiling SVN Trunk, can't execute any of the nightlies as it gives this error
./fs2_open_INF_d-20110628_r7289: error while loading shared libraries: libSDL-1.2.so.0: cannot open shared object file: No such file or directory
and yes the SDL libs and devel are installed.
Are you perchance using a X64 (amd64) version of fedora? If so, you need to get the 32-bit libs in.
(i might be talking right out of my ass here, but my previous experiences would indicate that it is so...)
-
He just beat me to that. Yeah, the nightlies are 32bit builds, to be more compatible, you should be able to install the 32bit libSDL as well some how on your system. If the libs are 64bit only they're not likely to work with the nightlies.
-
ok so it definitely had to be something up with fedora. I installed Ubuntu 11.04 and complied it, no debug crashes. i dun get it.
-
Well didnt you recompile your kernel with --MAKE_NIGHTLIES_WORK? theres your problem, ubuntu comes with a kernel that has this flag set. Seriously though it must have been some **** with the 64/32 bit compatibility handling this is as i understand it not that great on linux and is very finicky.
-
Well didnt you recompile your kernel with --MAKE_NIGHTLIES_WORK? theres your problem, ubuntu comes with a kernel that has this flag set. Seriously though it must have been some **** with the 64/32 bit compatibility handling this is as i understand it not that great on linux and is very finicky.
i could go on with long tirades and treatises as to how ****ed up the whole multilib enviroments are in the linux enviroments.
-
Yeah, seriously, I don't know how any 64bit Linux user gets the nightlies running. I'd be curious to know what the steps are to get 32bit binaries running on a 64bit Linux system. Maybe that should even be in the wiki.
-
well i compiled it with the 64 bit ubuntu and its working well. I'm going to install fedora again in a seperate partition and see if i can reproduce that.
Anyway, i did manage to get the 32 bit nightlies to run in fedora. There's a bunch of libs that are needed to make it run... executing it will tell you what libs are missing but the most important thing is to use a 32 bit video driver lib. I found this while looking around for info to tweek my gpu settings. Not sure how this would apply to ATI cards, though. Also i had to symlink a lua related file to get the binary to execute. I think it was liblua-5.so to liblua5.1.so.0 or something like that. the rest of it was pretty straight forward (# yum install <missing lib>.i686)
http://wiki.archlinux.org/index.php/NVIDIA
32 bit applications do not start
Under 64 bit systems, installing lib32-nvidia-utils that corresponds to the same version installed for the 64 bit driver fixes the issue.
once i got those installed, it seemed to run fine.
-
Also i had to symlink a lua related file to get the binary to execute. I think it was liblua-5.so to liblua5.1.so.0 or something like that. the rest of it was pretty straight forward (# yum install <missing lib>.i686)
How did you symlink these? I have the problem with liblua5.1.so.0 on Ubuntu. I have the libs, but fs2open 3.6.14 can't find it for some reason.
edit:
Symlinking to /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 gives an error message "wrong ELF class: ELFCLASS64"
(sudo ln -s /usr/lib/x86_64-linux-gnu/liblua5.1.so.0 /usr/lib/liblua5.1.so.0)
uh oh.. impossible to run on 64bit linux system?
-
I'm assuming he was talking about symlinking the 32bit version of the lib to another 32bit version of the lib with a different name, not a 64bit to a 32bit. Sometimes the game expects one variation of a filename for a lib, and the system currently only installs another. Usually it's because of interface changes in the lib, but sometimes they're still compatible and the platform has just decided not to include other variations of the name as software in their own package manager won't be relying on that.