dMZX Forums: Full-screen crashes. -> Archived MegaZeux Bugs -> Tracker

Jump to content

Report ID 679 Title Full-screen crashes.
Product Archived MegaZeux Bugs Status Fixed (Severity 5 - Critical)
Version 2.90b Fixed in 2.92
Introduced In Version 2.90bOperating System Debian Jessie (oldstable) x64.

Page 1 of 1
  • Cannot start a new Issue
  • Closed Issue This issue is locked

Report ID #679: Full-screen crashes.

#1 User is offline  
Giorgos 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 0
  • Joined: 17-July 17
  • Gender:Male

Posted 17 July 2017 - 01:53 PM

Hi! :)
Windowed mode works OK, but pressing ctrl-alt-Enter, crashes MZX.

Running from konsole gives the message"DEBUG: Video: using 'software' renderer".
MZX v.2.90b compiled from source.
Graphic driver: AMD proprietary.
G.

PS. Not sure about previous MZX versions.

This post has been edited by Giorgos: 17 July 2017 - 01:54 PM



Page 1 of 1  
  • Cannot start a new Issue
  • Closed Issue This issue is locked

Replies (1 - 12)

#2 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 17 July 2017 - 05:22 PM

Can you run MegaZeux in gdb and post a backtrace?

Does this affect other renderers (e.g. ./megazeux video_output=glsl) or just software?
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#3 User is offline  
Giorgos 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 0
  • Joined: 17-July 17
  • Gender:Male

Posted 18 July 2017 - 11:18 AM

Ooops! I didn't see .megazeux-config! :shocked:/>/>

Indeed choosing an OpenGL mode does the trick.
(with glsl being the best here).

Overlay1 leads to a seg fault and overlay2 works, but with poor quality.

I think a note should be written (in addition to build.txt) that should be point the user to .megazeux-config (which is very well commented and self explanatory).

THANKS Lachesis!!! :pirate:/>/>

#4 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 18 July 2017 - 05:32 PM

That wasn't a fix suggestion. I wanted to know if it was renderer-specific or across all of them. There's still a crash that needs to be debugged with the software renderer.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#5 User is offline  
Terryn 

  • ******
  • Group: DigiStaff
  • Posts: 2,960
  • Joined: 12-October 00
  • Gender:Male

Posted 18 July 2017 - 05:42 PM

Overlay1 seemed to crash for you too, so we'd still like backtraces of crashes for both instances, if possible.
angelic stream - shed sanguine - ill-adapt - avis - para/lyser - renaissance - dead tangent - phosphene blur - birth breeds death - ________ - painted glass - lagniappe

<Exophase> HES STEALING MAH AIRSHIP!!!!!!11111111

#6 User is offline  
Giorgos 

  • Newbie
  • Pip
  • Group: Members
  • Posts: 0
  • Joined: 17-July 17
  • Gender:Male

Posted 19 July 2017 - 09:20 AM

Lachesis, on 18 July 2017 - 08:32 PM, said:

That wasn't a fix suggestion. I wanted to know if it was renderer-specific or across all of them. There's still a crash that needs to be debugged with the software renderer.


Oh indeed! :D/>/>/>/>

giorgos  ~  gdb mzxrun    
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
Copyright (C) 2014 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-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from mzxrun...done.
(gdb) run
Starting program: /usr/games/mzxrun 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff04df700 (LWP 4880)]
[New Thread 0x7ffff0db2700 (LWP 4881)]
DEBUG: Video: using 'software' renderer.
[New Thread 0x7ffff0504700 (LWP 4882)]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7ad7fcd in soft_render_graph (graphics=0x7ffff7dc0b40 <graphics>) at src/render_soft.c:109
109     src/render_soft.c: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος.
(gdb) backtrace full
#0  0x00007ffff7ad7fcd in soft_render_graph (graphics=0x7ffff7dc0b40 <graphics>) at src/render_soft.c:109
        render_data = 0x7ffff7dbb2c0 <render_data>
        screen = 0xdee4a0
        pixels = 0x0
        pitch = 0
        bpp = 517048066
        mode = 0
#1  0x00007ffff7a5c1d6 in update_screen () at src/graphics.c:753
        ticks = 5095
        layer = 4155260051
#2  0x00007ffff7ac41a0 in run_dialog (mzx_world=0x601fc0 <mzx_world>, di=0x7fffffffcf50) at src/window.c:726
        exit = 0
        mouse_press = 0
        mouse_drag_state = 0
        x = 2
        y = 1
        title_x_offset = 35
        current_element = 0xe5be20
        current_element_num = 0
        vid_usage = '\377' <repeats 164 times>, '\005' <repeats 13 times>, '\377' <repeats 44 times>...
        current_key = 0
        new_key = 0
        i = 7
        conf = 0x603928 <mzx_world+6504>
#3  0x00007ffff7ac8985 in file_manager (mzx_world=0x601fc0 <mzx_world>, wildcards=0x7ffff7d8f1b0 <world_ext>, default_ext=0x0, 
    ret=0x7fffffffdb20 "", title=0x7ffff7b61fac "Load World", dirs_okay=1, allow_new=0, dialog_ext=0x0, num_ext=0, ext_height=0)
    at src/window.c:2706
        current_dir = {d = 0x0, entries = 0, pos = 0}
        file_name = 0xe5b1b0 ""
        file_info = {st_dev = 2050, st_ino = 137911, st_nlink = 3, st_mode = 16877, st_uid = 1000, st_gid = 1000, __pad0 = 0, 
          st_rdev = 0, st_size = 4096, st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1499009393, tv_nsec = 996107636}, 
          st_mtim = {tv_sec = 1474220893, tv_nsec = 138893615}, st_ctim = {tv_sec = 1474220893, tv_nsec = 138893615}, 
          __glibc_reserved = {0, 0, 0}}
        current_dir_name = 0xe5b5a0 "/home/giorgos"
---Type <return> to continue, or q <return> to quit---
        current_dir_short = "/home/giorgos", '\000' <repeats 19 times>, "\330\307`\000\000\000\000\000\300\307`\000\000\000\000\000\340\322\377\377\377\177\000"
        current_dir_length = 13
        return_dir_name = 0xe5b9c0 "/home/giorgos"
        base_dir_name = 0xe5b7b0 "/home/giorgos"
        total_filenames_allocated = 32
        total_dirnames_allocated = 32
        file_list = 0xe5bbd0
        dir_list = 0xe5bce0
        num_files = 0
        num_dirs = 22
        file_name_length = 6
        ext_pos = 6
        chosen_file = 0
        chosen_dir = 0
        dialog_result = 1
        return_value = 1
        di = {x = 2, y = 1, width = 76, height = 23, title = 0x7ffff7b61fac "Load World", num_elements = 7 '\a', 
          elements = 0x7fffffffd030, current_element = 0, done = 0, return_value = 0, sfx_test_for_input = 0, pad_space = 0, 
          idle_function = 0x7ffff7ac7822 <file_dialog_function>}
        elements = {0xe5be20, 0xe5bee0, 0xe5bfa0, 0xe5c000, 0xe5c050, 0xe5c0a0, 0xe5c0f0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
          0x7ffff7424305 <__libc_writev+117>, 0x0, 0xdad8aa3d9c6ff200, 0x7fffffffd240, 0x1, 0x60c7c0, 0x60c7d8, 0x0, 0x0, 0x1, 
          0x7ffff5a3d4c1, 0x1000100000003, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7ffff742c5a9 <recvmsg+57>, 0x0, 
          0x7ffff5a3f901, 0x0, 0xffffffffffffffff, 0x60d880, 0x1000001da, 0x60d850, 0x60c800, 0x60c834, 0x1000, 0x0, 0x0, 
          0x7fffffffd180, 0x1, 0x7fffffffd1d0, 0x50, 0x0, 0x7ffff5a3ea81, 0x7fffffffd1e8, 0x7ffff5a3ebc5, 0x2, 0xe51050, 0x1da, 
          0x7fffffffd210, 0x0, 0x5b, 0x1, 0xffffffffffffffff, 0x0, 0xdad8aa3d9c6ff200}
        list_length = 17
        last_element = 0
        i = 1
        ret_path = "\000\307`\000\000\000\000\000p\265`\000\000\000\000\000\360!\345\000\000\000\000\000\360!\345\000\000\000\000\000P\020\345\000\000\000\000\000\300\307`\000\000\000\000\000\340\322\377\377\377\177\000\000@s\311\365\377\177\000\000p\265`\000\000\000\000\000ޅ\311\365\377\177\000\000\000\000\000\000\000\000\000\000\060\323\377\377\377\177", '\000' <repeats 27 times>, "\362o\234=\252\330\332\001\000\000\000\000\000\000\000p\265`\000\000\000\000\000\200gj\000\000\000\000\000\340\235\030\364\377\177\000\000\b\000 \006\000\000\000\000\000\257\357\363\377\177\000\000\001\000\000\000\000\000\000\000\314z\375\363\377\177\000\000\001\241\332\001\00---Type <return> to continue, or q <return> to quit---
0\000\000\000\000\000\000\000"...
        ret_file = '\000' <repeats 511 times>
#4  0x00007ffff7ac98bb in choose_file_ch (mzx_world=0x601fc0 <mzx_world>, wildcards=0x7ffff7d8f1b0 <world_ext>, 
    ret=0x7fffffffdb20 "", title=0x7ffff7b61fac "Load World", dirs_okay=1) at src/window.c:3027
No locals.
#5  0x00007ffff7a514e1 in load_world_selection (mzx_world=0x601fc0 <mzx_world>) at src/game.c:418
        world_name = '\000' <repeats 511 times>
#6  0x00007ffff7a5689b in title_screen (mzx_world=0x601fc0 <mzx_world>) at src/game.c:2720
        exit = 0
        confirm_exit = 0
        fadein = 1
        key = 0
        key_status = 0
        fade = 3
        file_info = {st_dev = 140737354103464, st_ino = 227499110, st_nlink = 1, st_mode = 21, st_uid = 0, st_gid = 6675024, 
          __pad0 = 0, st_rdev = 140737351931838, st_size = 6342708, st_blksize = 140737488346672, st_blocks = 140737347959744, 
          st_atim = {tv_sec = 140737347969416, tv_nsec = 140737488346944}, st_mtim = {tv_sec = 3554673, tv_nsec = 140737488346928}, 
          st_ctim = {tv_sec = 80, tv_nsec = 0}, __glibc_reserved = {0, 140737354102216, 4196621}}
        src_board = 0x7ffff742c5a9 <recvmsg+57>
        current_dir = 0xe5afa0 "/home/giorgos"
        conf = 0x603928 <mzx_world+6504>
#7  0x00000000004016a6 in main (argc=1, argv=0x7fffffffe178) at src/main.c:166
        err = 1
        mzx_world = {active = 0, name = '\000' <repeats 24 times>, version = 0, status_counters_shown = {'\000' <repeats 14 times>, 
            '\000' <repeats 14 times>, '\000' <repeats 14 times>, '\000' <repeats 14 times>, '\000' <repeats 14 times>, 
            '\000' <repeats 14 times>}, keys = '\000' <repeats 15 times>, blind_dur = 0, firewalker_dur = 0, freeze_time_dur = 0, 
          slow_time_dur = 0, wind_dur = 0, pl_saved_x = {0, 0, 0, 0, 0, 0, 0, 0}, pl_saved_y = {0, 0, 0, 0, 0, 0, 0, 0}, 
          pl_saved_board = {0, 0, 0, 0, 0, 0, 0, 0}, saved_pl_color = 0, was_zapped = 0, under_player_id = 0, 
          under_player_color = 0, under_player_param = 0, mesg_edges = 0, scroll_base_color = 143, scroll_corner_color = 135, 
          scroll_pointer_color = 128, scroll_title_color = 143, scroll_arrow_color = 142, 
          real_mod_playing = '\000' <repeats 511 times>, edge_color = 0, first_board = 0, endgame_board = 0, death_board = 0, 
          endgame_x = 0, endgame_y = 0, game_over_sfx = 0, death_x = 0, death_y = 0, starting_lives = 0, lives_limit = 0, 
          starting_health = 0, health_limit = 0, enemy_hurt_enemy = 0, clear_on_exit = 0, only_from_swap = 0, player_restart_x = 0, 
          player_restart_y = 0, num_counters = 0, num_counters_allocated = 0, counter_list = 0x0, num_strings = 0, 
---Type <return> to continue, or q <return> to quit---
          num_strings_allocated = 0, string_list = 0x0, num_sprites = 0, num_sprites_allocated = 0, sprite_num = 0, 
          sprite_list = 0x0, active_sprites = 0, sprite_y_order = 0, collision_count = 0, collision_list = 0x0, multiplier = 0, 
          divider = 0, c_divisions = 0, fread_delimiter = 0, fwrite_delimiter = 0, bi_shoot_status = 0, bi_mesg_status = 0, 
          output_file_name = '\000' <repeats 511 times>, output_file = 0x0, input_file_name = '\000' <repeats 511 times>, 
          input_file = 0x0, input_is_dir = false, input_directory = {d = 0x0, entries = 0, pos = 0}, temp_input_pos = 0, 
          temp_output_pos = 0, commands = 0, commands_stop = 0, vlayer_size = 0, vlayer_width = 0, vlayer_height = 0, 
          vlayer_chars = 0x0, vlayer_colors = 0x0, num_boards = 0, num_boards_allocated = 0, board_list = 0x0, current_board = 0x0, 
          current_board_id = 0, temporary_board = 0, global_robot = {world_version = 0, program_source_length = 0, 
            program_source = 0x0, program_bytecode_length = 0, program_bytecode = 0x0, robot_name = '\000' <repeats 14 times>, 
            robot_char = 0 '\000', cur_prog_line = 0, pos_within_line = 0, robot_cycle = 0, cycle_count = 0, 
            bullet_type = 0 '\000', is_locked = 0 '\000', can_lavawalk = 0 '\000', can_goopwalk = 0 '\000', walk_dir = IDLE, 
            last_touch_dir = IDLE, last_shot_dir = IDLE, xpos = 0, ypos = 0, status = 0 '\000', used = 0 '\000', loop_count = 0, 
            num_labels = 0, label_list = 0x0, stack_size = 0, stack_pointer = 0, stack = 0x0, local = {0 <repeats 32 times>}, 
            command_map = 0x0, command_map_length = 0, commands_total = 0, commands_cycle = 0, commands_caught = 0}, 
          custom_sfx_on = 0, custom_sfx = '\000' <repeats 3449 times>, player_x = 0, player_y = 0, target_where = TARGET_NONE, 
          target_board = 0, target_x = 0, target_y = 0, target_id = SPACE, target_color = 0, target_d_id = SPACE, 
          target_d_color = 0, dead = 0, bomb_type = 0, slow_down = 0, key_up_delay = 0, key_down_delay = 0, key_right_delay = 0, 
          key_left_delay = 0, first_prefix = 0, mid_prefix = 0, last_prefix = 0, special_counter_return = FOPEN_NONE, 
          robotic_save_type = SAVE_NONE, robotic_save_path = '\000' <repeats 511 times>, change_game_state = 0, mzx_speed = 4, 
          default_speed = 4, lock_speed = 0, conf = {fullscreen = true, resolution_width = -1, resolution_height = -1, 
            window_width = 640, window_height = 350, allow_resize = true, video_output = "software\000\000\000\000\000\000\000", 
            force_bpp = 32, video_ratio = RATIO_MODERN_64_35, gl_filter_method = "linear\000\000\000\000\000\000\000\000\000", 
            gl_scaling_shader = '\000' <repeats 15 times>, gl_vsync = 0, output_frequency = 44100, buffer_size = 4096, 
            oversampling_on = 0, resample_mode = 1, modplug_resample_mode = 2, music_volume = 8, sam_volume = 8, 
            pc_speaker_volume = 8, music_on = 1, pc_speaker_on = 1, startup_path = '\000' <repeats 255 times>, 
            startup_file = "caverns.mzx", '\000' <repeats 244 times>, default_save_name = "saved.sav", '\000' <repeats 246 times>,
            mzx_speed = 4, disassemble_extras = 1, disassemble_base = 10, startup_editor = 0, standalone_mode = 0,
            no_titlescreen = 0, mask_midchars = 1, system_mouse = false}, editor_conf = {editor_space_toggles = 0, bedit_hhelp = 0,
            editor_tab_focuses_view = 0, viewport_x = 0, viewport_y = 0, viewport_w = 0, viewport_h = 0, board_width = 0,
            board_height = 0, can_shoot = 0, can_bomb = 0, fire_burns_spaces = 0, fire_burns_fakes = 0, fire_burns_trees = 0,
            fire_burns_brown = 0, fire_burns_forever = 0, forest_to_floor = 0, collect_bombs = 0, restart_if_hurt = 0,
            reset_on_entry = 0, player_locked_ns = 0, player_locked_ew = 0, player_locked_att = 0, time_limit = 0,
            explosions_leave = 0, saving_enabled = 0, overlay_enabled = 0, charset_path = '\000' <repeats 511 times>,
            palette_path = '\000' <repeats 511 times>, pedit_hhelp = 0, undo_history_size = 0, editor_enter_splits = false,
---Type <return> to continue, or q <return> to quit---
            color_codes = '\000' <repeats 31 times>, color_coding_on = 0, default_invalid_status = 0, redit_hhelp = 0,
            backup_count = 0, backup_interval = 0, backup_name = '\000' <repeats 255 times>,
            backup_ext = '\000' <repeats 255 times>, default_macros = {'\000' <repeats 63 times>, '\000' <repeats 63 times>,
              '\000' <repeats 63 times>, '\000' <repeats 63 times>, '\000' <repeats 63 times>}, num_extended_macros = 0,
            num_macros_allocated = 0, extended_macros = 0x0, num_jump_points = 0, jump_points = 0x0}, editor_conf_backup = {
            editor_space_toggles = 0, bedit_hhelp = 0, editor_tab_focuses_view = 0, viewport_x = 0, viewport_y = 0, viewport_w = 0,
            viewport_h = 0, board_width = 0, board_height = 0, can_shoot = 0, can_bomb = 0, fire_burns_spaces = 0,
            fire_burns_fakes = 0, fire_burns_trees = 0, fire_burns_brown = 0, fire_burns_forever = 0, forest_to_floor = 0,
            collect_bombs = 0, restart_if_hurt = 0, reset_on_entry = 0, player_locked_ns = 0, player_locked_ew = 0,
            player_locked_att = 0, time_limit = 0, explosions_leave = 0, saving_enabled = 0, overlay_enabled = 0,
            charset_path = '\000' <repeats 511 times>, palette_path = '\000' <repeats 511 times>, pedit_hhelp = 0,
            undo_history_size = 0, editor_enter_splits = false, color_codes = '\000' <repeats 31 times>, color_coding_on = 0,
            default_invalid_status = 0, redit_hhelp = 0, backup_count = 0, backup_interval = 0,
            backup_name = '\000' <repeats 255 times>, backup_ext = '\000' <repeats 255 times>, default_macros = {
              '\000' <repeats 63 times>, '\000' <repeats 63 times>, '\000' <repeats 63 times>, '\000' <repeats 63 times>,
              '\000' <repeats 63 times>}, num_extended_macros = 0, num_macros_allocated = 0, extended_macros = 0x0,
            num_jump_points = 0, jump_points = 0x0}, editing = false, raw_world_info = 0x0, raw_world_info_size = 0,
          help_file = 0xe4fc90, update_done = 0x0, update_done_size = 0, full_exit = false}
(gdb) q
A debugging session is active.

        Inferior 1 [process 4876] will be killed.

Quit anyway? (y or n) y
 giorgos  ~  


And for overlay1:

 giorgos  ~  gdb mzxrun
GNU gdb (Debian 7.7.1+dfsg-5) 7.7.1
Copyright (C) 2014 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-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from mzxrun...done.
(gdb) run
Starting program: /usr/games/mzxrun 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff04df700 (LWP 4925)]
[New Thread 0x7ffff0db2700 (LWP 4926)]
DEBUG: Video: using 'overlay1' renderer.
WARNING: Accelerated renderer not available. Overlay will be SLOW!
[New Thread 0x7ffff7fe6700 (LWP 4927)]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7a717d6 in render_graph32 (pixels=0x0, pitch=0, graphics=0x7ffff7dc0b40 <graphics>, 
    set_colors=0x7ffff7a70d1d <set_colors32_mzx>) at src/render.c:508
508     src/render.c: Δεν υπάρχει τέτοιο αρχείο ή κατάλογος.
(gdb) backtrace full
#0  0x00007ffff7a717d6 in render_graph32 (pixels=0x0, pitch=0, graphics=0x7ffff7dc0b40 <graphics>, 
    set_colors=0x7ffff7a70d1d <set_colors32_mzx>) at src/render.c:508
        dest = 0x0
        ldest = 0x0
        ldest2 = 0x0
        src = 0x7ffff7dc0b68 <graphics+40>
        old_bg = 0 '\000'
        old_fg = 7 '\a'
        char_ptr = 0x7ffff7dc2c65 <graphics+8485> ""
        char_colors = {2147516416, 2158657706}
        current_char_byte = 0
        i = 0
        i2 = 0
        i3 = 0
        i4 = 7
        line_advance = 0
        line_advance_sub = 4294967288
        row_advance = 0
#1  0x00007ffff7ae205f in yuv1_render_graph (graphics=0x7ffff7dc0b40 <graphics>) at src/render_yuv1.c:46
        render_data = 0x7fa720
        mode = 0
        pixels = 0x0
        pitch = 0
#2  0x00007ffff7a5c1d6 in update_screen () at src/graphics.c:753
        ticks = 1793
        layer = 4155260051
#3  0x00007ffff7ac41a0 in run_dialog (mzx_world=0x601fc0 <mzx_world>, di=0x7fffffffcf50) at src/window.c:726
        exit = 0
        mouse_press = 0
        mouse_drag_state = 0
        x = 2
        y = 1
        title_x_offset = 35
        current_element = 0xd65360
---Type <return> to continue, or q <return> to quit---
        current_element_num = 0
        vid_usage = '\377' <repeats 164 times>, '\005' <repeats 13 times>, '\377' <repeats 44 times>...
        current_key = 0
        new_key = 0
        i = 7
        conf = 0x603928 <mzx_world+6504>
#4  0x00007ffff7ac8985 in file_manager (mzx_world=0x601fc0 <mzx_world>, wildcards=0x7ffff7d8f1b0 <world_ext>, default_ext=0x0, 
    ret=0x7fffffffdb20 "", title=0x7ffff7b61fac "Load World", dirs_okay=1, allow_new=0, dialog_ext=0x0, num_ext=0, ext_height=0)
    at src/window.c:2706
        current_dir = {d = 0x0, entries = 0, pos = 0}
        file_name = 0xd58ca0 ""
        file_info = {st_dev = 2050, st_ino = 137911, st_nlink = 3, st_mode = 16877, st_uid = 1000, st_gid = 1000, __pad0 = 0, 
          st_rdev = 0, st_size = 4096, st_blksize = 4096, st_blocks = 8, st_atim = {tv_sec = 1499009393, tv_nsec = 996107636}, 
          st_mtim = {tv_sec = 1474220893, tv_nsec = 138893615}, st_ctim = {tv_sec = 1474220893, tv_nsec = 138893615}, 
          __glibc_reserved = {0, 0, 0}}
        current_dir_name = 0xd58eb0 "/home/giorgos"
        current_dir_short = "/home/giorgos\000\000\000\330\307`\000\000\000\000\000p\265`\000\000\000\000\000pT\324\000\000\000\000\000pT\324\000\000\000\000\000\220T\324\000\000\000\000"
        current_dir_length = 13
        return_dir_name = 0xd64da0 "/home/giorgos"
        base_dir_name = 0xd64b90 "/home/giorgos"
        total_filenames_allocated = 32
        total_dirnames_allocated = 32
        file_list = 0xd64fb0
        dir_list = 0xd650c0
        num_files = 0
        num_dirs = 22
        file_name_length = 6
        ext_pos = 6
        chosen_file = 0
        chosen_dir = 0
        dialog_result = 1
        return_value = 1
        di = {x = 2, y = 1, width = 76, height = 23, title = 0x7ffff7b61fac "Load World", num_elements = 7 '\a', 
---Type <return> to continue, or q <return> to quit---
          elements = 0x7fffffffd030, current_element = 0, done = 0, return_value = 0, sfx_test_for_input = 0, pad_space = 0, 
          idle_function = 0x7ffff7ac7822 <file_dialog_function>}
        elements = {0xd65360, 0xd65420, 0xd654e0, 0xd65540, 0xd65590, 0xd655e0, 0xd65630, 0x7ffff7424305 <__libc_writev+117>, 0x0, 
          0xa188cda4fc953e00, 0x7fffffffd210, 0x1, 0x60c7c0, 0x60c7d8, 0x0, 0x0, 0x1, 0x7ffff5a3d4c1, 0x1000100000003, 0x0, 0x0, 
          0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7ffff742c5a9 <recvmsg+57>, 0x0, 0x7ffff5a3f901, 0x0, 0xffffffffffffffff, 0x60d880, 
          0x1000001ed, 0x60d850, 0x60c800, 0x60c834, 0x1000, 0x0, 0x0, 0x7fffffffd150, 0x1, 0x7fffffffd1a0, 0x50, 0x0, 
          0x7ffff5a3ea81, 0x7fffffffd1b8, 0x7ffff5a3ebc5, 0x2, 0xd45490, 0x1ed, 0x7fffffffd1e0, 0x0, 0x5b, 0x1, 0xffffffffffffffff, 
          0x0, 0xa188cda4fc953e00, 0x0, 0x60c7c0, 0x0, 0x0, 0x60c7d8, 0x60c7c0}
        list_length = 17
        last_element = 0
        i = 1
        ret_path = "\000\322\377\377\377\177\000\000@s\311\365\377\177\000\000p\265`\000\000\000\000\000ޅ\311\365\377\177", '\000' <repeats 11 times>, "\323\377\377\377\177", '\000' <repeats 27 times>, ">\225\374\244͈\241\001\000\000\000\000\000\000\000p\265`\000\000\000\000\000\200gj\000\000\000\000\000\340\235\030\364\377\177\000\000\b\000 \006\000\000\000\000\000\257\357\363\377\177\000\000\001\000\000\000\000\000\000\000\314z\375\363\377\177\000\000\001\000\355\001", '\000' <repeats 12 times>, "\001\000\000\000\000\000\000\000\240\364gl\377U\000\000\b\000 \006\000\000\000\000\b\000 \006\000\000\000\000\020\247j\000\000\000\000\000\340\f"...
        ret_file = '\000' <repeats 511 times>
#5  0x00007ffff7ac98bb in choose_file_ch (mzx_world=0x601fc0 <mzx_world>, wildcards=0x7ffff7d8f1b0 <world_ext>, 
    ret=0x7fffffffdb20 "", title=0x7ffff7b61fac "Load World", dirs_okay=1) at src/window.c:3027
No locals.
#6  0x00007ffff7a514e1 in load_world_selection (mzx_world=0x601fc0 <mzx_world>) at src/game.c:418
        world_name = '\000' <repeats 511 times>
#7  0x00007ffff7a5689b in title_screen (mzx_world=0x601fc0 <mzx_world>) at src/game.c:2720
        exit = 0
        confirm_exit = 0
        fadein = 1
        key = 0
        key_status = 0
        fade = 6675024
        file_info = {st_dev = 140737354103464, st_ino = 227499110, st_nlink = 1, st_mode = 21, st_uid = 0, st_gid = 6675024, 
          __pad0 = 0, st_rdev = 140737351931838, st_size = 4096, st_blksize = 140737488346672, st_blocks = 140737347959744, 
          st_atim = {tv_sec = 140737347969416, tv_nsec = 140737488346944}, st_mtim = {tv_sec = 3554673, tv_nsec = 140737488346928}, 
          st_ctim = {tv_sec = 140737351932269, tv_nsec = 0}, __glibc_reserved = {0, 140737354102216, 4196621}}
        src_board = 0x7ffff61a88ec <__pthread_create_2_1+1612>
---Type <return> to continue, or q <return> to quit---
        current_dir = 0xd58a90 "/home/giorgos"
        conf = 0x603928 <mzx_world+6504>
#8  0x00000000004016a6 in main (argc=1, argv=0x7fffffffe178) at src/main.c:166
        err = 1
        mzx_world = {active = 0, name = '\000' <repeats 24 times>, version = 0, status_counters_shown = {'\000' <repeats 14 times>, 
            '\000' <repeats 14 times>, '\000' <repeats 14 times>, '\000' <repeats 14 times>, '\000' <repeats 14 times>, 
            '\000' <repeats 14 times>}, keys = '\000' <repeats 15 times>, blind_dur = 0, firewalker_dur = 0, freeze_time_dur = 0, 
          slow_time_dur = 0, wind_dur = 0, pl_saved_x = {0, 0, 0, 0, 0, 0, 0, 0}, pl_saved_y = {0, 0, 0, 0, 0, 0, 0, 0}, 
          pl_saved_board = {0, 0, 0, 0, 0, 0, 0, 0}, saved_pl_color = 0, was_zapped = 0, under_player_id = 0, 
          under_player_color = 0, under_player_param = 0, mesg_edges = 0, scroll_base_color = 143, scroll_corner_color = 135, 
          scroll_pointer_color = 128, scroll_title_color = 143, scroll_arrow_color = 142, 
          real_mod_playing = '\000' <repeats 511 times>, edge_color = 0, first_board = 0, endgame_board = 0, death_board = 0, 
          endgame_x = 0, endgame_y = 0, game_over_sfx = 0, death_x = 0, death_y = 0, starting_lives = 0, lives_limit = 0, 
          starting_health = 0, health_limit = 0, enemy_hurt_enemy = 0, clear_on_exit = 0, only_from_swap = 0, player_restart_x = 0, 
          player_restart_y = 0, num_counters = 0, num_counters_allocated = 0, counter_list = 0x0, num_strings = 0, 
          num_strings_allocated = 0, string_list = 0x0, num_sprites = 0, num_sprites_allocated = 0, sprite_num = 0, 
          sprite_list = 0x0, active_sprites = 0, sprite_y_order = 0, collision_count = 0, collision_list = 0x0, multiplier = 0, 
          divider = 0, c_divisions = 0, fread_delimiter = 0, fwrite_delimiter = 0, bi_shoot_status = 0, bi_mesg_status = 0, 
          output_file_name = '\000' <repeats 511 times>, output_file = 0x0, input_file_name = '\000' <repeats 511 times>, 
          input_file = 0x0, input_is_dir = false, input_directory = {d = 0x0, entries = 0, pos = 0}, temp_input_pos = 0, 
          temp_output_pos = 0, commands = 0, commands_stop = 0, vlayer_size = 0, vlayer_width = 0, vlayer_height = 0, 
          vlayer_chars = 0x0, vlayer_colors = 0x0, num_boards = 0, num_boards_allocated = 0, board_list = 0x0, current_board = 0x0, 
          current_board_id = 0, temporary_board = 0, global_robot = {world_version = 0, program_source_length = 0, 
            program_source = 0x0, program_bytecode_length = 0, program_bytecode = 0x0, robot_name = '\000' <repeats 14 times>, 
            robot_char = 0 '\000', cur_prog_line = 0, pos_within_line = 0, robot_cycle = 0, cycle_count = 0, 
            bullet_type = 0 '\000', is_locked = 0 '\000', can_lavawalk = 0 '\000', can_goopwalk = 0 '\000', walk_dir = IDLE, 
            last_touch_dir = IDLE, last_shot_dir = IDLE, xpos = 0, ypos = 0, status = 0 '\000', used = 0 '\000', loop_count = 0, 
            num_labels = 0, label_list = 0x0, stack_size = 0, stack_pointer = 0, stack = 0x0, local = {0 <repeats 32 times>}, 
            command_map = 0x0, command_map_length = 0, commands_total = 0, commands_cycle = 0, commands_caught = 0}, 
          custom_sfx_on = 0, custom_sfx = '\000' <repeats 3449 times>, player_x = 0, player_y = 0, target_where = TARGET_NONE, 
          target_board = 0, target_x = 0, target_y = 0, target_id = SPACE, target_color = 0, target_d_id = SPACE, 
          target_d_color = 0, dead = 0, bomb_type = 0, slow_down = 0, key_up_delay = 0, key_down_delay = 0, key_right_delay = 0, 
          key_left_delay = 0, first_prefix = 0, mid_prefix = 0, last_prefix = 0, special_counter_return = FOPEN_NONE, 
          robotic_save_type = SAVE_NONE, robotic_save_path = '\000' <repeats 511 times>, change_game_state = 0, mzx_speed = 4, 
---Type <return> to continue, or q <return> to quit---
          default_speed = 4, lock_speed = 0, conf = {fullscreen = true, resolution_width = -1, resolution_height = -1, 
            window_width = 640, window_height = 350, allow_resize = true, video_output = "overlay1\000\000\000\000\000\000\000", 
            force_bpp = 32, video_ratio = RATIO_MODERN_64_35, gl_filter_method = "linear\000\000\000\000\000\000\000\000\000", 
            gl_scaling_shader = '\000' <repeats 15 times>, gl_vsync = 0, output_frequency = 44100, buffer_size = 4096, 
            oversampling_on = 0, resample_mode = 1, modplug_resample_mode = 2, music_volume = 8, sam_volume = 8, 
            pc_speaker_volume = 8, music_on = 1, pc_speaker_on = 1, startup_path = '\000' <repeats 255 times>,
            startup_file = "caverns.mzx", '\000' <repeats 244 times>, default_save_name = "saved.sav", '\000' <repeats 246 times>,
            mzx_speed = 4, disassemble_extras = 1, disassemble_base = 10, startup_editor = 0, standalone_mode = 0,
            no_titlescreen = 0, mask_midchars = 1, system_mouse = false}, editor_conf = {editor_space_toggles = 0, bedit_hhelp = 0,
            editor_tab_focuses_view = 0, viewport_x = 0, viewport_y = 0, viewport_w = 0, viewport_h = 0, board_width = 0,
            board_height = 0, can_shoot = 0, can_bomb = 0, fire_burns_spaces = 0, fire_burns_fakes = 0, fire_burns_trees = 0,
            fire_burns_brown = 0, fire_burns_forever = 0, forest_to_floor = 0, collect_bombs = 0, restart_if_hurt = 0,
            reset_on_entry = 0, player_locked_ns = 0, player_locked_ew = 0, player_locked_att = 0, time_limit = 0,
            explosions_leave = 0, saving_enabled = 0, overlay_enabled = 0, charset_path = '\000' <repeats 511 times>,
            palette_path = '\000' <repeats 511 times>, pedit_hhelp = 0, undo_history_size = 0, editor_enter_splits = false,
            color_codes = '\000' <repeats 31 times>, color_coding_on = 0, default_invalid_status = 0, redit_hhelp = 0,
            backup_count = 0, backup_interval = 0, backup_name = '\000' <repeats 255 times>,
            backup_ext = '\000' <repeats 255 times>, default_macros = {'\000' <repeats 63 times>, '\000' <repeats 63 times>,
              '\000' <repeats 63 times>, '\000' <repeats 63 times>, '\000' <repeats 63 times>}, num_extended_macros = 0,
            num_macros_allocated = 0, extended_macros = 0x0, num_jump_points = 0, jump_points = 0x0}, editor_conf_backup = {
            editor_space_toggles = 0, bedit_hhelp = 0, editor_tab_focuses_view = 0, viewport_x = 0, viewport_y = 0, viewport_w = 0,
            viewport_h = 0, board_width = 0, board_height = 0, can_shoot = 0, can_bomb = 0, fire_burns_spaces = 0,
            fire_burns_fakes = 0, fire_burns_trees = 0, fire_burns_brown = 0, fire_burns_forever = 0, forest_to_floor = 0,
            collect_bombs = 0, restart_if_hurt = 0, reset_on_entry = 0, player_locked_ns = 0, player_locked_ew = 0,
            player_locked_att = 0, time_limit = 0, explosions_leave = 0, saving_enabled = 0, overlay_enabled = 0,
            charset_path = '\000' <repeats 511 times>, palette_path = '\000' <repeats 511 times>, pedit_hhelp = 0,
            undo_history_size = 0, editor_enter_splits = false, color_codes = '\000' <repeats 31 times>, color_coding_on = 0,
            default_invalid_status = 0, redit_hhelp = 0, backup_count = 0, backup_interval = 0,
            backup_name = '\000' <repeats 255 times>, backup_ext = '\000' <repeats 255 times>, default_macros = {
              '\000' <repeats 63 times>, '\000' <repeats 63 times>, '\000' <repeats 63 times>, '\000' <repeats 63 times>,
              '\000' <repeats 63 times>}, num_extended_macros = 0, num_macros_allocated = 0, extended_macros = 0x0,
            num_jump_points = 0, jump_points = 0x0}, editing = false, raw_world_info = 0x0, raw_world_info_size = 0,
          help_file = 0xd27a80, update_done = 0x0, update_done_size = 0, full_exit = false}
(gdb) q
A debugging session is active.

        Inferior 1 [process 4921] will be killed.

Quit anyway? (y or n) y
 giorgos  ~ 

This post has been edited by Giorgos: 19 July 2017 - 09:26 AM


#7 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 16 March 2019 - 02:55 AM

Revisiting these a little since I understand the rendering architecture a bit better now.

The first crash occurs at this line in render_soft.c:
  Uint32 bpp = screen->format->BitsPerPixel;

While nothing else in these backtraces really looks corrupted, it's possible this is memory corruption. Or, this SDL_Surface has a NULL format pointer. I'm not sure if that's supposed to happen but I'd guess not. We could probably try to detect this before it causes crashes.

The overlay1 crash occurs at this line in render.c:
          *dest = char_colors[(current_char_byte >> i4) & 0x01];

Which suggests the pixels buffer generated was not of sufficient size. This may be an SDL bug, but again, is something we might be able to detect. edit: looked closer and it's actually NULL. Seems like an SDL problem. We get that pointer directly from the SDL_Surface.

My gut feeling here is these were caused by SDL returning a broken SDL_Surface when switching to fullscreen, but this needs more research.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#8 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 16 March 2019 - 05:02 AM

Updating status to: Confirmed
Updating severity to: 5 - Critical

Reproduced the software renderer crash with the latest master in Debian Stretch with SDL 2.0.5. It doesn't happen 100% of the time, but it's a lot more consistent with optimizations enabled. Even when it doesn't crash, a common thing to see is the software renderer displaying partially or entirely outside of the window where it's probably corrupting memory. I can't reproduce the second crash but I expect it's the same bug. The SDL_Surface pointer it's trying to draw with is invalid, which is why the format pointer is NULL (SDL_FreeSurface sets this field to NULL). Further debugging suggests the SDL_Window pointer we're keeping around is also invalid and possibly so is the window ID.

I think we're making too many assumptions about which pointers are going to be valid and for how long here. Instead of keeping pointers around it might be a better idea to try getting fresh pointers from the window ID every frame. I'm also not convinced we should be using an SDL_Renderer at all here since the window surface is not intended to be used with the renderer API.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#9 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 16 March 2019 - 08:56 AM

Quick update: switching SDL_RenderPresent to SDL_UpdateWindowSurface has no performance penalties. This makes sense because SDL_RenderPresent uses that function under the hood when software rendering is forced on. I think the SDL software renderers (software and gp2x) should be switched to use this function instead and stop generating SDL_Renderers. This would be more transparent, the SDL_Renderer is doing absolutely nothing for these renderers, it'd be one less thing that might be going wrong, and the general outside consensus seems to be to never mix direct window surface writes with the SDL_Renderer API anyway.

However, the main problem here still looks like how we're handling the SDL_Surface.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#10 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 16 March 2019 - 09:36 PM

The software renderer crash has been fixed in GIT 3f1a7264. This appears to have been caused by attempting to use an SDL_Renderer in conjunction with the surface from SDL_GetWindowSurface as detailed in the previous post.

I suspect the overlay renderer crash is being caused by the same thing, but I haven't been able to replicate it yet so I'm not 100% sure. The proper fix for the overlay renderer in SDL 2 is to generate our own pixels array/pitch and give this to the SDL_Texture instead of drawing to the window surface. Also, ideally parts of the yuv_render_data struct should be consolidated into the sdl_render_data struct so the same window destruction code can be used for both (this will help with switching renderers at runtime when that feature is implemented).
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#11 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 17 March 2019 - 10:13 AM

Updating status to: Awaiting Feedback

Possible fix for the overlay1 crash in GIT 3b50ed32, though someone who can reproduce the original crash needs to verify that this does fix it and something else didn't already. For what it's worth, I made a Debian Jessie VM and built MZX 2.90b on it and couldn't even replicate it then, so I'm not sure if I'm doing something wrong or if there's another condition that I haven't met.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#12 User is offline  
Lachesis 

  • the pinnacle of human emotion
  • Group: DigiStaff
  • Posts: 3,895
  • Joined: 17-July 04
  • Gender:Female
  • Location:Sealand

Posted 14 April 2019 - 07:53 AM

Updating status to: Fixed
Issue fixed in: 2.92

SDL 2 support for the overlay renderers was replaced altogether with a new renderer that uses the SDL_Renderer API as-intended in GIT ad624dc6. Going to go ahead and mark this one fixed.
"Let's just say I'm a GOOD hacker, AND virus maker. I'm sure you wouldn't like to pay for another PC would you?"

xx̊y (OST) - HELLQUEST (OST) - Zeux I: Labyrinth of Zeux (OST) (DOS OST)
w/ Lancer-X and/or asgromo: Pandora's Gate - Thanatos Insignia - no True(n) - For Elise OST
MegaZeux: Online Help File - Keycode Guide - Joystick Guide - Official GIT Repository

#13 User is offline  
Terryn 

  • ******
  • Group: DigiStaff
  • Posts: 2,960
  • Joined: 12-October 00
  • Gender:Male

Posted 23 July 2019 - 12:36 AM

Moving to: Archived MegaZeux Bugs


Page 1 of 1
  • Cannot start a new Issue
  • Closed Issue This issue is locked

0 User(s) are reading this issue
0 Guests and 0 Anonymous Users


Powered by IP.Tracker 1.3.2 © 2026  IPS, Inc.