2020-07-07 22:01 EDT


View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002865FSSCPgraphicspublic2019-12-19 01:17
ReporterYarn 
Assigned ToEchelon9 
PrioritynormalSeveritycrashReproducibilityalways
StatusclosedResolutionunable to reproduce 
Platformx64OSWindows 7OS Version
Product Version3.6.19 
Target VersionFixed in Version 
Summary0002865: "Assert: num == bm_bitmaps[n].handle" in FSPort SM3-03a when -fb_explosions is enabled
DescriptionIn 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 InformationHere 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
TagsNo tags attached.
Attached Files

-Relationships
+Relationships

-Notes

~0015039

Echelon9 (developer)

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)

~0016949

FSCyborg (developer)

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.
+Notes

-Issue History
Date Modified Username Field Change
2013-05-06 21:52 Yarn New Issue
2013-05-07 08:07 Echelon9 Note Added: 0015039
2015-06-26 07:28 Echelon9 Assigned To => Echelon9
2015-06-26 07:28 Echelon9 Status new => assigned
2016-06-17 17:14 Yarn Description Updated View Revisions
2016-06-17 17:14 Yarn Additional Information Updated View Revisions
2019-12-19 01:17 FSCyborg Status assigned => closed
2019-12-19 01:17 FSCyborg Resolution open => unable to reproduce
2019-12-19 01:17 FSCyborg Note Added: 0016949
+Issue History