Fixes#18767
Not sure about merging for the 1.17 series though, maybe someone really
likes to bring up the pause menu briefly while holding a direction.. we
could actually handle that with some extra logic.
There's conflicting advice on when to do it, but to avoid people testing
their cheats twice, let's match as closely as we can.
This means that 30hz games will only have the callback run at 30hz.
The duplicate frames option may interfere, just like it may on libretro.
It seems to be possible for a user to back out of a screen before
receiving the "dialog completed" callback on Android, in which case
things pointed to by the callback might be gone.
In this case, it's better to simply not call the callback, rather than
crashing.
This is accomplished by assigning "Tokens" to screens that cause
requests, and in ~Screen, invalidate any pending requests belonging to
that token.
Should fix#18720
We need to annotate store mode properly too, in order to merge passes
that load with DONT_CARE.
The reason it's a problem that we fail to merge renderpasses is that old
Mali drivers get things in a terribly wrong state if you submit an empty
renderpass.