The emu thread can be stopped/started by the app main java thread while
the render thread is running. This can lead to a race condition on the
threadResult future between checkStatus() and start(). So protect
relevant sections with a mutex.
Fix for MINIDUMP-1G, MINIDUMP-1H, MINIDUMP-2G and MINIDUMP-33
Device is lost for a long time when the screen is locked. Need to
continue calling present() to recover.
Reset render state cache on in RenderFramebuffer and RenderLastFrame
entry points.
More logging in renderer resizing.
If the android activity is destroyed and the game unloaded, the gui's
game state wasn't updated, leading to a crash if resuming. Same for the
android game state if pausing, destroying then resuming.
tentative fix for MINIDUMP-27, MINIDUMP-25, MINIDUMP-23
Wait until emu is stopped in single-threaded.
Stop vibrator thread when view is detached
Allow the screen saver when a game isn't running.
vkEnumerateInstanceVersion is only available in vk 1.1 so it might be
null after dynamic loading of entry points.
tentative fix for MINIDUMP-1Z, MINIDUMP-20 and MINIDUMP-21
Handle case where device reset fails and continue attempting a reset.
tentative fix for MINIDUMP-12 and MINIDUMP-1Q
RenderFramebuffer wasn't working when first render after init
Check supported texture formats including mipmap and mipmap autogen.
Fall back to 8888 format.
tentative fix for MINIDUMP-17, MINIDUMP-1R and MINIDUMP-1M
RenderFramebuffer wasn't working if first render after init.
VSTR and VLDR require a 32-bit alignment in armv7. SH4 alignment
requirement is identical but ignored (no SH4 address error is raised).
So instead of crashing, just align the memory address.
Fix for MINIDUMP-1J
Gamepad events aren't delivered to the UI thread in Android. This can
lead to race conditions between the UI thread (calling gui_display_ui())
and the event thread (calling gui_open_settings()).
Issue #852
Fix for MINIDUMP-1D, MINIDUMP-1E, MINIDUMP-1K
In android, stop requests are not run in the UI thread so in
single-threaded mode, they must be deferred until after the current
frame is rendered to avoid deadlocking on audio.