View Issue Details

IDProjectCategoryView StatusLast Update
0000480Gameplay + OpenGL[All Projects] Bugpublic2017-03-28 14:18
Assigned To 
Status resolvedResolutionfixed 
Summary0000480: Assertion failure in dynamic lights code
DescriptionTrying to load Enjay's latest masterpiece Waterlab GZD using the latest commit I encountered the following assertion failure:
Assertion failed: (mBufferPointer != NULL), function UploadLights, file src/gl/dynlights/gl_lightbuffer.cpp, 
line 159.
FLightBuffer::UploadLights(this=0x00006000002741c0, data=0x00000001010604b8) + 932 at gl_lightbuffer.cpp:159

GLFlat::SetupSubsectorLights(this=0x00000001224bea00, pass=0, sub=0x0000000125040f20, dli=0x00007fff5fbfc83c) 
+ 577 at gl_flats.cpp:151
GLFlat::DrawSubsectors(this=0x00000001224bea00, pass=4, processlights=true, istrans=true) + 259 at gl_flats.cpp:269

GLFlat::Draw(this=0x00000001224bea00, pass=4, trans=true) + 1357 at gl_flats.cpp:427
GLDrawList::DoDraw(this=0x0000000120404788, pass=4, i=17, trans=true) + 192 at gl_drawinfo.cpp:733
GLDrawList::DoDrawSorted(this=0x0000000120404788, head=0x0000618000245640) + 349 at gl_drawinfo.cpp:792

GLDrawList::DrawSorted(this=0x0000000120404788) + 234 at gl_drawinfo.cpp:840
GLSceneDrawer::RenderTranslucent(this=0x00007fff5fbfcd00) + 207 at gl_scene.cpp:449
GLSceneDrawer::DrawScene(this=0x00007fff5fbfcd00, drawmode=1) + 485 at gl_scene.cpp:518
GLSceneDrawer::ProcessScene(this=0x00007fff5fbfcd00, toscreen=false) + 286 at gl_scene.cpp:722
GLSceneDrawer::RenderViewpoint(this=0x00007fff5fbfcd00, camera=0x0000000120f32a00, bounds=0x00007fff5fbfcd60, 
fov=105, ratio=1.5, fovratio=1.5, mainview=false, toscreen=false) + 1521 at gl_scene.cpp:838
FGLInterface::RenderTextureView(this=0x0000610000005690, tex=0x00006080001c2ee0, Viewpoint=0x0000000120f32a00, 
FOV=105) + 376 at gl_scene.cpp:1120
FCanvasTextureInfo::UpdateAll() + 161 at r_utility.cpp:997
FGLRenderer::RenderView(this=0x000000010269fb40, player=0x0000000100f5ab40) + 271 at gl_scene.cpp:897

FGLInterface::RenderView(this=0x0000610000005690, player=0x0000000100f5ab40) + 35 at gl_scene.cpp:1071

D_Display() + 1609 at d_main.cpp:782
D_DoomLoop() + 663 at d_main.cpp:1036
D_DoomMain() + 6840 at d_main.cpp:2705

The issue is related to deferred lighting as I'm using OpenGL 4.1 core profile on macOS.
Commenting that assert() "fixes" the problem as there is corresponding check after it.

Is this assertion a leftover from those times when there was no support for core profile below OpenGL 4.4?
Or is it designates some not yet implemented feature for deferred lighting render path?
TagsNo tags attached.



Graf Zahl

Graf Zahl

2017-03-28 14:18

administrator   ~0001130

Actually, this is an true error case, the translucent flat drawer was using a bad parameter

Issue History

Date Modified Username Field Change
2017-03-25 08:47 _mental_ New Issue
2017-03-25 08:48 _mental_ Description Updated View Revisions
2017-03-25 08:49 _mental_ Description Updated View Revisions
2017-03-28 14:18 Graf Zahl Note Added: 0001130
2017-03-28 14:18 Graf Zahl Status new => resolved
2017-03-28 14:18 Graf Zahl Resolution open => fixed