HackerN64/HackerSM64

OSINSERTTIMER Crash

gheskett opened this issue · 9 comments

image

Reproduceable on Parallel by enabling highest-demanding BETTER_REVERB settings and running around the castle for a bit. My guess is this is an issue with the audio thread somehow clashing with the scheduler, but regardless this should not be happening. Unproven whether this is emulator only.

Marking this as high priority until this is both confirmed to be an unlikely issue on hardware and also confirmed to be unrelated to performance issues when present on the game thread.

UPDATE: This is confirmed to happen even when processing is heavy on the game thread. Throwing in artificial lag in either the game or sound thread can easily trigger this crash pretty much regardless of where it's located, so this most likely is a scheduling issue. Marking this issue as critical.

Admittedly very inconsistent to reproduce this one, but it has been confirmed to trigger on hardware as well, seemingly at random. The only for-sure requirement is for (probably CPU-based) performance demand to be heavy.

Aside: It would be extremely helpful if the stack trace actually worked for diagnosing this.

I managed to narrow it down very significantly. start_rcp_hang_timer and potentially stop_rcp_hang_timer are causing the crash.

try doubling the timer and see what happens, also make sure the rcp assert can fire

what's your fps here? if it's less than 15 then maybe another timer is getting set when it shouldn't

I got it to trigger even still at 30FPS I think

I think the only thing that matters is that it's even possible for a thread to not be finished

try doubling the timer and see what happens, also make sure the rcp assert can fire

I think RCP assertion is unaffected by any amount of CPU lag on game and sound thread, since thread3 gets priority over those. I was never able to trip it in testing, which is also expected behavior.