Opened 8 years ago

Closed 6 years ago

#4181 closed defect (fixed)

Alt + tab crash with Intel HD 4000 graphics card

Reported by: yellowbase Owned by:
Priority: Release Blocker Milestone: Alpha 23
Component: Core engine Keywords:
Cc: Patch: Phab:D1212

Description (last modified by echotangoecho)

0 a.d. 0.19 runs fine until I switch to another task with alt-tab or simply go out of the full-screen mode to see the desktop. the crash happens every time I do so.

Attachments (7)

crashlog.dmp (100.6 KB ) - added by yellowbase 8 years ago.
crashlog.txt (16.3 KB ) - added by yellowbase 8 years ago.
system_info.txt (15.1 KB ) - added by yellowbase 8 years ago.
crashlog.2.dmp (90.6 KB ) - added by Michael 7 years ago.
crashlog.2.txt (11.0 KB ) - added by Michael 7 years ago.
system_info.2.txt (9.9 KB ) - added by Michael 7 years ago.
Graphic card specs.txt (713 bytes ) - added by Michael 7 years ago.
Intel HD 4000 + NVIDIA Quadro K1000M

Download all attachments as: .zip

Change History (36)

by yellowbase, 8 years ago

Attachment: crashlog.dmp added

by yellowbase, 8 years ago

Attachment: crashlog.txt added

by yellowbase, 8 years ago

Attachment: system_info.txt added

comment:1 by elexis, 7 years ago

Milestone: Backlog
Resolution: needsinfo
Status: newclosed

Can you still reproduce this issue? What is your operating system? Alt+tab seems to indicate windows and we didn't have any similar reports. Please reopen this issue if you have further information.

comment:2 by Michael, 7 years ago

Resolution: needsinfo
Status: closedreopened

by Michael, 7 years ago

Attachment: crashlog.2.dmp added

by Michael, 7 years ago

Attachment: crashlog.2.txt added

by Michael, 7 years ago

Attachment: system_info.2.txt added

comment:3 by Michael, 7 years ago

I would like to reopen this bug. With Alpha21 and Windows 7 64-bit the game crashes every time I press Alt+Tab or the Windows key (very annoying as it is right next to Ctrl). 0 A.D. does not crash if the start screen ("Learn To Play" / "Single Player" / etc.) is shown, only once the match has started. Alt+Enter switches between Fullscreen and Windowed Mode as expected.

With Alpha21 on Ubuntu 16.04 no crash happens if the Windows key (aka Super key), Alt, or Alt+Tab is pressed. The game simply continues in the background and I can change back to it.

Details: unhandled exception (Access violation reading 0x00000018) Location: unknown:0 (?) Call stack: (error while dumping stack: No stack frames found) errno = 0 (No error reported here) OS error = 487 (Attempt to access invalid address.)

comment:4 by elexis, 7 years ago

Component: UI & SimulationCore engine
Milestone: Alpha 22
Priority: Must HaveRelease Blocker
Summary: 0 a.d. crashes when switshing to another task0 A.D. crashes Windows when switshing to another task

Someone with VisualStudio should check out this crash dump. Considering #4181, Stan's testimony "Alt tab has always been buggy on windows." and some other tickets where this has been reported, we shouldn't ignore this one in theory.

comment:5 by Imarok, 7 years ago

Hmm I cannot reproduce it with windows 7 64-bit and A21.

comment:6 by fabio, 7 years ago

Possibly a duplicate of #4361, if you have a dual monitor.

comment:7 by Michael, 7 years ago

the crash happens on my Lenovo W530 laptop, no dual monitor.

by Michael, 7 years ago

Attachment: Graphic card specs.txt added

Intel HD 4000 + NVIDIA Quadro K1000M

comment:8 by Michael, 7 years ago

Ok, I have some more information. My Lenovo W530 has two graphic cards (Intel HD 4000 + NVIDIA Quadro K1000M), but the crash only happens with the Intel HD 4000. In case I start 0 A.D. with the NVIDIA card, Windows key and Alt+Tab work as expected!

Btw, if I connect my laptop to the docking station with two external screens, 0 A.D. plays fine with Nvidia, but the Intel HD (using latest drivers available) still crashes on Windows key, etc.

Last edited 7 years ago by Michael (previous) (diff)

comment:9 by Palaxin, 7 years ago

This happens to me, too (ALWAYS when using Alt-Tab or losing focus of 0 A.D. in the Windows GUI). The last time a few days ago with SVN.

I use Windows 10 64-bit with an Intel HD 4400 and do not use dual monitors.

comment:10 by echotangoecho, 7 years ago

Description: modified (diff)

This definitely seems like a driver issue. Can anyone with Intel graphics and Windows try to reproduce this (ideally with a debugger attached?).

comment:11 by Stan, 7 years ago

I'd like to have a crash dump for that.

in reply to:  11 comment:12 by fabio, 7 years ago

comment:13 by Stan, 7 years ago

Can't reproduce. Were you guys playing, were you on battery ? were you using the integrated card or the nvidia card ?

comment:14 by Stan, 7 years ago

Summary: 0 A.D. crashes Windows when switshing to another task0 A.D. crash when switching to another task

comment:15 by Stan, 7 years ago

The crash Mythos Ruler reported has the following call stack

 	ig7icd32.dll!08ba83e5()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for ig7icd32.dll]	
>	pyrogenesis.exe!TerrainRenderer::RenderTerrainShader(const CShaderDefines & context={...}, int cullGroup=-995365597, ShadowMap * shadow=0x00000000) Line 503	C++
 	pyrogenesis.exe!CRenderer::RenderPatches(const CShaderDefines & context={...}, int cullGroup=0) Line 932	C++
 	pyrogenesis.exe!CRenderer::RenderSubmissions(const CBoundingBoxAligned & waterScissor={...}) Line 1520	C++
 	pyrogenesis.exe!CRenderer::RenderScene(Scene & scene) Line 1875	C++
 	pyrogenesis.exe!CGameView::Render() Line 489	C++
 	pyrogenesis.exe!Render() Line 232	C++
 	pyrogenesis.exe!Frame() Line 358	C++
 	pyrogenesis.exe!RunGameOrAtlas(int argc=1, const char * * argv=0x00230008) Line 527	C++
 	pyrogenesis.exe!SDL_main(int argc=1, char * * argv=0x00230008) Line 567	C++
 	pyrogenesis.exe!main_utf8(int argc=1, char * * argv=0x00230008) Line 126	C
 	pyrogenesis.exe!wmain(int argc=1, unsigned short * * wargv=0x0040f3f0, unsigned short * wenvp=0x00410130) Line 151	C
 	pyrogenesis.exe!__tmainCRTStartup() Line 623	C
 	pyrogenesis.exe!CallStartupWithinTryBlock() Line 364	C++
 	kernel32.dll!749c336a()	Unknown

comment:16 by elexis, 7 years ago

Summary: 0 A.D. crash when switching to another taskAlt + tab crash with Intel HD 4000 graphics card

comment:17 by Itms, 7 years ago

Milestone: Alpha 22Alpha 23

The bug is not reproducible by any developer so unfortunately we won't be able to debug this quickly enough for the new release. We hope to get to the bottom of it at some point...

comment:18 by elexis, 7 years ago

refs #4181

comment:19 by Stan, 7 years ago

So visibly it occurs on W10 1607 (I have 1703) and seven as well on both skylake and third generation Intel.

Not sure if Henry had an Nvidia card.

in reply to:  18 comment:20 by Imarok, 7 years ago

Replying to elexis:

refs #4181

I guess you want to ref #4682 ?

comment:21 by Stan, 7 years ago

Stack trace from #4682

>	ig9icd32.dll!65555b70()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for ig9icd32.dll]	
 	pyrogenesis.exe!ScriptInterface::CallFunction<CColor>(JS::Handle<JS::Value> val={...}, const char * name=0x00000000, CColor & ret) Line 171	C++
 	pyrogenesis.exe!CGame::Update(const double deltaRealTime=8.0578121771166102e-308, bool doInterpolate=85) Line 422	C++
 	pyrogenesis.exe!_SDL_ShowSimpleMessageBox
()	C++
 	pyrogenesis.exe!_SDL_ShowSimpleMessageBox
()	C++
 	pyrogenesis.exe!_SDL_ShowSimpleMessageBox
()	C++
 	pyrogenesis.exe!_chkstk() Line 100	Unknown
 	pyrogenesis.exe!_chkstk() Line 100	Unknown
 	ntdll.dll!76f158c5()	Unknown

comment:22 by elexis, 7 years ago

Another: #4726

comment:23 by Stan, 7 years ago

>	ig75icd32.dll!16d28120()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for ig75icd32.dll]	
 	pyrogenesis.exe!ScriptInterface::CallFunction<CColor>(JS::Handle<JS::Value> val={...}, const char * name=0x00f71438, CColor & ret) Line 195	C++
 	pyrogenesis.exe!CGame::Update(const double deltaRealTime=9.3239850978703138e-302, bool doInterpolate=241) Line 422	C++
 	pyrogenesis.exe!_SDL_ShowSimpleMessageBox
()	C++
 	pyrogenesis.exe!_SDL_ShowSimpleMessageBox
()	C++
 	pyrogenesis.exe!_SDL_ShowSimpleMessageBox
()	C++
 	pyrogenesis.exe!_chkstk() Line 100	Unknown
 	pyrogenesis.exe!_chkstk() Line 100	Unknown
 	ntdll.dll!77dd6740()	Unknown

Call stack is the same than the previous one.

Funny VS code map feature screen : https://imgur.com/a/m5KDf

Probably not related at all but this might help : https://communities.intel.com/message/71136

comment:24 by elexis, 6 years ago

Patch: Phab:D1212

comment:25 by Stan, 6 years ago

Other crashlog from #4898

>	ig7icd32.dll!14800c90()	Unknown	No symbols loaded.
 	[Frames below may be incorrect and/or missing, no symbols loaded for ig7icd32.dll]		Annotated Frame
 	pyrogenesis.exe!CGame::Update(const double deltaRealTime, bool doInterpolate) Line 422	C++	Symbols loaded.
 	[External Code]		Annotated Frame
 	pyrogenesis.exe!pthread_mutex_unlock(void * * m) Line 353	C++	Symbols loaded.
 	pyrogenesis.exe!CProfiler2::RegisterCurrentThread(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & name) Line 294	C++	Symbols loaded.

comment:26 by Stan, 6 years ago

New crash dump for alt tab by Imarok. Looks like the last one.

>	ig9icd32.dll!606b8b40()	Unknown	No symbols loaded.
 	[Frames below may be incorrect and/or missing, no symbols loaded for ig9icd32.dll]		Annotated Frame
 	ig9icd32.dll!60712d5e()	Unknown	No symbols loaded.
 	[External Code]		Annotated Frame
 	gloox-1.0.dll!63d7126d()	Unknown	No symbols loaded.
 	pyrogenesis.exe!pthread_mutex_unlock(void * * m) Line 353	C++	Symbols loaded.
 	pyrogenesis.exe!timer_Time() Line 119	C++	Symbols loaded.
 	[External Code]		Annotated Frame

comment:27 by Stan, 6 years ago

Call stack from #5012

>	ig7icd32.dll!14113460()	Unknown	No symbols loaded.
 	[Frames below may be incorrect and/or missing, no symbols loaded for ig7icd32.dll]		Annotated Frame
 	pyrogenesis.exe!CGame::Update(const double deltaRealTime, bool doInterpolate) Line 422	C++	Symbols loaded.
 	[External Code]		Annotated Frame
 	pyrogenesis.exe!pthread_mutex_unlock(void * * m) Line 353	C++	Symbols loaded.
 	pyrogenesis.exe!CProfiler2::RegisterCurrentThread(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & name) Line 294	C++	Symbols loaded.
Last edited 6 years ago by Stan (previous) (diff)

comment:28 by Vladislav Belov, 6 years ago

In 21476:

Fixes the Alt + Tab crash in the fullscreen mode. Refs #4181.

Patch By: Angen
Comments By: echotangoecho, Imarok, Stan
Reviewed By: vladislavbelov
Trac Tickets: #4181
Differential Revision: https://code.wildfiregames.com/D1212

comment:29 by Silier, 6 years ago

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.