View Issue Details

IDProjectCategoryView StatusLast Update
0003098FSSCPgraphicspublic2017-02-08 19:23
Reporterniffiwan Assigned Tom_m  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version3.7.2 RC3 
Fixed in Version3.8 
Summary0003098: ASSERTION FAILED: "!resize" at graphics/gropengltexture.cpp:662
DescriptionThis assertion is being triggered under the following conditions:
1) mediavps_2014 is the active mod (note: mediavps_3.6.12 does not trigger the issue)
2) the active pilot has set their Detail->3D Hardware Textures "dots" to anything except the maximum (i.e. < 4 in range 0-4)
3) enter the techroom (or F3 lab and select something that'll draw a model)
Steps To ReproduceSee above
Additional InformationHere's a stack trace:

0 opengl_create_texture_sub gropengltexture.cpp 662 0x510bc6
1 opengl_create_texture gropengltexture.cpp 1016 0x511808
2 gr_opengl_tcache_set_internal gropengltexture.cpp 1055 0x511917
3 gr_opengl_tcache_set gropengltexture.cpp 1110 0x511ac2
4 opengl_render_pipeline_program gropengltnl.cpp 750 0x5167c6
5 gr_opengl_render_buffer gropengltnl.cpp 1273 0x517d9f
6 gr_render_buffer 2d.h 836 0x6936cf
7 model_render_buffers modelinterp.cpp 4763 0x692902
8 model_really_render modelinterp.cpp 3038 0x68d735
9 model_render modelinterp.cpp 2032 0x68a477
10 techroom_ships_render techmenu.cpp 567 0x601b37
11 techroom_do_frame techmenu.cpp 1360 0x604715
12 game_do_state freespace.cpp 6567 0x418997
13 gameseq_process_events gamesequence.cpp 409 0x4d51c1
14 game_main freespace.cpp 7143 0x4198b1
15 main freespace.cpp 7277 0x419ab1


The texture being processed when the assert occurs is:

        bm_bitmaps[bitmap_handle % 4750] @0xde0fc0 bitmap_entry
            bm @0xde1010 bitmap
            comp_type 13 ubyte
            data_size 786432 int
            dir_type -1 int
            filename "cubemap.dds\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" char [32]
            handle 570726 int
            info @0xde1030 bm_extra_info
            last_used 162902 int
            load_count 1 int
            mem_taken 786432 int
            num_mipmaps 1 int
            palette_checksum 0 uint
            preload_count 0 int
            preloaded 0 ubyte
            ref_count 1 signed char
            signature 10295 uint
            type 4 ubyte
            used_count 1 int
            used_flags 4 ubyte
            used_last_frame 0 ubyte
            used_this_frame 1 ubyte


I think that maybe this condition needs a change to avoid setting resize = 1, maybe adding an exclusion for TCACHE_TYPE_CUBEMAP? Since "opengl_create_texture_sub" thinks that resizing a cube-map is a bad idea and there's no code in the case statement to handle a resize anyway.


int opengl_create_texture(int bitmap_handle, int bitmap_type, tcache_slot_opengl *tslot)
...
    if ( (Detail.hardware_textures < 4) && (bitmap_type != TCACHE_TYPE_AABITMAP) && (bitmap_type != TCACHE_TYPE_INTERFACE)
            && ((bitmap_type != TCACHE_TYPE_COMPRESSED) || ((bitmap_type == TCACHE_TYPE_COMPRESSED) && (max_levels > 1))) )


Or, I suppose there could be something wrong with cubemap.dds but I don't know how to prove or deny that.
TagsNo tags attached.

Issue History

Date Modified Username Field Change
2014-08-18 11:41 niffiwan New Issue
2017-02-08 19:23 Goober5000 Assigned To => m_m
2017-02-08 19:23 Goober5000 Status new => resolved
2017-02-08 19:23 Goober5000 Resolution open => fixed
2017-02-08 19:23 Goober5000 Fixed in Version => 3.8
2017-02-08 19:23 Goober5000 Note Added: 0016859