|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002446||FSSCP||graphics||public||2011-05-29 12:49||2011-05-30 14:48|
|Target Version||Fixed in Version||3.6.13|
|Summary||0002446: Particle generation when game is paused|
|Description||If you pause the game by pressing either esc, pause or alt-tabbing (same as pause) while FSO is generating particles, resuming the game will take really long time by seemingly freezing FSO to halt until it slowly starts recovering from really low fps to normal fps. This problem can be replicated by either tabling options or any script that produces particles.|
This problem isn't new and has been around since at least 3.6.11.
I suggest trying this script to trigger the problem.
|Tags||No tags attached.|
|Forgot to say that the recovery from pause is slower the more particles were generated when game was paused.|
I further tested the pause problem and I have to correct myself. This doesn't occur with pause, only with esc menu.
You see, if you press pause, you get Got event GS_EVENT_PAUSE_GAME (6) in state GS_STATE_GAME_PLAY (2)
If you press it again, you get Got event GS_EVENT_PREVIOUS_STATE (7) in state GS_STATE_GAME_PAUSED (3)
But if you press esc instead, game state does not change. I suspect this means all scripts are left in running state and when you resume the game, everything that your scripts have been working while esc menu was on, is getting thrown in at once. No idea at this time if this is limited to scripts or whether it does affect tabled particle generation too.
I traced the code responsible for the popup and it calls gr_flip() which causes the CHA_ONFRAME scripting hook to be run. Disabling this hook as long as the popup is shown fixes the problem.
Patch is attached.
|Patch committed to trunk in revision 7219|
|2011-05-29 12:49||Fury||New Issue|
|2011-05-29 12:50||Fury||Note Added: 0012695|
|2011-05-30 12:38||Fury||Note Added: 0012699|
|2011-05-30 13:35||m_m||File Added: mantis2446-patch.patch|
|2011-05-30 13:36||m_m||Note Added: 0012700|
|2011-05-30 14:47||The_E||Note Added: 0012701|
|2011-05-30 14:48||The_E||Status||new => resolved|
|2011-05-30 14:48||The_E||Fixed in Version||=> 3.6.13|
|2011-05-30 14:48||The_E||Resolution||open => fixed|
|2011-05-30 14:48||The_E||Assigned To||=> The_E|