Opened 7 years ago

Closed 6 years ago

Last modified 6 years ago

#4734 closed defect (needsinfo)

Crash if GLSL is enabled

Reported by: kf30 Owned by:
Priority: Must Have Milestone:
Component: Core engine Keywords:
Cc: Patch:

Description

Much to our regret we must report the program has encountered an error.

Please let us know at http://trac.wildfiregames.com/ and attach the crashlog.txt and crashlog.dmp files.

Details: unhandled exception (Access violation writing 0x0446D904)

Location: unknown:0 (?)

Call stack:

(error while dumping stack: No stack frames found) errno = 34 (?) OS error = 487 (Attempt to access invalid address.)

Attachments (2)

crashlog.txt (17.0 KB ) - added by kf30 7 years ago.
crashlog.dmp (74.4 KB ) - added by kf30 7 years ago.

Download all attachments as: .zip

Change History (19)

by kf30, 7 years ago

Attachment: crashlog.txt added

by kf30, 7 years ago

Attachment: crashlog.dmp added

comment:1 by elexis, 7 years ago

When does that happen?

By any chance when doing Alt+Tab?

When finishing the loading screen? If so try disabling all graphics effects.

comment:2 by Stan, 7 years ago

I'll have a look

comment:3 by Stan, 7 years ago

>	ig4icd32.dll!1569b6c9()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for ig4icd32.dll]	
 	pyrogenesis.exe!CShaderProgram::Uniform(CStrIntern id={...}, const CVector3D & v={...}) Line 745	C++
 	pyrogenesis.exe!TerrainRenderer::PrepareShader(const std::shared_ptr<CShaderProgram> & shader, ShadowMap * shadow=0x1811acc0) Line 475	C++
 	pyrogenesis.exe!CPatchRData::RenderBlends(const std::vector<CPatchRData *,std::allocator<CPatchRData *> > & patches, const CShaderDefines & context, ShadowMap * shadow=0x1811acc0, bool isDummyShader=false, const std::shared_ptr<CShaderProgram> & dummy={...}) Line 1014	C++
 	pyrogenesis.exe!TerrainRenderer::RenderTerrainShader(const CShaderDefines & context={...}, int cullGroup=-1010818308, ShadowMap * shadow=0x1811acc0) Line 511	C++
 	pyrogenesis.exe!CRenderer::RenderPatches(const CShaderDefines & context={...}, int cullGroup=3) Line 942	C++
 	pyrogenesis.exe!CRenderer::RenderRefractions(const CShaderDefines & context={...}, const CBoundingBoxAligned & scissor={...}) Line 1305	C++
 	pyrogenesis.exe!CRenderer::RenderSubmissions(const CBoundingBoxAligned & waterScissor={...}) Line 1517	C++
 	pyrogenesis.exe!CRenderer::RenderScene(Scene & scene) Line 1885	C++
 	pyrogenesis.exe!CGameView::Render() Line 489	C++
 	pyrogenesis.exe!Render() Line 228	C++
 	pyrogenesis.exe!Frame() Line 372	C++
 	pyrogenesis.exe!RunGameOrAtlas(int argc=1, const char * * argv=0x00190008) Line 581	C++
 	pyrogenesis.exe!SDL_main(int argc=1, char * * argv=0x00190008) Line 623	C++
 	pyrogenesis.exe!main_utf8(int argc=1, char * * argv=0x00190008) Line 126	C
 	pyrogenesis.exe!wmain(int argc=1, unsigned short * * wargv=0x00761170, unsigned short * wenvp=0x00762a38) Line 151	C
 	pyrogenesis.exe!__tmainCRTStartup() Line 623	C
 	pyrogenesis.exe!CallStartupWithinTryBlock() Line 364	C++
 	kernel32.dll!@BaseThreadInitThunk@12
()	Unknown
 	ntdll.dll!___RtlUserThreadStart@8
()	Unknown
 	ntdll.dll!__RtlUserThreadStart@8
()	Unknown

Looking at the log I'd suggest you disable GLSL and postprocessing.

comment:4 by elexis, 7 years ago

Milestone: BacklogAlpha 23
Priority: Should HaveRelease Blocker
Summary: unhandled exceptionCrash if GLSL is enabled

Assuming this is the same GLSL issue everyone else has, tagging this as a release blocker (that might be set back to must-have).

Another report of that here https://wildfiregames.com/forum/index.php?/topic/22804-game-crash/

comment:5 by elexis, 7 years ago

In #4739:

do this: http://www.techadvisor.co.uk/how-to/pc-components/how-set-default-graphics-card-3612668/ after doing that i'm now able to alt+tab as i like, so at least tell them a guide about that until you fix the intel 4k+ problem

comment:6 by Stan, 7 years ago

Call stack reported here https://wildfiregames.com/forum/index.php?/topic/22804-game-crash/&page=2

> pyrogenesis.exe! PerformErrorReaction (ErrorReactionInternal, er=ERI_BREAK, unsigned, int, flags=0, volatile, int * suppress=0x00000000)line 426 C++           
Pyrogenesis.exe! Debug_DisplayError (const wchar_t * description=0x0138e158 unsigned, int flags=0, void * context=0x0138ed18, const * wchar_t lastFuncToSkip=0x011dc150 wchar_t * pathname=0x0138e670 int, const, line=0, const, char * func= 0x0138d150 volatile * suppress=0x00000000, int) for 483 C++           Pyrogenesis.exe! Wseh_ExceptionFilter (_EXCEPTION_POINTERS * ep=0x0138e7e4) line 289 C++           
Pyrogenesis.exe! CallStartupWithinTryBlock () line 365 C++           
[external code]           
[the following frames may be incorrect and / or missing, no symbols loaded for ntdll.dll]                                 
Pyrogenesis.exe... CShaderProgram:: Uniform (CStrIntern, id={,}, float, v0=-1.#QNAN000, float, v1=4.764e-044#DEN, float, v2=3.44938300e-010, float, v3=1.01771369e-010) line 755 C++           
Pyrogenesis.exe! CShaderProgram:: Uniform (CStrIntern id={...}, unsigned, int, count=34, const, CMatrix3D * v=0x2fbda1c0) line 765 C++           
Pyrogenesis.exe! InstancingModelRenderer:: RenderModel (const std:: shared_ptr<CShaderProgram> & shader={...}, int, __formal=1, CModel * model=0x2f7a0ec0, CModelRData * __formal=0x306e2ba0) line 376 C++          
Pyrogenesis.exe! ShaderModelRenderer:: Render (const std:: shared_ptr<RenderModifier> & modifier={...}, const, CShaderDefines & context={...}, int, cullGroup=1, int, flags=1) line 765 C++           
Pyrogenesis.exe! CRendererInternals:: CallModelRenderers (const, CShaderDefines & context={,}, int, cullGroup=1, int, flags=1) line 379 C++           
Pyrogenesis.exe! CRenderer:: RenderShadowMap (const CShaderDefines & context={...}) line 910 C++           
Pyrogenesis.exe! CRenderer:: RenderSubmissions (const CBoundingBoxAligned & waterScissor={...}) line 1501 C++          
Pyrogenesis.exe! CRenderer:: RenderScene (Scene & scene={...}) line 1885 C++          
Pyrogenesis.exe! CGameView:: Render () line 489 C++           
Pyrogenesis.exe! Render () line 228 C++           
Pyrogenesis.exe! CGame:: ReallyStartGame () line 322 C++           
Pyrogenesis.exe! ProgressiveLoad () line 233 C++           
Pyrogenesis.exe! Frame () line 322 C++           
Pyrogenesis.exe! RunGameOrAtlas (int, argc=1, const, char * * argv=0x03370008) line 581 C++           
Pyrogenesis.exe! SDL_main (int, argc=1, char * * argv=0x03370008) line 623 C++           
Pyrogenesis.exe! Main_utf8 (int, argc=1, char * * argv=0x03370008) line 126 C++           
Pyrogenesis.exe! Wmain (int, argc=1, unsigned, short * *, wargv=0x015d5730, unsigned, short * wenvp=0x015e71f8) line 151 C++           
[external code]           
Pyrogenesis.exe! CallStartupWithinTryBlock () line 364 C++           
[external code] 

comment:7 by elexis, 7 years ago

Another: #4819

comment:8 by gameboy, 7 years ago

@elexis We need Yves Updates the new features of OpenGL in the 0AD code, let it support OpenGL4.0 or 4.4.

comment:9 by Stan, 6 years ago

Crash from #4861 Works better when vs wants to work.

>	ig8icd32.dll!6ffd8301()	Unknown	No symbols loaded.
 	[Frames below may be incorrect and/or missing, no symbols loaded for ig8icd32.dll]		Annotated Frame
 	pyrogenesis.exe!CShaderProgramGLSL::Link() Line 380	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderProgramGLSL::Reload() Line 465	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderManager::NewProgram(const char * name, const CShaderDefines & baseDefines, std::shared_ptr<CShaderProgram> & program) Line 271	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderManager::LoadProgram(const char * name, const CShaderDefines & defines) Line 68	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderManager::NewEffect(const char * name, const CShaderDefines & baseDefines, std::shared_ptr<CShaderTechnique> & tech) Line 545	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderManager::LoadEffect(CStrIntern name, const CShaderDefines & defines1, const CShaderDefines & defines2) Line 369	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderManager::LoadEffect(CStrIntern name) Line 351	C++	Symbols loaded.
 	pyrogenesis.exe!OverlayRenderer::RenderForegroundOverlays(const CCamera & viewCamera) Line 605	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderSubmissions(const CBoundingBoxAligned & waterScissor) Line 1608	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderScene(Scene & scene) Line 1885	C++	Symbols loaded.
 	pyrogenesis.exe!CGameView::Render() Line 489	C++	Symbols loaded.
 	pyrogenesis.exe!Render() Line 228	C++	Symbols loaded.
 	pyrogenesis.exe!CGame::ReallyStartGame() Line 322	C++	Symbols loaded.
 	pyrogenesis.exe!ProgressiveLoad() Line 233	C++	Symbols loaded.
 	pyrogenesis.exe!Frame() Line 322	C++	Symbols loaded.
 	pyrogenesis.exe!RunGameOrAtlas(int argc, const char * * argv) Line 581	C++	Symbols loaded.
 	pyrogenesis.exe!SDL_main(int argc, char * * argv) Line 623	C++	Symbols loaded.
 	pyrogenesis.exe!main_utf8(int argc, char * * argv) Line 126	C	Symbols loaded.
 	pyrogenesis.exe!wmain(int argc, unsigned short * * wargv, unsigned short * wenvp) Line 151	C	Symbols loaded.
 	[External Code]		Annotated Frame
 	pyrogenesis.exe!CallStartupWithinTryBlock() Line 364	C++	Symbols loaded.
 	[External Code]		Annotated Frame

comment:10 by Stan, 6 years ago

Call stack from #4953

>	ig9icd32.dll!62a48b21()	Unknown	No symbols loaded.
 	[Frames below may be incorrect and/or missing, no symbols loaded for ig9icd32.dll]		Annotated Frame
 	pyrogenesis.exe!CShaderProgramGLSL::Link() Line 380	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderProgramGLSL::Reload() Line 465	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderManager::NewProgram(const char * name, const CShaderDefines & baseDefines, std::shared_ptr<CShaderProgram> & program) Line 271	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderManager::LoadProgram(const char * name, const CShaderDefines & defines) Line 68	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderManager::NewEffect(const char * name, const CShaderDefines & baseDefines, std::shared_ptr<CShaderTechnique> & tech) Line 545	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderManager::LoadEffect(CStrIntern name, const CShaderDefines & defines1, const CShaderDefines & defines2) Line 369	C++	Symbols loaded.
 	pyrogenesis.exe!CShaderManager::LoadEffect(CStrIntern name) Line 351	C++	Symbols loaded.
 	pyrogenesis.exe!SkyManager::RenderSky() Line 262	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderSubmissions(const CBoundingBoxAligned & waterScissor) Line 1526	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderScene(Scene & scene) Line 1885	C++	Symbols loaded.
 	pyrogenesis.exe!CGameView::Render() Line 489	C++	Symbols loaded.
 	pyrogenesis.exe!Render() Line 228	C++	Symbols loaded.
 	pyrogenesis.exe!CGame::ReallyStartGame() Line 322	C++	Symbols loaded.
 	pyrogenesis.exe!ProgressiveLoad() Line 233	C++	Symbols loaded.
 	pyrogenesis.exe!Frame() Line 322	C++	Symbols loaded.
 	pyrogenesis.exe!RunGameOrAtlas(int argc, const char * * argv) Line 581	C++	Symbols loaded.
 	pyrogenesis.exe!SDL_main(int argc, char * * argv) Line 623	C++	Symbols loaded.
 	pyrogenesis.exe!main_utf8(int argc, char * * argv) Line 126	C	Symbols loaded.
 	pyrogenesis.exe!wmain(int argc, unsigned short * * wargv, unsigned short * wenvp) Line 151	C	Symbols loaded.
 	[External Code]		Annotated Frame
 	pyrogenesis.exe!CallStartupWithinTryBlock() Line 364	C++	Symbols loaded.
 	[External Code]		Annotated Frame

comment:11 by Imarok, 6 years ago

Is it correct it only (or mostly) affects intel graphics? If so, a quick and dirty solution could be disabling glsl for intel graphics by default.

comment:12 by Stan, 6 years ago

Another call stack, slightly different, but same driver as before. (I made a dll bank to get hexa code). Maybe someone from Intel could tell us more, but I don't have that kind of friends.

I do know some people that work at Intel though :)

>	ig8icd32.dll!635fcaa1()	Unknown	No symbols loaded.
 	[Frames below may be incorrect and/or missing, no symbols loaded for ig8icd32.dll]		Annotated Frame
 	ig8icd32.dll!635ff083()	Unknown	No symbols loaded.
 	ig8icd32.dll!635f7b6a()	Unknown	No symbols loaded.
 	ig8icd32.dll!637b424b()	Unknown	No symbols loaded.
 	kernel32.dll!_GlobalFreeStub@4
()	Unknown	Non-user code. Symbols loaded.
 	ig8icd32.dll!639f1d8b()	Unknown	No symbols loaded.
 	ig8icd32.dll!6360279e()	Unknown	No symbols loaded.
 	ig8icd32.dll!635f623e()	Unknown	No symbols loaded.
 	ig8icd32.dll!637afc1d()	Unknown	No symbols loaded.
 	[Inline Frame] msvcr120.dll!_heap_alloc(unsigned int) Line 57	C	Non-user code. Symbols loaded.
 	msvcr120.dll!malloc(unsigned int size=0x2a1b24a0) Line 92	C	Non-user code. Symbols loaded.
 	msvcr120.dll!operator new(unsigned int size=0x000000ef) Line 59	C++	Non-user code. Symbols loaded.
 	000000e6()	Unknown	Non-user code

in reply to:  12 comment:13 by Vladislav Belov, 6 years ago

Replying to stanislas69:

Another call stack, slightly different, but same driver as before. (I made a dll bank to get hexa code). Maybe someone from Intel could tell us more, but I don't have that kind of friends.

Do we have someone, who can stable reproduce the problem? We need to try run it in Debug mode and try to write to Intel.

comment:14 by Stan, 6 years ago

Stack trace of #5063

>	atioglxx.dll!15117b3d()	Unknown	No symbols loaded.
 	[Frames below may be incorrect and/or missing, no symbols loaded for atioglxx.dll]		Annotated Frame
 	kernel32.dll!_HeapFree@12
()	Unknown	Non-user code. Symbols loaded.
 	pyrogenesis.exe!CPostprocManager::ApplyBlurDownscale2x(unsigned int inTex=0x00000005, unsigned int outTex=0x00000007, int inWidth=0x00000320, int inHeight=0x000001c2) Line 249	C++	Symbols loaded.
 	pyrogenesis.exe!CPostprocManager::ApplyBlur() Line 351	C++	Symbols loaded.
 	pyrogenesis.exe!CPostprocManager::ApplyPostproc() Line 502	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderSubmissions(const CBoundingBoxAligned & waterScissor) Line 1579	C++	Symbols loaded.
 	pyrogenesis.exe!CRenderer::RenderScene(Scene & scene) Line 1885	C++	Symbols loaded.
 	pyrogenesis.exe!CGameView::Render() Line 489	C++	Symbols loaded.
 	pyrogenesis.exe!Render() Line 228	C++	Symbols loaded.
 	pyrogenesis.exe!CGame::ReallyStartGame() Line 322	C++	Symbols loaded.
 	pyrogenesis.exe!ProgressiveLoad() Line 233	C++	Symbols loaded.
 	pyrogenesis.exe!Frame() Line 322	C++	Symbols loaded.
 	pyrogenesis.exe!RunGameOrAtlas(int argc=0x00000001, const char * * argv=0x00430008) Line 581	C++	Symbols loaded.
 	pyrogenesis.exe!SDL_main(int argc=0x00000001, char * * argv=0x00430008) Line 623	C++	Symbols loaded.
 	pyrogenesis.exe!main_utf8(int argc=0x00000001, char * * argv=0x00430008) Line 126	C	Symbols loaded.
 	pyrogenesis.exe!wmain(int argc=0x00000001, unsigned short * * wargv=0x00309a20, unsigned short * wenvp=0x002f4d00) Line 151	C	Symbols loaded.
 	pyrogenesis.exe!__tmainCRTStartup() Line 623	C	Non-user code. Symbols loaded.
 	pyrogenesis.exe!CallStartupWithinTryBlock() Line 364	C++	Symbols loaded.
 	kernel32.dll!@BaseThreadInitThunk@12
()	Unknown	Non-user code. Symbols loaded.
 	ntdll.dll!___RtlUserThreadStart@8
()	Unknown	Non-user code. Symbols loaded.
 	ntdll.dll!__RtlUserThreadStart@8
()	Unknown	Non-user code. Symbols loaded.

comment:15 by elexis, 6 years ago

Component: UI & SimulationCore engine
Priority: Release BlockerMust Have

Noone of us can reproduce the issue.

in reply to:  4 comment:16 by elexis, 6 years ago

Milestone: Alpha 23
Resolution: needsinfo
Status: newclosed

There are 6 callstacks in here, but it doesn't state if the callstacks actually occured if and only if GLSL was enabled. So it could be that we mix 6 different issues.

As it's most likely some driver issue, we (would) have to experimentally find out which graphics cards are affected and in which way.

Replying to elexis:

Assuming this is the same GLSL issue everyone else has, tagging this as a release blocker (that might be set back to must-have).

Speaking of one GLSL issue that everyone has while there are 6 different callstacks and the unrelated alt+tab crash linked seems as oversimplifying as claiming ancient celtic tribes to be a unified nationstate.

Another report of that here https://wildfiregames.com/forum/index.php?/topic/22804-game-crash/

That was gameboy enabling gpuskinning which is claimed to be experimental and can't be enabled through the UI.

comment:17 by elexis, 6 years ago

refs #5089

Note: See TracTickets for help on using tickets.