[GZDoom 3.5.x]Crash: Abandoned Misery

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
User avatar
Siberian Tiger
Posts: 476
Joined: Fri Jun 12, 2009 11:23 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 10 Pro. 22H2
Graphics Processor: nVidia (Modern GZDoom)
Location: United States
Contact:

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Siberian Tiger »

Siberian Tiger wrote:I will try out LZDoom later tonight.
I was still able to crash with this build, although - I can easily reproduce the crash in the outside region. However, I can still easily get visual oddities.


Thanks to Rachael and Hellser's help, we narrowed it down to a possible issue with a setting in the .ini file. I am unable to quickly find what setting is causing the issue, but hopefully with some help - we can find the issue. I have provided a link to my personal ini file, hopefully we can track down the issue.
Last edited by Siberian Tiger on Tue Oct 23, 2018 3:53 pm, edited 1 time in total.
User avatar
Rachael
Posts: 13532
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Rachael »

So we've nailed it down to the "r_mirror_recursions" cvar. Default is 4, Tiger had it at 10, hence the crash.

I am not sure if this can be fixed on GZDoom's side. At that level, it crashes when drawing a horizon, which GZDoom treats as a portal itself internally - but obviously, it's doing it through a portal or a mirror or a set of such.

I think it would be a bad idea to introduce a hard cap on this variable, as it is quite possible that hardware advancements may make "10" a feasible number. And plus - portals look a lot better with 10 recursions than 4. Is it possible for GZDoom to be able to check for crash conditions for when this CVar is really high? It's a pointer crash when this happens, and I really don't know what's going on there. My only guess is the vertex buffer objects are being overloaded. I don't even know what that means - it's manipulating those that is causing the crash.

But there is a bug here - This is the GL equivalent of Software Rendering's "r_portal_recursions" - a misnomer. Software's is named correctly, GL calls them all mirrors in this CVar. Perhaps a CVar rename is in order?
User avatar
Rachael
Posts: 13532
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Rachael »

Also, I'd like to call for the elimination of the "sv_portal_recursions" CVar. It's redundant and unneeded, and if someone's portal rendering is truly slowing down a net game, I sincerely doubt they're even going to think of this CVar. It has no effect in GL, anyhow.
User avatar
drfrag
Vintage GZDoom Developer
Posts: 3141
Joined: Fri Apr 23, 2004 3:51 am
Location: Spain
Contact:

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by drfrag »

Really? I thought it was some recent addition since it's in the legacy builds and not in old versions.
I've managed to reproduce the crash using his ini, it's very hard to get it using the vintage build on my machine. BTW it's extremely slow here, well below 1 fps and i also get graphic glitches. ESDF with inverted mouse, i had to unbind 'q' for quitting.
In case it's useful this is with the modern build (wall of text):

Code: Select all

 Exception thrown: write access violation

 	gzdoom.exe!GLHorizonPortal::GLHorizonPortal(FPortalSceneState * s, GLHorizonInfo * pt, FRenderViewpoint & vp, bool local) Line 352	C++
>	gzdoom.exe!FDrawInfo::AddPortal(GLWall * wall, int ptype) Line 353	C++
 	gzdoom.exe!GLWall::DoHorizon(HWDrawInfo * di, seg_t * seg, sector_t * fs, vertex_t * v1, vertex_t * v2) Line 507	C++
 	gzdoom.exe!GLWall::Process(HWDrawInfo * di, seg_t * seg, sector_t * frontsector, sector_t * backsector) Line 1756	C++
 	gzdoom.exe!HWDrawInfo::AddLine(seg_t * seg, bool portalclip) Line 178	C++
 	gzdoom.exe!HWDrawInfo::AddLines(subsector_t * sub, sector_t * sector) Line 304	C++
 	gzdoom.exe!HWDrawInfo::DoSubsector(subsector_t * sub) Line 490	C++
 	gzdoom.exe!HWDrawInfo::RenderBSPNode(void * node) Line 596	C++
 	gzdoom.exe!HWDrawInfo::RenderBSPNode(void * node) Line 587	C++
 	gzdoom.exe!HWDrawInfo::RenderBSPNode(void * node) Line 587	C++
 	gzdoom.exe!HWDrawInfo::RenderBSPNode(void * node) Line 587	C++
 	gzdoom.exe!HWDrawInfo::RenderBSPNode(void * node) Line 587	C++
 	gzdoom.exe!HWDrawInfo::RenderBSPNode(void * node) Line 587	C++
 	gzdoom.exe!HWDrawInfo::RenderBSPNode(void * node) Line 587	C++
 	gzdoom.exe!HWDrawInfo::RenderBSPNode(void * node) Line 587	C++
 	gzdoom.exe!HWDrawInfo::RenderBSPNode(void * node) Line 587	C++
 	gzdoom.exe!FDrawInfo::CreateScene() Line 118	C++
 	gzdoom.exe!FDrawInfo::DrawScene(int drawmode) Line 312	C++
 	gzdoom.exe!GLScenePortal::DrawContents(HWDrawInfo * di) Line 96	C++
 	[Inline Frame] gzdoom.exe!IPortal::RenderPortal(bool) Line 72	C++
 	gzdoom.exe!FPortalSceneState::EndFrame(HWDrawInfo * di) Line 98	C++
 	gzdoom.exe!FDrawInfo::DrawScene(int drawmode) Line 336	C++
 	gzdoom.exe!GLScenePortal::DrawContents(HWDrawInfo * di) Line 96	C++
 	[Inline Frame] gzdoom.exe!IPortal::RenderPortal(bool) Line 72	C++
 	gzdoom.exe!FPortalSceneState::EndFrame(HWDrawInfo * di) Line 98	C++
 	gzdoom.exe!FDrawInfo::DrawScene(int drawmode) Line 336	C++
 	gzdoom.exe!GLScenePortal::DrawContents(HWDrawInfo * di) Line 96	C++
 	[Inline Frame] gzdoom.exe!IPortal::RenderPortal(bool) Line 72	C++
 	gzdoom.exe!FPortalSceneState::EndFrame(HWDrawInfo * di) Line 98	C++
 	gzdoom.exe!FDrawInfo::DrawScene(int drawmode) Line 336	C++
 	gzdoom.exe!GLScenePortal::DrawContents(HWDrawInfo * di) Line 96	C++
 	[Inline Frame] gzdoom.exe!IPortal::RenderPortal(bool) Line 72	C++
 	gzdoom.exe!FPortalSceneState::EndFrame(HWDrawInfo * di) Line 98	C++
 	gzdoom.exe!FDrawInfo::DrawScene(int drawmode) Line 336	C++
 	gzdoom.exe!GLScenePortal::DrawContents(HWDrawInfo * di) Line 96	C++
 	[Inline Frame] gzdoom.exe!IPortal::RenderPortal(bool) Line 72	C++
 	gzdoom.exe!FPortalSceneState::EndFrame(HWDrawInfo * di) Line 98	C++
 	gzdoom.exe!FDrawInfo::DrawScene(int drawmode) Line 336	C++
 	gzdoom.exe!FDrawInfo::ProcessScene(bool toscreen) Line 407	C++
 	gzdoom.exe!FGLRenderer::RenderViewpoint(FRenderViewpoint & mainvp, AActor * camera, IntRect * bounds, float fov, float ratio, float fovratio, bool mainview, bool toscreen) Line 484	C++
 	gzdoom.exe!FGLRenderer::RenderView(player_t * player) Line 250	C++
 	gzdoom.exe!D_Display() Line 759	C++
 	gzdoom.exe!D_DoomLoop() Line 1009	C++
 	gzdoom.exe!D_DoomMain() Line 2683	C++
 	gzdoom.exe!DoMain(HINSTANCE__ * hInstance) Line 1070	C++
 	gzdoom.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * nothing, char * cmdline, int nCmdShow) Line 1342	C++

+		ptr	0x09f46000 {x=??? z=??? y=??? ...}	FFlatVertex *
		vy	3200.00000	const float
		x	9728.00000	float
		yy	-16384	int

	-		&pstate	0x04830a78 {recursion=5 MirrorFlag=0 PlaneMirrorFlag=4 ...}	FPortalSceneState *
		recursion	5	int
		MirrorFlag	0	int
		PlaneMirrorFlag	4	int
		renderdepth	6	int
		PlaneMirrorMode	0	int
		inskybox	true	bool
-		UniqueSkies	{Array={Array=0x00000000 {???} Count=0 Most=0 } }	UniqueList<GLSkyInfo>
-		Array	{Array=0x00000000 {???} Count=0 Most=0 }	TArray<GLSkyInfo *,GLSkyInfo *>
+		Array	0x00000000 {???}	GLSkyInfo * *
		Count	0	unsigned int
		Most	0	unsigned int
-		UniqueHorizons	{Array={Array=0x0c9c6540 {0x0ca4aa40 {plane={texture={texnum=3082 } plane={normal={X=0.00000000000000000 ...} ...} ...} ...}} ...} }	UniqueList<GLHorizonInfo>
-		Array	{Array=0x0c9c6540 {0x0ca4aa40 {plane={texture={texnum=3082 } plane={normal={X=0.00000000000000000 Y=...} ...} ...} ...}} ...}	TArray<GLHorizonInfo *,GLHorizonInfo *>
+		Array	0x0c9c6540 {0x0ca4aa40 {plane={texture={texnum=3082 } plane={normal={X=0.00000000000000000 Y=0.00000000000000000 ...} ...} ...} ...}}	GLHorizonInfo * *
		Count	2	unsigned int
		Most	16	unsigned int
-		UniquePlaneMirrors	{Array={Array=0x0c9c7d70 {0x03e3aa40 {normal={X=0.00000000000000000 Y=0.00000000000000000 Z=-1.0000000000000000 } ...}} ...} }	UniqueList<secplane_t>
-		Array	{Array=0x0c9c7d70 {0x03e3aa40 {normal={X=0.00000000000000000 Y=0.00000000000000000 Z=-1.0000000000000000 } ...}} ...}	TArray<secplane_t *,secplane_t *>
+		Array	0x0c9c7d70 {0x03e3aa40 {normal={X=0.00000000000000000 Y=0.00000000000000000 Z=-1.0000000000000000 } ...}}	secplane_t * *
		Count	3	unsigned int
		Most	16	unsigned int
		skyboxrecursion	1	int
-		Viewpoint	{player=0x00000000 <NULL> Pos={X=1536.0000000000000 Y=3200.0000000000000 Z=4.0000000000000000 } ActorPos=...}	FRenderViewpoint
+		player	0x00000000 <NULL>	player_t *
-		Pos	{X=1536.0000000000000 Y=3200.0000000000000 Z=4.0000000000000000 }	TVector3<double>
		X	1536.0000000000000	double
		Y	3200.0000000000000	double
		Z	4.0000000000000000	double
-		ActorPos	{X=1536.0000000000000 Y=3200.0000000000000 Z=0.00000000000000000 }	TVector3<double>
		X	1536.0000000000000	double
		Y	3200.0000000000000	double
		Z	0.00000000000000000	double
-		Angles	{Pitch={Degrees=0.00000000000000000 } Yaw={Degrees=-135.00000000000000 } Roll={Degrees=0.00000000000000000 } ...}	TRotator<double>
+		Pitch	{Degrees=0.00000000000000000 }	TAngle<double>
+		Yaw	{Degrees=-135.00000000000000 }	TAngle<double>
+		Roll	{Degrees=0.00000000000000000 }	TAngle<double>
+		CamRoll	{Degrees=3.1579138315067568e-303 }	TAngle<double>
-		HWAngles	{Pitch={Degrees=0.000000000 } Yaw={Degrees=405.000000 } Roll={Degrees=0.000000000 } ...}	TRotator<float>
+		Pitch	{Degrees=0.000000000 }	TAngle<float>
+		Yaw	{Degrees=405.000000 }	TAngle<float>
+		Roll	{Degrees=0.000000000 }	TAngle<float>
+		CamRoll	{Degrees=0.000000000 }	TAngle<float>
-		ViewVector	{X=-0.70710676908493042 Y=-0.70710676908493042 }	TVector2<double>
		X	-0.70710676908493042	double
		Y	-0.70710676908493042	double
-		ViewActor	0x0c9a0e30 {snext=0x00000000 <NULL> sprev=0x00000000 {???} __Pos={X=1536.0000000000000 Y=3200.0000000000000 ...} ...}	AActor *
+		DThinker	{NextThinker=0x0c9a0098 {snext=0x00000000 <NULL> sprev=0x00000000 {???} __Pos={X=-1279.0000000000000 ...} ...} ...}	DThinker
+		snext	0x00000000 <NULL>	AActor *
+		sprev	0x00000000 {???}	AActor * *
+		__Pos	{X=1536.0000000000000 Y=3200.0000000000000 Z=0.00000000000000000 }	TVector3<double>
+		SpriteAngle	{Degrees=0.00000000000000000 }	TAngle<double>
+		SpriteRotation	{Degrees=0.00000000000000000 }	TAngle<double>
+		Angles	{Pitch={Degrees=0.00000000000000000 } Yaw={Degrees=0.00000000000000000 } Roll={Degrees=0.00000000000000000 } ...}	TRotator<double>
+		Scale	{X=1.0000000000000000 Y=1.0000000000000000 }	TVector2<double>
		Alpha	1.0000000000000000	double
		sprite	0	int
		frame	0 '\0'	unsigned char
		effects	0 '\0'	unsigned char
		fountaincolor	0 '\0'	unsigned char
+		RenderStyle	{BlendOp=1 '\x1' SrcAlpha=2 '\x2' DestAlpha=3 '\x3' ...}	FRenderStyle
+		picnum	{texnum=-1 }	FTextureID
		fillcolor	4143972352	unsigned int
		Translation	0	unsigned int
		RenderRequired	0	unsigned int
		RenderHidden	0	unsigned int
+		renderflags	{Value=0 }	TFlags<enum ActorRenderFlag,unsigned int>
+		flags	{Value=536 }	TFlags<enum ActorFlag,unsigned int>
+		flags2	{Value=0 }	TFlags<enum ActorFlag2,unsigned int>
+		flags3	{Value=64 }	TFlags<enum ActorFlag3,unsigned int>
+		flags4	{Value=0 }	TFlags<enum ActorFlag4,unsigned int>
+		flags5	{Value=0 }	TFlags<enum ActorFlag5,unsigned int>
+		flags6	{Value=0 }	TFlags<enum ActorFlag6,unsigned int>
+		flags7	{Value=0 }	TFlags<enum ActorFlag7,unsigned int>
+		flags8	{Value=2 }	TFlags<enum ActorFlag8,unsigned int>
		Floorclip	0.00000000000000000	double
		radius	20.000000000000000	double
		Height	16.000000000000000	double
+		VisibleStartAngle	{Degrees=0.00000000000000000 }	TAngle<double>
+		VisibleStartPitch	{Degrees=0.00000000000000000 }	TAngle<double>
+		VisibleEndAngle	{Degrees=0.00000000000000000 }	TAngle<double>
+		VisibleEndPitch	{Degrees=0.00000000000000000 }	TAngle<double>
+		OldRenderPos	{X=3.4028234663852886e+38 Y=3.4028234663852886e+38 Z=3.4028234663852886e+38 }	TVector3<double>
+		Vel	{X=0.00000000000000000 Y=0.00000000000000000 Z=0.00000000000000000 }	TVector3<double>
		Speed	0.00000000000000000	double
		FloatSpeed	4.0000000000000000	double
+		BlockNode	0x00000000 <NULL>	FBlockNode *
-		Sector	0x0efa23a8 {planes=0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 baseyOffs=...} ...}, ...} ...}	sector_t *
+		planes	0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 baseyOffs=0.00000000000000000 ...} ...}, ...}	sector_t::splane[2]
+		floorplane	{normal={X=0.00000000000000000 Y=0.00000000000000000 Z=1.0000000000000000 } D=-0.00000000000000000 negiC=...}	secplane_t
+		ceilingplane	{normal={X=0.00000000000000000 Y=0.00000000000000000 Z=-1.0000000000000000 } D=256.00000000000000 negiC=...}	secplane_t
+		SpecialColors	0x0efa24b8 {{b=255 'ÿ' g=255 'ÿ' r=255 'ÿ' ...}, {b=255 'ÿ' g=255 'ÿ' r=255 'ÿ' ...}, {b=255 'ÿ' g=255 'ÿ' ...}, ...}	PalEntry[5]
+		Colormap	{LightColor={b=255 'ÿ' g=255 'ÿ' r=255 'ÿ' ...} FadeColor={b=0 '\0' g=0 '\0' r=0 '\0' ...} Desaturation=...}	FColormap
+		SoundTarget	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
		special	0	short
		lightlevel	168	short
		seqType	-1	short
		sky	0	int
+		SeqName	{Index=0 }	FName
-		centerspot	{X=1536.0000000000000 Y=3200.0000000000000 }	TVector2<double>
		X	1536.0000000000000	double
		Y	3200.0000000000000	double
		validcount	75950	int
+		thinglist	0x00000000 <NULL>	AActor *
		friction	0.90625000000000000	double
		movefactor	0.031250000000000000	double
+		terrainnum	0x0efa2518 {-1, -1}	int[2]
+		floordata	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<DSectorEffect *>
+		ceilingdata	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<DSectorEffect *>
+		lightingdata	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<DSectorEffect *>
-		interpolations	0x0efa252c {{pp=0x00000000 <NULL> o=0x00000000 <NULL> }, {pp=0x00000000 <NULL> o=0x00000000 <NULL> }, ...}	TObjPtr<DInterpolation *>[4]
+		[0]	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<DInterpolation *>
+		[1]	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<DInterpolation *>
+		[2]	{pp=0x04a5f618 {sector=0x0efa23a8 {planes=0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 ...} ...}, ...} ...} ...} ...}	TObjPtr<DInterpolation *>
+		[3]	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<DInterpolation *>
		prevsec	-1	int
		nextsec	-1	int
		soundtraversed	0 '\0'	unsigned char
		stairlock	0 '\0'	char
-		Lines	{Array=0x04a4db0c {0x0e0c6b18 {v1=0x0e1512d0 {p={X=1532.8940000000000 Y=3211.5909999999999 } viewangle=...} ...}} ...}	TStaticPointedArray<line_t *>
+		Array	0x04a4db0c {0x0e0c6b18 {v1=0x0e1512d0 {p={X=1532.8940000000000 Y=3211.5909999999999 } viewangle=1300661747 ...} ...}}	line_t * *
		Count	24	unsigned int
+		heightsec	0x00000000 <NULL>	sector_t *
+		lighthead	0x00000000 <NULL>	FLightNode *
		bottommap	0	unsigned int
		midmap	0	unsigned int
		topmap	0	unsigned int
+		touching_thinglist	0x00000000 <NULL>	msecnode_t *
+		sectorportal_thinglist	0x00000000 <NULL>	msecnode_t *
+		touching_renderthings	0x00000000 <NULL>	msecnode_t *
		gravity	1.0000000000000000	double
+		damagetype	{Index=0 }	FName
		damageamount	0	int
		damageinterval	0	short
		leakydamage	0	short
		ZoneNumber	654	unsigned short
		MoreFlags	128	unsigned short
		Flags	0	unsigned int
+		SecActTarget	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
+		Portals	0x0efa2590 {0, 0}	unsigned int[2]
		PortalGroup	0	int
		sectornum	4789	int
-		e	0x0d4be578 {FakeFloor={Sectors={Array=0x00000000 {???} Count=0 Most=0 } } Midtex={Floor={AttachedSectors=...} ...} ...}	extsector_t *
+		FakeFloor	{Sectors={Array=0x00000000 {???} Count=0 Most=0 } }	extsector_t::fakefloor
+		Midtex	{Floor={AttachedSectors={Array=0x00000000 {???} Count=0 Most=0 } AttachedLines={Array=0x00000000 {???} ...} } ...}	extsector_t::midtex
+		Linked	{Floor={Sectors={Array=0x00000000 <NULL> Count=0 Most=0 } } Ceiling={Sectors={Array=0x00000000 <NULL> ...} } }	extsector_t::linked
+		XFloor	{ffloors={...} lightlist={Array=0x0c881408 {plane={normal={X=0.00000000000000000 Y=0.00000000000000000 ...} ...} ...} ...} ...}	extsector_t::xfloor
+		vertices	{Array=0x0ca49930 {0x0e1512d0 {p={X=1532.8940000000000 Y=3211.5909999999999 } viewangle=1300661747 angletime=...}} ...}	TArray<vertex_t *,vertex_t *>
+		reflect	0x0efa25a4 {0.000000000, 0.000000000}	float[2]
		transdoor	false	bool
		subsectorcount	1	int
		transdoorheight	0.00000000000000000	double
+		subsectors	0x0c9bb538 {0x0c7cf888 {sector=0x0efa23a8 {planes=0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=...} ...}, ...} ...} ...}}	subsector_t * *
+		portals	0x0efa25c4 {0x00000000 <NULL>, 0x00000000 <NULL>}	FSectorPortalGroup *[2]
+		vboindex	0x0efa25cc {40484, 81863, 0, 0}	int[4]
+		iboindex	0x0efa25dc {89022, 179472, 0, 0}	int[4]
+		vboheight	0x0efa25f0 {0.00000000000000000, 256.00000000000000}	double[2]
+		vbocount	0x0efa2600 {24, 24}	int[2]
		ibocount	66	int
-		subsector	0x0c7cf888 {sector=0x0efa23a8 {planes=0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 ...} ...}, ...} ...} ...}	subsector_t *
-		sector	0x0efa23a8 {planes=0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 baseyOffs=...} ...}, ...} ...}	sector_t *
+		planes	0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 baseyOffs=0.00000000000000000 ...} ...}, ...}	sector_t::splane[2]
+		floorplane	{normal={X=0.00000000000000000 Y=0.00000000000000000 Z=1.0000000000000000 } D=-0.00000000000000000 negiC=...}	secplane_t
+		ceilingplane	{normal={X=0.00000000000000000 Y=0.00000000000000000 Z=-1.0000000000000000 } D=256.00000000000000 negiC=...}	secplane_t
+		SpecialColors	0x0efa24b8 {{b=255 'ÿ' g=255 'ÿ' r=255 'ÿ' ...}, {b=255 'ÿ' g=255 'ÿ' r=255 'ÿ' ...}, {b=255 'ÿ' g=255 'ÿ' ...}, ...}	PalEntry[5]
+		Colormap	{LightColor={b=255 'ÿ' g=255 'ÿ' r=255 'ÿ' ...} FadeColor={b=0 '\0' g=0 '\0' r=0 '\0' ...} Desaturation=...}	FColormap
+		SoundTarget	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
		special	0	short
		lightlevel	168	short
		seqType	-1	short
		sky	0	int
+		SeqName	{Index=0 }	FName
+		centerspot	{X=1536.0000000000000 Y=3200.0000000000000 }	TVector2<double>
		validcount	75950	int
+		thinglist	0x00000000 <NULL>	AActor *
		friction	0.90625000000000000	double
		movefactor	0.031250000000000000	double
+		terrainnum	0x0efa2518 {-1, -1}	int[2]
+		floordata	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<DSectorEffect *>
+		ceilingdata	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<DSectorEffect *>
+		lightingdata	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<DSectorEffect *>
+		interpolations	0x0efa252c {{pp=0x00000000 <NULL> o=0x00000000 <NULL> }, {pp=0x00000000 <NULL> o=0x00000000 <NULL> }, ...}	TObjPtr<DInterpolation *>[4]
		prevsec	-1	int
		nextsec	-1	int
		soundtraversed	0 '\0'	unsigned char
		stairlock	0 '\0'	char
-		Lines	{Array=0x04a4db0c {0x0e0c6b18 {v1=0x0e1512d0 {p={X=1532.8940000000000 Y=3211.5909999999999 } viewangle=...} ...}} ...}	TStaticPointedArray<line_t *>
+		Array	0x04a4db0c {0x0e0c6b18 {v1=0x0e1512d0 {p={X=1532.8940000000000 Y=3211.5909999999999 } viewangle=1300661747 ...} ...}}	line_t * *
		Count	24	unsigned int
+		heightsec	0x00000000 <NULL>	sector_t *
+		lighthead	0x00000000 <NULL>	FLightNode *
		bottommap	0	unsigned int
		midmap	0	unsigned int
		topmap	0	unsigned int
+		touching_thinglist	0x00000000 <NULL>	msecnode_t *
+		sectorportal_thinglist	0x00000000 <NULL>	msecnode_t *
+		touching_renderthings	0x00000000 <NULL>	msecnode_t *
		gravity	1.0000000000000000	double
+		damagetype	{Index=0 }	FName
		damageamount	0	int
		damageinterval	0	short
		leakydamage	0	short
		ZoneNumber	654	unsigned short
		MoreFlags	128	unsigned short
		Flags	0	unsigned int
+		SecActTarget	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
+		Portals	0x0efa2590 {0, 0}	unsigned int[2]
		PortalGroup	0	int
		sectornum	4789	int
+		e	0x0d4be578 {FakeFloor={Sectors={Array=0x00000000 {???} Count=0 Most=0 } } Midtex={Floor={AttachedSectors=...} ...} ...}	extsector_t *
+		reflect	0x0efa25a4 {0.000000000, 0.000000000}	float[2]
		transdoor	false	bool
		subsectorcount	1	int
		transdoorheight	0.00000000000000000	double
+		subsectors	0x0c9bb538 {0x0c7cf888 {sector=0x0efa23a8 {planes=0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=...} ...}, ...} ...} ...}}	subsector_t * *
+		portals	0x0efa25c4 {0x00000000 <NULL>, 0x00000000 <NULL>}	FSectorPortalGroup *[2]
+		vboindex	0x0efa25cc {40484, 81863, 0, 0}	int[4]
+		iboindex	0x0efa25dc {89022, 179472, 0, 0}	int[4]
+		vboheight	0x0efa25f0 {0.00000000000000000, 256.00000000000000}	double[2]
+		vbocount	0x0efa2600 {24, 24}	int[2]
		ibocount	66	int
+		polys	0x00000000 <NULL>	FPolyNode *
+		BSP	0x00000000 <NULL>	FMiniBSP *
+		firstline	0x0e275950 {v1=0x0e1512d0 {p={X=1532.8940000000000 Y=3211.5909999999999 } viewangle=1300661747 angletime=...} ...}	seg_t *
+		render_sector	0x0efa23a8 {planes=0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 baseyOffs=...} ...}, ...} ...}	sector_t *
		numlines	24	unsigned int
		flags	2	unsigned short
		sectorindex	0	unsigned short
+		lighthead	0x00000000 <NULL>	FLightNode *
		validcount	0	int
		mapsection	156	short
		hacked	0 '\0'	char
+		portalcoverage	0x0c7cf8b0 {{subsectors=0x00000000 {???} sscount=0 }, {subsectors=0x00000000 {???} sscount=0 }}	FPortalCoverage[2]
		floorz	-0.00000000000000000	double
		ceilingz	256.00000000000000	double
		dropoffz	-0.00000000000000000	double
+		floorsector	0x0efa23a8 {planes=0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 baseyOffs=...} ...}, ...} ...}	sector_t *
+		floorpic	{texnum=3296 }	FTextureID
		floorterrain	0	int
+		ceilingsector	0x0efa23a8 {planes=0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 baseyOffs=...} ...}, ...} ...}	sector_t *
+		ceilingpic	{texnum=3082 }	FTextureID
		renderradius	0.00000000000000000	double
		projectilepassheight	0.00000000000000000	double
		CameraHeight	-2147483648.0000000	double
		CameraFOV	90.000000000000000	double
		RadiusDamageFactor	1.0000000000000000	double
		SelfDamageFactor	1.0000000000000000	double
		StealthAlpha	0.00000000000000000	double
		WoundHealth	6	int
		tics	-1	int
+		state	0x048336b0 {NextState=0x00000000 <NULL> ActionFunc=0x00000000 <NULL> sprite=0 ...}	FState *
		DamageVal	0	int
+		DamageFunc	0x00000000 <NULL>	VMFunction *
		projectileKickback	0	int
		VisibleToTeam	0	unsigned int
		special1	0	int
		special2	0	int
		specialf1	0.00000000000000000	double
		specialf2	0.00000000000000000	double
		weaponspecial	0	int
		health	1000	int
		movedir	0 '\0'	unsigned char
		visdir	0 '\0'	char
		movecount	0	short
		strafecount	0	short
+		target	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
+		lastenemy	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
+		LastHeard	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
		reactiontime	8	int
		threshold	0	int
		DefThreshold	100	int
+		player	0x00000000 <NULL>	player_t *
+		LastLookActor	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
+		SpawnPoint	{X=1536.0000000000000 Y=3200.0000000000000 Z=0.00000000000000000 }	TVector3<double>
		SpawnAngle	0	unsigned short
		StartHealth	0	int
		WeaveIndexXY	0 '\0'	unsigned char
		WeaveIndexZ	16 '\x10'	unsigned char
		skillrespawncount	0	int
		TIDtoHate	0	int
+		Species	{Index=0 }	FName
+		alternative	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
+		tracer	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
+		master	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
		tid	0	int
		special	0	int
+		args	0x0c9a109c {0, 0, 0, 0, 0}	int[5]
		accuracy	0	int
		stamina	0	int
+		inext	0x00000000 <NULL>	AActor *
+		iprev	0x00000000 {???}	AActor * *
+		goal	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
		waterlevel	0	int
		boomwaterlevel	3 '\x3'	unsigned char
		MinMissileChance	200 'È'	unsigned char
		LastLookPlayerNumber	0 '\0'	char
+		BounceFlags	{Value=0 }	TFlags<enum ActorBounceFlag,unsigned short>
		SpawnFlags	1792	unsigned int
		meleerange	44.000000000000000	double
		meleethreshold	0.00000000000000000	double
		maxtargetrange	0.00000000000000000	double
		bouncefactor	0.69999999999999996	double
		wallbouncefactor	0.75000000000000000	double
		bouncecount	-1	int
		Gravity	1.0000000000000000	double
		Friction	1.0000000000000000	double
		FastChaseStrafeCount	0	int
		pushfactor	0.25000000000000000	double
		lastpush	0	int
		activationtype	0	int
		lastbump	0	int
		Score	0	int
+		Tag	0x00000000 <NULL>	FString *
		DesignatedTeam	255	int
		friendlyseeblocks	10	int
+		BlockingMobj	0x00000000 <NULL>	AActor *
+		BlockingLine	0x00000000 <NULL>	line_t *
		PoisonDamage	0	int
+		PoisonDamageType	{Index=0 }	FName
		PoisonDuration	0	int
		PoisonPeriod	0	int
		PoisonDamageReceived	0	int
+		PoisonDamageTypeReceived	{Index=0 }	FName
		PoisonDurationReceived	0	int
		PoisonPeriodReceived	0	int
+		Poisoner	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AActor *>
+		touching_sectorlist	0x00000000 <NULL>	msecnode_t *
+		touching_sectorportallist	0x00000000 <NULL>	msecnode_t *
+		touching_lineportallist	0x00000000 <NULL>	portnode_t *
+		touching_rendersectors	0x00000000 <NULL>	msecnode_t *
		validcount	0	int
+		Inventory	{pp=0x00000000 <NULL> o=0x00000000 <NULL> }	TObjPtr<AInventory *>
		InventoryID	0	unsigned int
		smokecounter	0 '\0'	unsigned char
		FloatBobPhase	199 'Ç'	unsigned char
		FloatBobStrength	1.0000000000000000	double
		FriendPlayer	0 '\0'	unsigned char
+		BloodColor	{b=0 '\0' g=0 '\0' r=0 '\0' ...}	PalEntry
		BloodTranslation	0	unsigned int
+		SeeSound	{...}	FSoundIDNoInit
+		AttackSound	{...}	FSoundIDNoInit
+		PainSound	{...}	FSoundIDNoInit
+		DeathSound	{...}	FSoundIDNoInit
+		ActiveSound	{...}	FSoundIDNoInit
+		UseSound	{...}	FSoundIDNoInit
+		BounceSound	{...}	FSoundIDNoInit
+		WallBounceSound	{...}	FSoundIDNoInit
+		CrushPainSound	{...}	FSoundIDNoInit
		MaxDropOffHeight	24.000000000000000	double
		MaxStepHeight	24.000000000000000	double
		Mass	100	int
		PainChance	0	short
		PainThreshold	0	int
+		DamageType	{Index=0 }	FName
+		DamageTypeReceived	{Index=0 }	FName
		DamageFactor	1.0000000000000000	double
		DamageMultiply	1.0000000000000000	double
+		PainType	{Index=0 }	FName
+		DeathType	{Index=0 }	FName
+		TeleFogSourceType	0x0358f3e8 {...}	PClassActor *
+		TeleFogDestType	0x0358f3e8 {...}	PClassActor *
		RipperLevel	0	int
		RipLevelMin	0	int
		RipLevelMax	0	int
+		SpawnState	0x048336b0 {NextState=0x00000000 <NULL> ActionFunc=0x00000000 <NULL> sprite=0 ...}	FState *
+		SeeState	0x00000000 <NULL>	FState *
+		MeleeState	0x00000000 <NULL>	FState *
+		MissileState	0x00000000 <NULL>	FState *
		ConversationRoot	-1	int
+		Conversation	0x00000000 <NULL>	FStrifeDialogueNode *
+		DecalGenerator	0x00000000 <NULL>	FDecalBase *
+		Prev	{X=1536.0000000000000 Y=3200.0000000000000 Z=0.00000000000000000 }	TVector3<double>
+		PrevAngles	{Pitch={Degrees=0.00000000000000000 } Yaw={Degrees=0.00000000000000000 } Roll={Degrees=0.00000000000000000 } ...}	TRotator<double>
		PrevPortalGroup	0	int
+		AttachedLights	{Array=0x00000000 <NULL> Count=0 Most=0 }	TArray<TObjPtr<AActor *>,TObjPtr<AActor *> >
		hasmodel	false	bool
+		Path	0x03e902e0 {{X=870.00000000000000 Y=436.00000000000000 Z=294.91428132313956 }, {X=870.00000000000000 ...}}	TVector3<double>[2]
		Cos	-0.70710676908493042	double
		Sin	-0.70710676908493042	double
		TanCos	-0.75424722035725911	double
		TanSin	-0.75424722035725911	double
+		camera	0x049d79b0 {crouchsprite=3 MaxHealth=0 BonusHealth=0 ...}	AActor * {APlayerPawn}
+		sector	0x0efa23a8 {planes=0x0efa23a8 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 baseyOffs=...} ...}, ...} ...}	sector_t *
+		FieldOfView	{Degrees=90.000000000000000 }	TAngle<double>
		TicFrac	0.21653502175197467	double
		FrameTime	0	unsigned int
		extralight	0	int
		showviewer	true	bool
+		portal	0x00000000 <NULL>	IPortal *
-		this	0x03e90238 {drawlists=0x03e907a0 {{walls={Array=0x0c612158 {0x14a5d8b0 {vertexes=0x14a5d8b0 {0x0e112c60 {...}, ...} ...}} ...} ...}, ...} ...}	FDrawInfo *
+		HWDrawInfo	{outer=0x03e8fa70 {drawlists=0x03e8ffd8 {{walls={Array=0x0c610b50 {0x21511db0 {vertexes=0x21511db0 {...} ...}} ...} ...}, ...} ...} ...}	HWDrawInfo
-		drawlists	0x03e907a0 {{walls={Array=0x0c612158 {0x14a5d8b0 {vertexes=0x14a5d8b0 {0x0e112c60 {p={X=832.00000000000000 ...} ...}, ...} ...}} ...} ...}, ...}	HWDrawList[8]
+		[0]	{walls={Array=0x0c612158 {0x14a5d8b0 {vertexes=0x14a5d8b0 {0x0e112c60 {p={X=832.00000000000000 Y=352.00000000000000 } ...}, ...} ...}} ...} ...}	HWDrawList
+		[1]	{walls={Array=0x00000000 {???} Count=0 Most=0 } flats={Array=0x0cf1bb28 {0x21627470 {sector=0x0efa23a8 {...} ...}} ...} ...}	HWDrawList
+		[2]	{walls={Array=0x049527b0 {0x14a5e370 {vertexes=0x14a5e370 {0x0e1130e0 {p={X=705.00000000000000 Y=360.00000000000000 } ...}, ...} ...}} ...} ...}	HWDrawList
+		[3]	{walls={Array=0x00000000 {???} Count=0 Most=0 } flats={Array=0x00000000 {???} Count=0 Most=0 } sprites=...}	HWDrawList
+		[4]	{walls={Array=0x00000000 {???} Count=0 Most=0 } flats={Array=0x00000000 {???} Count=0 Most=0 } sprites=...}	HWDrawList
+		[5]	{walls={Array=0x00000000 {???} Count=0 Most=0 } flats={Array=0x00000000 {???} Count=0 Most=0 } sprites=...}	HWDrawList
+		[6]	{walls={Array=0x0ca4ae50 {0x21627250 {vertexes=0x21627250 {0x0e1513f0 {p={X=1524.4090000000001 Y=3196.8939999999998 } ...}, ...} ...}} ...} ...}	HWDrawList
+		[7]	{walls={Array=0x00000000 {???} Count=0 Most=0 } flats={Array=0x04951ec8 {0x14a6fe10 {sector=0x0ee23ef8 {...} ...}} ...} ...}	HWDrawList
-		hudsprites	{Array=0x115dc2c8 {owner=0x049d79b0 {crouchsprite=3 MaxHealth=0 BonusHealth=0 ...} weapon=0x0c552428 {...} ...} ...}	TArray<HUDSprite,HUDSprite>
+		Array	0x115dc2c8 {owner=0x049d79b0 {crouchsprite=3 MaxHealth=0 BonusHealth=0 ...} weapon=0x0c552428 {x=0.00000000000000000 ...} ...}	HUDSprite *
		Count	0	unsigned int
		Most	16	unsigned int
+		decals	0x03e909ac {{Array=0x00000000 {???} Count=0 Most=0 }, {Array=0x00000000 {???} Count=0 Most=0 }}	TArray<GLDecal *,GLDecal *>[2]
		vpIndex	348	int
-		wall	0x00bce848 {vertexes=0x00bce848 {0x0e153310 {p={X=1120.0000000000000 Y=2784.0000000000000 } viewangle=...}, ...} ...}	GLWall *
+		vertexes	0x00bce848 {0x0e153310 {p={X=1120.0000000000000 Y=2784.0000000000000 } viewangle=2684354560 angletime=...}, ...}	vertex_t *[2]
+		gltexture	0x00000000 <NULL>	FMaterial *
+		lightlist	0x00000000 <NULL>	TArray<lightlist_t,lightlist_t> *
+		glseg	{x1=1120.00000 x2=1120.00000 y1=2784.00000 ...}	GLSeg
+		ztop	0x00bce870 {4.00000000, 4.00000000}	float[2]
+		zbottom	0x00bce878 {0.000000000, 0.000000000}	float[2]
+		tcs	0x00bce880 {{u=0.000000000 v=3.75000000 }, {u=0.000000000 v=0.000000000 }, {u=0.000000000 v=0.000000000 }, ...}	texcoord[4]
		alpha	1.00000000	float
+		Colormap	{LightColor={b=255 'ÿ' g=255 'ÿ' r=255 'ÿ' ...} FadeColor={b=0 '\0' g=0 '\0' r=0 '\0' ...} Desaturation=...}	FColormap
		RenderStyle	STYLE_Normal (1)	ERenderStyle
		ViewDistance	0.000000000	float
		lightlevel	168	int
		type	0 '\0'	unsigned char
		flags	0 '\0'	unsigned char
		rellight	16	short
+		topglowcolor	0x00bce8c0 {0.000000000, 3.75000000, 0.000000000, 0.000000000}	float[4]
+		bottomglowcolor	0x00bce8d0 {-1.68183188e+24, 1.67094076, 4.42243817e-07, 0.000000000}	float[4]
		dynlightindex	-1	int
+		secportal	0x0ca4acb0 {mType=3296 mFlags=0 mPartner=0 ...}	FSectorPortal *
+		sky	0x0ca4acb0 {x_offset=0x0ca4acb0 {4.619e-42#DEN, 0.000000000} y_offset=0.000000000 texture=0x0ca4acbc {...} ...}	GLSkyInfo *
+		horizon	0x0ca4acb0 {plane={texture={texnum=3296 } plane={normal={X=0.00000000000000000 Y=0.00000000000000000 ...} ...} ...} ...}	GLHorizonInfo *
+		portal	0x0ca4acb0 {mDisplacement={X=1.628440368693e-320#DEN Y=0.00000000000000000 } plane=0 }	FSectorPortalGroup *
+		planemirror	0x0ca4acb0 {normal={X=1.628440368693e-320#DEN Y=0.00000000000000000 Z=0.00000000000000000 } D=1.0000000000000000 ...}	secplane_t *
+		lineportal	0x0ca4acb0 {v1=0x00000ce0 {p={X=??? Y=??? } viewangle=??? angletime=??? ...} v2=0x00000000 <NULL> lines=...}	FLinePortalSpan *
+		topplane	{normal={X=0.00000000000000000 Y=0.00000000000000000 Z=-1.0000000000000000 } D=256.00000000000000 negiC=...}	secplane_t
+		bottomplane	{normal={X=0.00000000000000000 Y=0.00000000000000000 Z=1.0000000000000000 } D=-0.00000000000000000 negiC=...}	secplane_t
+		zceil	0x00bce938 {256.000000, 256.000000}	float[2]
+		zfloor	0x00bce940 {-0.000000000, -0.000000000}	float[2]
		vertindex	1999336	unsigned int
		vertcount	12	unsigned int
+		seg	0x0e274090 {v1=0x0e16ba00 {p={X=1120.0000000000000 Y=3008.0000000000000 } viewangle=2486560013 angletime=...} ...}	seg_t *
+		sub	0x0c7cecb8 {sector=0x0efc3770 {planes=0x0efc3770 {{xform={xOffs=0.00000000000000000 yOffs=0.00000000000000000 ...} ...}, ...} ...} ...}	subsector_t *
-		wall->horizon	0x0ca4acb0 {plane={texture={texnum=3296 } plane={normal={X=0.00000000000000000 Y=0.00000000000000000 ...} ...} ...} ...}	GLHorizonInfo *
+		plane	{texture={texnum=3296 } plane={normal={X=0.00000000000000000 Y=0.00000000000000000 Z=1.0000000000000000 } ...} ...}	GLSectorPlane
		lightlevel	168	int
+		colormap	{LightColor={b=255 'ÿ' g=255 'ÿ' r=255 'ÿ' ...} FadeColor={b=0 '\0' g=0 '\0' r=0 '\0' ...} Desaturation=...}	FColormap
+		specialcolor	{b=255 'ÿ' g=255 'ÿ' r=255 'ÿ' ...}	PalEntry

User avatar
Rachael
Posts: 13532
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Rachael »

That's about where I crashed, too. It's manipulating VBO's on the horizon.
User avatar
Rachael
Posts: 13532
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Rachael »

It appears that having any horizon through a nested line portal is enough to cause a crash. This example instantly crashes GZDoom without any fuss. This should save from having to download a larger level and going to a specific point to trigger the crash.

This will crash regardless of the r_mirror_recursions setting.
Attachments
portal-crash-test.wad
(1.32 KiB) Downloaded 29 times
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Graf Zahl »

That is most likely something different. The portals fail to initialize if a map only has one subsector. After fixing that this map works as it should.
User avatar
Enjay
 
 
Posts: 26517
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Enjay »

Seems like it. If Ioad Rachael's map I get a crash immediately after starting the game. If I place a one additional sector in the map under the player start spot, the crash goes away.

Image
User avatar
Rachael
Posts: 13532
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Rachael »

Ah. So much for that, then.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Graf Zahl »

The crash was caused by too many dynamic lights and a non-functional attempt at resizing the buffer when it was full. I just removed the resizing and doubled the buffer's size.
This map spiked at 35000 processed lights in a single scene!
User avatar
drfrag
Vintage GZDoom Developer
Posts: 3141
Joined: Fri Apr 23, 2004 3:51 am
Location: Spain
Contact:

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by drfrag »

I see you have doubled maxNumberOfLights to 80000 but in the vintage build INITIAL_BUFFER_SIZE was 160000 and "This means 80000 lights per frame". It still crashed but far less often.
I'm thinking on increasing the buffer to 240000. :?:
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Graf Zahl »

The comment in the old build was not correct. It was initially 80000 lights until dpJudas doubled the space requirements for spot lights. After that it got bumped down to 40000 lights because the buffer was not adjusted for the change.
User avatar
drfrag
Vintage GZDoom Developer
Posts: 3141
Joined: Fri Apr 23, 2004 3:51 am
Location: Spain
Contact:

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by drfrag »

I've increased the initial buffer to 320000. https://github.com/drfrag666/gzdoom/com ... 85d2ebfb57

I tried to remove the buffer reallocation stuff inside that if changing this line https://github.com/drfrag666/gzdoom/blo ... r.cpp#L125 to if (mIndex + totalsize > mBufferSize) but it crashed, seems the new buffer is being used anyway.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49056
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: [GZDoom 3.5.x]Crash: Abandoned Misery

Post by Graf Zahl »

I have to check that myself eventually. I don't think this can be safely reallocated without whacking the render state.
320000 is also what I use now for its size, and when it's full stop adding lights.
Post Reply

Return to “Closed Bugs [GZDoom]”