Crash when loading a map on OpenGL 3.3

Moderator: GZDoom Developers

Forum rules
Please construct and post a simple demo whenever possible for all bug reports. Please provide links to everything.

If you can include a wad demonstrating the problem, please do so. Bug reports that include fully-constructed demos have a much better chance of being investigated in a timely manner than those that don't.

Please make a new topic for every bug. Don't combine multiple bugs into a single topic. Thanks!

Crash when loading a map on OpenGL 3.3

Postby Cacodemon345 » Mon Feb 08, 2021 4:32 am

GZDoom crashes if either the GL_ARB_shader_storage_buffer_object extension isn't available or the OpenGL version available is 3.3 and the uniform block alignment value is less than 16 when loading a map due to a divide-by-zero error. This bug also affects Mesa3D Zink OpenGL driver.

This is the backtrace:
Code: Select allExpand view
#0  0x00005555561b20f4 in FLightBuffer::GetBinding (this=0x55555e63cbf0, index=14, pOffset=0x7fffffffc300, pSize=0x7fffffffc308)
    at /home/caco345/gzdoom/src/common/rendering/hwrenderer/data/hw_lightbuffer.cpp:131
#1  0x00005555561ceab8 in OpenGLRenderer::FGLRenderState::ApplyShader (this=0x555557218360 <OpenGLRenderer::gl_RenderState>)
    at /home/caco345/gzdoom/src/common/rendering/gl/gl_renderstate.cpp:205
#2  0x00005555561cee7a in OpenGLRenderer::FGLRenderState::Apply (this=0x555557218360 <OpenGLRenderer::gl_RenderState>)
    at /home/caco345/gzdoom/src/common/rendering/gl/gl_renderstate.cpp:290
#3  0x00005555561cf2d7 in OpenGLRenderer::FGLRenderState::Draw (this=0x555557218360 <OpenGLRenderer::gl_RenderState>, dt=3, index=1618, count=5, apply=true)
    at /home/caco345/gzdoom/src/common/rendering/gl/gl_renderstate.cpp:410
#4  0x0000555555c88417 in HWWall::RenderWall (this=0x7fff20004180, di=0x55555ec6af40, state=..., textured=1)
    at /home/caco345/gzdoom/src/rendering/hwrenderer/scene/hw_walls.cpp:87
#5  0x0000555555c88d63 in HWWall::RenderTexturedWall (this=0x7fff20004180, di=0x55555ec6af40, state=..., rflags=1)
    at /home/caco345/gzdoom/src/rendering/hwrenderer/scene/hw_walls.cpp:268
#6  0x0000555555c893b0 in HWWall::DrawWall (this=0x7fff20004180, di=0x55555ec6af40, state=..., translucent=false)
    at /home/caco345/gzdoom/src/rendering/hwrenderer/scene/hw_walls.cpp:354
#7  0x0000555555c66c57 in HWDrawList::DrawWalls (this=0x55555ec6af40, di=0x55555ec6af40, state=..., translucent=false)
    at /home/caco345/gzdoom/src/rendering/hwrenderer/scene/hw_drawlist.cpp:844
#8  0x0000555555c60180 in HWDrawInfo::RenderScene (this=0x55555ec6af40, state=...) at /home/caco345/gzdoom/src/rendering/hwrenderer/scene/hw_drawinfo.cpp:494
#9  0x0000555555c60d4a in HWDrawInfo::DrawScene (this=0x55555ec6af40, drawmode=0) at /home/caco345/gzdoom/src/rendering/hwrenderer/scene/hw_drawinfo.cpp:694
#10 0x0000555555c60ee1 in HWDrawInfo::ProcessScene (this=0x55555ec6af40, toscreen=true) at /home/caco345/gzdoom/src/rendering/hwrenderer/scene/hw_drawinfo.cpp:723
#11 0x0000555555f56c7c in RenderViewpoint (mainvp=..., camera=0x55555fbafbd0, bounds=0x0, fov=90, ratio=2.00883007, fovratio=1.33333302, mainview=true, toscreen=true)
    at /home/caco345/gzdoom/src/rendering/hwrenderer/hw_entrypoint.cpp:156
#12 0x0000555555f57c76 in RenderView (player=0x5555570ad540 <players>) at /home/caco345/gzdoom/src/rendering/hwrenderer/hw_entrypoint.cpp:367
#13 0x0000555555d429c9 in operator() (__closure=0x7fffffffc9d0) at /home/caco345/gzdoom/src/d_main.cpp:1033
#14 0x0000555555d4b03c in std::__invoke_impl<void, D_Display()::<lambda()>&>(std::__invoke_other, struct {...} &) (__f=...)
    at /usr/include/c++/10.2.0/bits/invoke.h:60
#15 0x0000555555d4ae40 in std::__invoke_r<void, D_Display()::<lambda()>&>(struct {...} &) (__fn=...) at /usr/include/c++/10.2.0/bits/invoke.h:110
#16 0x0000555555d4ac98 in std::_Function_handler<void(), D_Display()::<lambda()> >::_M_invoke(const std::_Any_data &) (__functor=...)
    at /usr/include/c++/10.2.0/bits/std_function.h:291
#17 0x0000555555a03178 in std::function<void ()>::operator()() const (this=0x7fffffffc9d0) at /usr/include/c++/10.2.0/bits/std_function.h:622
#18 0x0000555555d41de9 in D_Render(std::function<void ()>, bool) (action=..., interpolate=true) at /home/caco345/gzdoom/src/d_main.cpp:485
#19 0x0000555555d42ee9 in D_Display () at /home/caco345/gzdoom/src/d_main.cpp:1031
#20 0x0000555555d43c34 in D_DoomLoop () at /home/caco345/gzdoom/src/d_main.cpp:1292
#21 0x0000555555d4a0d8 in D_DoomMain_Internal () at /home/caco345/gzdoom/src/d_main.cpp:3634
#22 0x0000555555d4a392 in GameMain () at /home/caco345/gzdoom/src/d_main.cpp:3664
#23 0x00005555559fffe4 in main (argc=1, argv=0x7fffffffdda8) at /home/caco345/gzdoom/src/common/platform/posix/sdl/i_main.cpp:194
Cacodemon345
 
Joined: 22 Dec 2017
Discord: Cacodemon345#9151
Github ID: Cacodemon345
Operating System: Other Linux 64-bit
Graphics Processor: ATI/AMD (Modern GZDoom)

Return to OpenGL Renderer Bugs

Who is online

Users browsing this forum: No registered users and 0 guests