Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
games-fps/doomsday audio-related seg fault
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gamers & Players
View previous topic :: View next topic  
Author Message
statikregimen
Apprentice
Apprentice


Joined: 16 Jul 2011
Posts: 173
Location: USA/Michigan

PostPosted: Mon Dec 31, 2018 1:46 am    Post subject: games-fps/doomsday audio-related seg fault Reply with quote

Good day,

The engine starts, tutorial runs (on first start only as normal), I can set my WAD foloder and my games show up (these are WADs copied from Steam). I can launch a game, navigate the menus, set options, etc., but seems like no matter what I do or don't, once I try to start a new game, I get a segmentation fault, as follows (full console output):

Full console output:
Code:
Application path: /usr/bin/doomsday-2.0.3
Build: 2.0.3-Stable [#2919]
Created a new 32.0 MB memory volume.
[Config::read] modules/Config matches version [ 2, 0, 3, 2919 ]
Using user-selected WAD folder: ~/steam_doom_wads
Executable: Doomsday Engine 2.0.3 (Stable 64-bit +R) Dec 29 2018 20:34:49
Command line options:
  0: doomsday
[RenderSystem > PackageLoader] Loading shader definitions from archive entry "renderer.pack/
                               shaders.dei" from archive in "(basedir)/net.dengine.client.pack"
                               Loading shader definitions from archive entry "renderer.pack/
lensflares.pack/shaders.dei" from archive in "(basedir)/net.dengine.client.pack"
[Joystick_Init] No joysticks found
Identified 276 data bundles in 0.6 seconds
OpenGL 2.1 supported
[Sys_GLInitialize] OpenGL information:
                     Version:  4.6.0 NVIDIA 415.18
                     Renderer: GeForce GTX 980M/PCIe/SSE2
                     Vendor:   NVIDIA Corporation
                   Capabilities:
                     Compressed texture formats: 51
                     Use texture compression:    no
                     Available texture units:    4
                     Maximum texture anisotropy: 16
                     Maximum texture size:       16384
                     Line width granularity:     0.125
                     Line width range:           0.5...10
                   OpenGL Extensions:
                       AMD extensions:
        multi_draw_indirect, seamless_cubemap_per_texture, vertex_shader_layer,
vertex_shader_viewport_index
                       ARB extensions:
        ES2_compatibility, ES3_1_compatibility, ES3_2_compatibility, ES3_compatibility,
arrays_of_arrays, base_instance, bindless_texture, blend_func_extended, buffer_storage,
clear_buffer_object, clear_texture, clip_control, color_buffer_float, compatibility,
compressed_texture_pixel_storage, compute_shader, compute_variable_group_size,
conditional_render_inverted, conservative_depth, copy_buffer, copy_image, cull_distance,
debug_output, depth_buffer_float, depth_clamp, depth_texture, derivative_control,
direct_state_access, draw_buffers, draw_buffers_blend, draw_elements_base_vertex, draw_indirect,
draw_instanced, enhanced_layouts, explicit_attrib_location, explicit_uniform_location,
fragment_coord_conventions, fragment_layer_viewport, fragment_program, fragment_program_shadow,
fragment_shader, fragment_shader_interlock, framebuffer_no_attachments, framebuffer_object,
framebuffer_sRGB, geometry_shader4, get_program_binary, get_texture_sub_image, gl_spirv,
gpu_shader5, gpu_shader_fp64, gpu_shader_int64, half_float_pixel, half_float_vertex, imaging,
indirect_parameters, instanced_arrays, internalformat_query, internalformat_query2,
invalidate_subdata, map_buffer_alignment, map_buffer_range, multi_bind, multi_draw_indirect,
multisample, multitexture, occlusion_query, occlusion_query2, parallel_shader_compile,
pipeline_statistics_query, pixel_buffer_object, point_parameters, point_sprite,
polygon_offset_clamp, post_depth_coverage, program_interface_query, provoking_vertex,
query_buffer_object, robust_buffer_access_behavior, robustness, sample_locations, sample_shading,
sampler_objects, seamless_cube_map, seamless_cubemap_per_texture, separate_shader_objects,
shader_atomic_counter_ops, shader_atomic_counters, shader_ballot, shader_bit_encoding, shader_clock,
shader_draw_parameters, shader_group_vote, shader_image_load_store, shader_image_size,
shader_objects, shader_precision, shader_storage_buffer_object, shader_subroutine,
shader_texture_image_samples, shader_texture_lod, shader_viewport_layer_array, shading_language_100,
shading_language_420pack, shading_language_include, shading_language_packing, shadow, sparse_buffer,
sparse_texture, sparse_texture2, sparse_texture_clamp, spirv_extensions, stencil_texturing, sync,
tessellation_shader, texture_barrier, texture_border_clamp, texture_buffer_object,
texture_buffer_object_rgb32, texture_buffer_range, texture_compression, texture_compression_bptc,
texture_compression_rgtc, texture_cube_map, texture_cube_map_array, texture_env_add,
texture_env_combine, texture_env_crossbar, texture_env_dot3, texture_filter_anisotropic,
texture_filter_minmax, texture_float, texture_gather, texture_mirror_clamp_to_edge,
texture_mirrored_repeat, texture_multisample, texture_non_power_of_two, texture_query_levels,
texture_query_lod, texture_rectangle, texture_rg, texture_rgb10_a2ui, texture_stencil8,
texture_storage, texture_storage_multisample, texture_swizzle, texture_view, timer_query,
transform_feedback2, transform_feedback3, transform_feedback_instanced,
transform_feedback_overflow_query, transpose_matrix, uniform_buffer_object, vertex_array_bgra,
vertex_array_object, vertex_attrib_64bit, vertex_attrib_binding, vertex_buffer_object,
vertex_program, vertex_shader, vertex_type_10f_11f_11f_rev, vertex_type_2_10_10_10_rev,
viewport_array, window_pos
                       ATI extensions:
        draw_buffers, texture_float, texture_mirror_once
                       EXT extensions:
        Cg_shader, abgr, bgra, bindable_uniform, blend_color, blend_equation_separate,
blend_func_separate, blend_minmax, blend_subtract, compiled_vertex_array, depth_bounds_test,
direct_state_access, draw_buffers2, draw_instanced, draw_range_elements, fog_coord,
framebuffer_blit, framebuffer_multisample, framebuffer_multisample_blit_scaled, framebuffer_object,
framebuffer_sRGB, geometry_shader4, gpu_program_parameters, gpu_shader4, import_sync_object,
memory_object, memory_object_fd, multi_draw_arrays, packed_depth_stencil, packed_float,
packed_pixels, pixel_buffer_object, point_parameters, polygon_offset_clamp, post_depth_coverage,
provoking_vertex, raster_multisample, rescale_normaI'm happy to provide any other details as needed, or to pursue other routes for support as directed (e.g. if this is not a bug in the package)!l, secondary_color, semaphore, semaphore_fd,
separate_shader_objects, separate_specular_color, shader_image_load_formatted,
shader_image_load_store, shader_integer_mix, shadow_funcs, sparse_texture2, stencil_two_side,
stencil_wrap, texture3D, texture_array, texture_buffer_object, texture_compression_dxt1,
texture_compression_latc, texture_compression_rgtc, texture_compression_s3tc, texture_cube_map,
texture_edge_clamp, texture_env_add, texture_env_combine, texture_env_dot3,
texture_filter_anisotropic, texture_filter_minmax, texture_integer, texture_lod, texture_lod_bias,
texture_mirror_clamp, texture_object, texture_sRGB, texture_sRGB_R8, texture_sRGB_decode,
texture_shared_exponent, texture_storage, texture_swizzle, timer_query, transform_feedback2,
vertex_array, vertex_array_bgra, vertex_attrib_64bit, window_rectangles, x11_sync_object
                       EXTX extensions:
        framebuffer_mixed_formats
                       IBM extensions:
        rasterpos_clip, texture_mirrored_repeat
                       KHR extensions:
        blend_equation_advanced, blend_equation_advanced_coherent, context_flush_control, debug,
no_error, parallel_shader_compile, robust_buffer_access_behavior, robustness
                       KTX extensions:
        buffer_region
                       NV extensions:
        ES1_1_compatibility, ES3_1_compatibility, alpha_to_coverage_dither_control,
bindless_multi_draw_indirect, bindless_multi_draw_indirect_count, bindless_texture,
blend_equation_advanced, blend_equation_advanced_coherent, blend_minmax_factor, blend_square,
command_list, compute_program5, conditional_render, conservative_raster, conservative_raster_dilate,
copy_depth_to_color, copy_image, depth_buffer_float, depth_clamp, draw_texture, draw_vulkan_image,
explicit_multisample, feature_query, fence, fill_rectangle, float_buffer, fog_distance,
fragment_coverage_to_color, fragment_program, fragment_program2, fragment_program_option,
fragment_shader_interlock, framebuffer_mixed_samples, framebuffer_multisample_coverage,
geometry_shader4, geometry_shader_passthrough, gpu_program4, gpu_program4_1, gpu_program5,
gpu_program5_mem_extended, gpu_program_fp64, gpu_shader5, half_float, internalformat_sample_query,
light_max_exponent, memory_attachment, multisample_coverage, multisample_filter_hint,
occlusion_query, packed_depth_stencil, parameter_buffer_object, parameter_buffer_object2,
path_rendering, path_rendering_shared_edge, pixel_data_range, point_sprite, primitive_restart,
query_resource, query_resource_tag, register_combiners, register_combiners2,
robustness_video_memory_purge, sample_locations, sample_mask_override_coverage,
shader_atomic_counters, shader_atomic_float, shader_atomic_fp16_vector, shader_atomic_int64,
shader_buffer_load, shader_storage_buffer_object, shader_thread_group, shader_thread_shuffle,
texgen_reflection, texture_barrier, texture_compression_vtc, texture_env_combine4,
texture_multisample, texture_rectangle, texture_rectangle_compressed, texture_shader,
texture_shader2, texture_shader3, transform_feedback, transform_feedback2,
uniform_buffer_unified_memory, vdpau_interop, vertex_array_range, vertex_array_range2,
vertex_attrib_integer_64bit, vertex_buffer_unified_memory, vertex_program, vertex_program1_1,
vertex_program2, vertex_program2_option, vertex_program3, viewport_array2, viewport_swizzle
                       NVX extensions:
        conditional_render, gpu_memory_info, nvenc_interop
                       OVR extensions:
        multiview, multiview2
                       S3 extensions:
        s3tc
                       SGIS extensions:
        generate_mipmap, texture_lod
                       SGIX extensions:
        depth_texture, shadow
                       SUN extensions:
        slice_accum
[AudioSystem] Music and sound effects are disabled
              Audio configuration:

Identified 11 data bundles in 0.3 seconds
OpenGL 2.1 supported
[Def_Read] Parsing definition files...
           Definitions:
             4 materials
[ResourceSystem] Model init completed in 0.00 seconds
Game could not be selected automatically
[MasterWorker] Received 21 servers from master
Loading game "Ultimate DOOM"...
Path "auto" now mapped to "data/jdoom/auto"
Path "auto" now mapped to "defs/jdoom/auto"
Loading IWAD file "~/steam_doom_wads/DOOM.WAD" (as vanilla)
Loading PK3 archive "(basedir)/libdoom.pk3" (as vanilla)
[Textures > loadCompositeTextureDefs]
    Loaded all 125 texture definitions from "~/steam_doom_wads/DOOM.WAD:(basedir)/TEXTURE1.lmp"
     Loaded all 162 texture definitions from "~/steam_doom_wads/DOOM.WAD:(basedir)/TEXTURE2.lmp"
Parsing primary config "~/.doomsday/runtime/configs/doom/game.cfg"...
Parsing console commands in "~/.doomsday/runtime/configs/doom/game.cfg"...
Parsing console commands in "~/.doomsday/runtime/configs/doom/player/bindings.cfg"...
[Def_Read] Parsing definition files...
           Definitions:
             4   episodes
             28  animation groups
             6   composite fonts
             8   finales
             9   lights
             37  map infos
             4   materials
             19  particle generators
             4   skies
             69  songs
             110 sound effects
             138 sprite names
             974 states
             49  surface decorations
             368 text strings
             8   texture environments
             140 things
[ResourceSystem] Model init completed in 0.00 seconds
Known maps:
    0: E1M1           "~/steam_doom_wads/DOOM.WAD"
    1: E1M2           "~/steam_doom_wads/DOOM.WAD"
    2: E1M3           "~/steam_doom_wads/DOOM.WAD"
    3: E1M4           "~/steam_doom_wads/DOOM.WAD"
    4: E1M5           "~/steam_doom_wads/DOOM.WAD"
    5: E1M6           "~/steam_doom_wads/DOOM.WAD"
    6: E1M7           "~/steam_doom_wads/DOOM.WAD"
    7: E1M8           "~/steam_doom_wads/DOOM.WAD"
    8: E1M9           "~/steam_doom_wads/DOOM.WAD"
    9: E2M1           "~/steam_doom_wads/DOOM.WAD"
   10: E2M2           "~/steam_doom_wads/DOOM.WAD"
   11: E2M3           "~/steam_doom_wads/DOOM.WAD"
   12: E2M4           "~/steam_doom_wads/DOOM.WAD"
   13: E2M5           "~/steam_doom_wads/DOOM.WAD"
   14: E2M6           "~/steam_doom_wads/DOOM.WAD"
   15: E2M7           "~/steam_doom_wads/DOOM.WAD"
   16: E2M8           "~/steam_doom_wads/DOOM.WAD"
   17: E2M9           "~/steam_doom_wads/DOOM.WAD"
   18: E3M1           "~/steam_doom_wads/DOOM.WAD"
   19: E3M2           "~/steam_doom_wads/DOOM.WAD"
   20: E3M3           "~/steam_doom_wads/DOOM.WAD"
   21: E3M4           "~/steam_doom_wads/DOOM.WAD"
   22: E3M5           "~/steam_doom_wads/DOOM.WAD"
   23: E3M6           "~/steam_doom_wads/DOOM.WAD"
   24: E3M7           "~/steam_doom_wads/DOOM.WAD"
   25: E3M8           "~/steam_doom_wads/DOOM.WAD"
   26: E3M9           "~/steam_doom_wads/DOOM.WAD"
   27: E4M1           "~/steam_doom_wads/DOOM.WAD"
   28: E4M2           "~/steam_doom_wads/DOOM.WAD"
   29: E4M3           "~/steam_doom_wads/DOOM.WAD"
   30: E4M4           "~/steam_doom_wads/DOOM.WAD"
   31: E4M5           "~/steam_doom_wads/DOOM.WAD"
   32: E4M6           "~/steam_doom_wads/DOOM.WAD"
   33: E4M7           "~/steam_doom_wads/DOOM.WAD"
   34: E4M8           "~/steam_doom_wads/DOOM.WAD"
   35: E4M9           "~/steam_doom_wads/DOOM.WAD"

Found 36 maps in total.


Ultimate DOOM

Segmentation fault


Not sure what else may be of value. Should I file a bug report w/ the package manager or persue other routes? I can't imagine many people using this (though it has always been, in my experience, the best modern Doom engine out there since it hit the scene).

Thank you for reading & for any help!

Cheers!

EDIT: I tried the WAD from the doom-data package, with the same result. I installed it with the doomsday USE flag, which said to run doomsday-demo. Doomsday-demo complains about missing "jdoom".


Last edited by statikregimen on Tue Jan 01, 2019 3:13 am; edited 1 time in total
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21602

PostPosted: Mon Dec 31, 2018 4:35 am    Post subject: Reply with quote

Where in the program does the segmentation fault occur? A backtrace from gdb would be helpful, and would likely be requested if you filed a bug report.
Back to top
View user's profile Send private message
statikregimen
Apprentice
Apprentice


Joined: 16 Jul 2011
Posts: 173
Location: USA/Michigan

PostPosted: Tue Jan 01, 2019 2:26 am    Post subject: Reply with quote

Thanks... At this moment, I don't even know where to begin with gdb so I guess I will start learning...

EDIT: Perhaps my time in Xcode developing for iOS is not entirely useless for what I wanted to do with my career afterall....

Code:
Thread 1 "doomsday" received signal SIGSEGV, Segmentation fault.
0x000055555571d10d in audio::SfxChannels::forAll(std::function<de::LoopResult (audio::SfxChannel&)>) const ()
(gdb) Exception ignored in: <gdb.GdbOutputFile object at 0x7fcde7d130b8>
Traceback (most recent call last):
  File "/usr/share/gdb/python/gdb/__init__.py", line 43, in flush
    def flush(self):
KeyboardInterrupt


I don't know why the Python traceback....Running it this way caused my window manager to freak out and lost control momentarily until I manually killed gdb. The game did crash at the normal time, though - just w/ gdb in the mix, for some reason the game window stayed open and didn't give back mouse & keyboard control yet.

Anyway, I guess it appears to be an audio issue.

I tried switching to OpenAL...Still crashes but console says:

Code:
[InFineSystem > FinaleInterpreter > AudioSystem]
    Starting music "intro"
Segmentation fault


With OpenAL, gdb goes:

Code:
Thread 1 "doomsday" received signal SIGSEGV, Segmentation fault.
0x000055555571d10d in audio::SfxChannels::forAll(std::function<de::LoopResult (audio::SfxChannel&)>) const ()


With sound disabled, it seems to load the game and work just fine.

Seems unusual that both audio systems it has available die at the same place....The only potential variable I can think of that may be unusual to most systems, is that I do not use Pulseaudio - just straight Alsa, as this machine is mainly used in a home studio.
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21602

PostPosted: Tue Jan 01, 2019 4:42 am    Post subject: Reply with quote

Many games will take exclusive control of the keyboard and mouse while they have focus. When gdb is tracing the process, some otherwise fatal signals transfer control to gdb instead of killing the process. If the process dies, the X server automatically drops the grab, which returns your input to normal. If the process is hung waiting for gdb, the grab is not dropped. That is likely why you had input trouble: all your input was still directed to the game, but with it trapped by the debugger, that input had no effect.

Sorry, I cannot help with why the game crashes on audio.
Back to top
View user's profile Send private message
statikregimen
Apprentice
Apprentice


Joined: 16 Jul 2011
Posts: 173
Location: USA/Michigan

PostPosted: Tue Jan 01, 2019 6:13 am    Post subject: Reply with quote

Hu wrote:
Many games will take exclusive control of the keyboard and mouse while they have focus. When gdb is tracing the process, some otherwise fatal signals transfer control to gdb instead of killing the process. If the process dies, the X server automatically drops the grab, which returns your input to normal. If the process is hung waiting for gdb, the grab is not dropped. That is likely why you had input trouble: all your input was still directed to the game, but with it trapped by the debugger, that input had no effect.

Sorry, I cannot help with why the game crashes on audio.


Yeah this was my overall thought process. Didn't express it well (about games taking exclusive control, and etc.. i'm a hobbyist game dev).

Thank you for replying and pushing me to get some basics of gdb! :D
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21602

PostPosted: Wed Jan 02, 2019 1:49 am    Post subject: Reply with quote

If you can't proceed from here, it may be time to file a bug. Include in your report the backtrace from gdb, which may help the author understand what to change.

For some games, there are settings you can apply to prevent the game from grabbing the local input devices. I don't know if this game has such a setting. It's usually named something like "Keep keyboard/mouse focus." You could also take the brute force approach of running gdb from a text console or from a shell logged in from a different machine, so that you retain control of it while the X server is grabbed.
Back to top
View user's profile Send private message
statikregimen
Apprentice
Apprentice


Joined: 16 Jul 2011
Posts: 173
Location: USA/Michigan

PostPosted: Wed Jan 02, 2019 2:12 am    Post subject: Reply with quote

Hu wrote:
If you can't proceed from here, it may be time to file a bug. Include in your report the backtrace from gdb, which may help the author understand what to change.

For some games, there are settings you can apply to prevent the game from grabbing the local input devices. I don't know if this game has such a setting. It's usually named something like "Keep keyboard/mouse focus." You could also take the brute force approach of running gdb from a text console or from a shell logged in from a different machine, so that you retain control of it while the X server is grabbed.


Thanks. I just need to double check game requirements vs. what I have installed. If I understand Portage, it feels like there is a chance the package maintainer made an oversight on enforcing a certain USE flag or required package (or specific version of a package)?

I guess, I feel llike that's the minimum I need to double check to know who to file a bug report with - the package maintainer or the game devs.

Cheers!
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21602

PostPosted: Wed Jan 02, 2019 4:24 am    Post subject: Reply with quote

In my opinion, no, this cannot be an oversight by the package maintainer. The game should not crash, even if the immediate cause is that the maintainer made a mistake in packaging. If the maintainer made such a mistake, the game ought to exit gracefully with an error message telling you that its preconditions (missing supporting data files, missing functionality in a supporting library, etc.) are not satisfied. Crashing is not a correct response. You have now spent quite a bit of time and effort on this and you still don't even know what's wrong with it. You should not be expected to reverse-engineer the failure to determine why it doesn't work. If it can't work as-is, it should tell you why it can't work.
Back to top
View user's profile Send private message
statikregimen
Apprentice
Apprentice


Joined: 16 Jul 2011
Posts: 173
Location: USA/Michigan

PostPosted: Thu Jan 03, 2019 12:56 am    Post subject: Reply with quote

Hu wrote:
In my opinion, no, this cannot be an oversight by the package maintainer. The game should not crash, even if the immediate cause is that the maintainer made a mistake in packaging. If the maintainer made such a mistake, the game ought to exit gracefully with an error message telling you that its preconditions (missing supporting data files, missing functionality in a supporting library, etc.) are not satisfied. Crashing is not a correct response. You have now spent quite a bit of time and effort on this and you still don't even know what's wrong with it. You should not be expected to reverse-engineer the failure to determine why it doesn't work. If it can't work as-is, it should tell you why it can't work.


Thank you for this insight. I'm a self-taught developer, doing iOS devlopment by day, and hobby game development by night (usually in Python or C#). But you make a good point, that the error is not handled properly in this case. I'm still trying to master "best practice"... while I know a lot of things, I haven't quite mastered identifying applications for the knowledge. Also, there are gaps in my knowledge, since I didn't go through any structured training. So this encounter has actually helped me connect a lot of dots either way lol

Anyway, thanks again. I will submit this report to the game devs. Meanwhile, it would be nice to be able to play some Doom so I'll see if I can find a workaround in the mean time. Will follow up with any findings.

Cheers!
Back to top
View user's profile Send private message
Hu
Moderator
Moderator


Joined: 06 Mar 2007
Posts: 21602

PostPosted: Thu Jan 03, 2019 3:04 am    Post subject: Reply with quote

Glad to have helped. When you submit your report, could you post a link to it here so that interested readers can follow along? Maybe you will get lucky and someone here will have useful information about the crash, and can follow your link to provide it to someone who can use it to fix the problem.
Back to top
View user's profile Send private message
statikregimen
Apprentice
Apprentice


Joined: 16 Jul 2011
Posts: 173
Location: USA/Michigan

PostPosted: Mon Jan 07, 2019 2:01 am    Post subject: Reply with quote

I just noticed that the ebuild is providing Doomsday 2.0.3 but the latest official/upstream appears to be 2.1.1 (http://api.dengine.net/1/builds). I feel like I did check that at one point but idk. Anyway, it seems like I'd be remiss not to try their latest source before telling them something is broken. I did try to search their issue tracker, but came up empty handed - but doesn't mean it wasn't reported/fixed.
Back to top
View user's profile Send private message
steve_v
Guru
Guru


Joined: 20 Jun 2004
Posts: 387
Location: New Zealand

PostPosted: Sat Jan 12, 2019 9:43 am    Post subject: Reply with quote

statikregimen wrote:
it seems like I'd be remiss not to try their latest source before telling them something is broken.


I'll save you the time, I did a quick version-bump on the ebuild and 2.1.1 still segfaults.
_________________
Once is happenstance. Twice is coincidence. Three times is enemy action. Four times is Official GNOME Policy.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gamers & Players All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum