View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002865 | FSSCP | graphics | public | 2013-05-07 01:52 | 2019-12-19 06:17 |
Reporter | Yarn | Assigned To | Echelon9 | ||
Priority | normal | Severity | crash | Reproducibility | always |
Status | closed | Resolution | unable to reproduce | ||
Platform | x64 | OS | Windows 7 | ||
Product Version | 3.6.19 | ||||
Summary | 0002865: "Assert: num == bm_bitmaps[n].handle" in FSPort SM3-03a when -fb_explosions is enabled | ||||
Description | In FSPort's SM3-03a ("A Failure to Communicate"), when the Aquilae Installation explodes shortly after the mission begins, the game crashes with "Assert: num == bm_bitmaps[n].handle" if all of the following conditions are met: 1. A debug build is being used. 2. The MediaVPs are enabled. 3. Both -3dshockwaves (Enable 3D shockwaves) and -fb_explosions (Enable Framebuffer Shockwaves) are enabled. 4. The player is looking at the explosion. I have confirmed this in versions 3.6.14 and later (I couldn't get FSPort 3.4 to work in earlier builds). The build's SSE/AVX version makes no difference. | ||||
Additional Information | Here is the full error message: Assert: num == bm_bitmaps[n].handle File: bmpman.cpp Line: 961 ntdll.dll! NtWaitForSingleObject + 21 bytes kernel32.dll! WaitForSingleObjectEx + 67 bytes kernel32.dll! WaitForSingleObject + 18 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! SCP_DumpStack + 247 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! WinAssert + 176 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! bm_is_compressed + 125 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! bm_get_tcache_type + 18 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! gr_opengl_tcache_set + 54 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! gr_opengl_render_effect + 342 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! geometry_batcher::render + 112 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! batch_render_distortion_map_bitmaps + 283 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! game_render_frame + 970 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! game_frame + 697 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! game_do_frame + 210 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! game_do_state + 358 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! gameseq_process_events + 211 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! game_main + 730 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! WinMain + 265 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! invoke_main + 30 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! __scrt_common_main_seh + 346 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! __scrt_common_main + 13 bytes fs2_open_3_7_5_AVX_20160616_b2fc335-DEBUG.exe! WinMainCRTStartup + 8 bytes kernel32.dll! BaseThreadInitThunk + 18 bytes ntdll.dll! RtlInitializeExceptionChain + 99 bytes ntdll.dll! RtlInitializeExceptionChain + 54 bytes | ||||
Tags | No tags attached. | ||||
|
I'm seeing the Assert() under that repro case as per below, although I had to set -no_glsl due to Mantis 2861: ASSERTION FAILED: "Scene_depth_texture != 0" at code/graphics/gropengldraw.cpp:1468 0 libsystem_kernel.dylib 0x00007fff9318f212 __pthread_kill + 10 1 libsystem_c.dylib 0x00007fff92c86b54 pthread_kill + 90 2 libsystem_c.dylib 0x00007fff92ccadce abort + 143 3 FS2_Open (debug) 0x000000010261e64a WinAssert(char*, char*, int) + 938 4 FS2_Open (debug) 0x000000010037e221 gr_opengl_render_effect(int, vertex*, float*, unsigned int) + 1777 (gropengldraw.cpp:1468) 5 FS2_Open (debug) 0x000000010099d775 geometry_batcher::render(int, float) + 1765 (grbatch.cpp:527) 6 FS2_Open (debug) 0x00000001009a9222 batch_render_distortion_map_bitmaps(bool) + 1458 (grbatch.cpp:917) 7 FS2_Open (debug) 0x00000001002f1063 game_render_frame(camid) + 7731 (freespace.cpp:3777) 8 FS2_Open (debug) 0x00000001002fa562 game_frame(bool) + 6450 (freespace.cpp:4538) 9 FS2_Open (debug) 0x00000001002ff62c game_do_frame() + 604 (freespace.cpp:4917) 10 FS2_Open (debug) 0x000000010030b167 game_do_state(int) + 871 (freespace.cpp:6594) 11 FS2_Open (debug) 0x00000001009146b9 gameseq_process_events() + 1273 (gamesequence.cpp:405) 12 FS2_Open (debug) 0x0000000100311a07 game_main(char*) + 2071 (freespace.cpp:7160) 13 FS2_Open (debug) 0x00000001003130a5 SDL_main + 3781 (freespace.cpp:7294) |
|
Cannot reproduce on a recent build with recent MediaVPs (and the same launcher flags). Both assertions that were reached in previous reports no longer exist in the code base. My guess is that what was causing the bug was eliminated when we upgraded OpenGL versions and it now handles whatever odd situation this was more robustly. |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-05-07 01:52 | Yarn | New Issue | |
2013-05-07 12:07 | Echelon9 | Note Added: 0015039 | |
2015-06-26 11:28 | Echelon9 | Assigned To | => Echelon9 |
2015-06-26 11:28 | Echelon9 | Status | new => assigned |
2016-06-17 21:14 | Yarn | Description Updated | |
2016-06-17 21:14 | Yarn | Additional Information Updated | |
2019-12-19 06:17 | FSCyborg | Status | assigned => closed |
2019-12-19 06:17 | FSCyborg | Resolution | open => unable to reproduce |
2019-12-19 06:17 | FSCyborg | Note Added: 0016949 |