Just makes the debug stats actually useful while stepping. A bit of
overengineering, but it makes it easy to go frame-by-frame looking for
perf issues.
Fixes#3049, which apparently expects an END/FINISH to not immediately
trigger (it drawsyncs soon after, and completely expects that to
reschedule.)
Either way, it seems plausible an END would take a few more cycles than
most instructions, since it generates an interrupt.
If only parameters change (like wrapping or clut, etc.) we don't need to
rehash the data - we know it hasn't changed.
Should reduce the distance between lazy texture hashing on and off.
They really should pause, but we were resetting them incorrectly.
And most importantly, sceGeContinue() inside the signal handler absolutely
must work. Games use this a lot.
Fixes#5806, bcause it avoids rescheduling at the signal, which it should
not do. Possibly this is incorrect for all GE signals, but we don't need
to trigger any behavior on a sync anyway.
Jumps are actually very common in some games, like FF4 and Crisis Core,
and tons more. They are used to jump around vertex data.
Improves performance by a few percent in FF4.