Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
Mono organizations on
GitHub to continue tracking issues. Bugzilla will remain
available for reference in read-only mode. We will continue to work
on open Bugzilla bugs, copy them to the new locations
as needed for follow-up, and add the new items under Related
Our sincere thanks to everyone who has contributed on this bug
tracker over the years. Thanks also for your understanding as we
make these adjustments and improvements for the future.
Please create a new report on
Developer Community or GitHub with
your current version information, steps to reproduce, and relevant error
messages or log files if you are hitting an issue that looks similar to
this resolved bug and you do not yet see a matching new report.
This is an issue when the OpenGL context is destroyed when the application is Paused. On older devices this was valid, however newer devices (post Android 3.0 I think) have the ability to keep hold of the GL Context during the Pause state and reuse it when the application is Resumed.
Currently the Context and the Surface are tightly coupled, which means when the SurfaceDestroyed event is fired from the ISurfaceHolderCallback the context is removed as well as the Surface. To fix the issue the Context and Surface need to be de-coupled so that a Context can be kept even if the Surface is destroyed and then re-attached ones the SurfaceCreated is called.
Further discussion about the issue here:
I feel that the priority on this should be greater than "low normal". Games often have a lot of textures loaded and when the GL context is destroyed, all these textures have to be reloaded which can cause a significant wait for the user. Other frameworks do not suffer this issue, which makes Xamarin/MonoGame a less desirable option for game developers.
almost one year since the bug notification. Is it possible to speed up the fix a little bit? Most MonoGame ports to Android suffer from this problem, making the resume time really long or impossible to port.
The fix landed in master branch. Hopefully it will make it to the next alpha release.