Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#2667 closed defect (fixed)

[PATCH] Crash exiting game w/ old Intel GPU on FFP

Reported by: historic_bruno Owned by: ben
Priority: Must Have Milestone: Alpha 17
Component: Core engine Keywords: patch
Cc: wraitii Patch:

Description

Tested on latest SVN, WinXP, built with VC++2008. Started the game, never left the main menu, when I closed, there was this crash:

 	00000000()	
>	pyrogenesis.exe!WaterManager::UnloadWaterTextures()  Line 259	C++
 	pyrogenesis.exe!WaterManager::~WaterManager()  Line 110	C++
 	pyrogenesis.exe!CRendererInternals::~CRendererInternals()  + 0x13b bytes	C++
 	pyrogenesis.exe!CRenderer::~CRenderer()  Line 482 + 0x11 bytes	C++
 	pyrogenesis.exe!CRenderer::`scalar deleting destructor'()  + 0xb bytes	C++
 	pyrogenesis.exe!Shutdown(int __formal=0)  Line 690	C++
 	pyrogenesis.exe!RunGameOrAtlas(int argc=2, const char * * argv=0x026dd928)  Line 486 + 0x7 bytes	C++
 	pyrogenesis.exe!main(int argc=2, char * * argv=0x026dd928)  Line 527 + 0xd bytes	C++
 	pyrogenesis.exe!wmain(int argc=2, wchar_t * * argv=0x026d5630)  Line 380 + 0xa bytes	C++
 	pyrogenesis.exe!__tmainCRTStartup()  Line 583 + 0x17 bytes	C
 	pyrogenesis.exe!CallStartupWithinTryBlock()  Line 397	C++
 	kernel32.dll!_BaseProcessStart@4()  + 0x23 bytes	

This GPU doesn't support shaders at all. It is likely trying to clean up something that was never initialized on FFP.

Attachments (1)

water-fbo-fixes.diff (19.7 KB ) - added by historic_bruno 10 years ago.

Download all attachments as: .zip

Change History (6)

comment:1 by historic_bruno, 10 years ago

Milestone: BacklogAlpha 17

It crashes when a map is loaded as well. Does simple water rendering on FFP still exist or is it just broken?

by historic_bruno, 10 years ago

Attachment: water-fbo-fixes.diff added

comment:2 by historic_bruno, 10 years ago

Keywords: patch review added
Summary: Crash exiting game w/ old Intel GPU on FFP[PATCH] Crash exiting game w/ old Intel GPU on FFP

The attached patch fixes the crashes on loading maps and exiting the game, by detecting GPU capabilities necessary for "pretty water" (reflections, refractions, foam, etc.) and testing for that in WaterManager before using e.g. FBOs. I figured this was a better test than checking GLSL and FBO support separately, since both are now needed for rendering more than simple water. The patch could go further, there is a lot of unnecessary code running in that case.

However, even with the patch, simple water isn't rendering for me on FFP (it's black where the water should be).

comment:3 by historic_bruno, 10 years ago

Hmm, actually the map I tested (Polynesia) has black water color, which only makes it seem like it's not rendering properly on FFP.

Last edited 10 years ago by historic_bruno (previous) (diff)

comment:4 by ben, 10 years ago

Owner: set to ben
Resolution: fixed
Status: newclosed

In 15814:

Fixes water rendering and crashes on GPUs without FBO support, fixes #2667

comment:5 by historic_bruno, 10 years ago

Keywords: review removed

Thanks to leper helping review the patch in IRC 2014-09-25 @ 23:10

Note: See TracTickets for help on using tickets.