inada-s/gdxsv

Faster game updates during rollback

Closed this issue · 6 comments

benchmark: 300frame skip during a game replay.

active game loop 4ms/fr

00:20:434 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 1238[ms] (4.13[ms/fr])
00:21:647 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 1212[ms] (4.04[ms/fr])
00:22:788 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 1141[ms] (3.80[ms/fr])
00:23:882 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 1094[ms] (3.65[ms/fr])
00:25:041 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 1158[ms] (3.86[ms/fr])
00:26:248 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 1207[ms] (4.02[ms/fr])
00:27:352 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 1103[ms] (3.68[ms/fr])
00:28:588 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 1235[ms] (4.12[ms/fr])
00:29:782 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 1193[ms] (3.98[ms/fr])
00:30:924 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 1141[ms] (3.80[ms/fr])

idle game loop 2.8ms/fr (no game logic update)

00:21:247 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 879[ms] (2.93[ms/fr])
00:22:171 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 854[ms] (2.85[ms/fr])
00:23:277 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 853[ms] (2.84[ms/fr])
00:24:278 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 848[ms] (2.83[ms/fr])
00:25:357 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 843[ms] (2.81[ms/fr])
00:26:412 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 851[ms] (2.84[ms/fr])
00:27:442 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 844[ms] (2.81[ms/fr])
00:28:521 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 859[ms] (2.86[ms/fr])
00:29:536 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 845[ms] (2.82[ms/fr])
00:30:605 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 848[ms] (2.83[ms/fr])

idle game loop with skip aica arm update (a little audio glitch) 2.5ms/fr

00:31:856 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 753[ms] (2.51[ms/fr])
00:32:890 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 747[ms] (2.49[ms/fr])
00:33:813 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 753[ms] (2.51[ms/fr])
00:34:702 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 753[ms] (2.51[ms/fr])
00:35:646 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 757[ms] (2.52[ms/fr])
00:36:569 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 752[ms] (2.51[ms/fr])
00:37:438 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 750[ms] (2.50[ms/fr])
00:38:315 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 757[ms] (2.52[ms/fr])
00:39:307 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 755[ms] (2.52[ms/fr])
00:40:221 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 745[ms] (2.48[ms/fr])
00:41:083 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 740[ms] (2.47[ms/fr])

idle game loop with skip 0x0c0520e2 function call (no rendering audio work) 2.0ms/fr

00:18:480 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 616[ms] (2.05[ms/fr])
00:19:499 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 599[ms] (2.00[ms/fr])
00:20:386 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 601[ms] (2.00[ms/fr])
00:21:291 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 602[ms] (2.01[ms/fr])
00:22:160 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 599[ms] (2.00[ms/fr])
00:23:095 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 599[ms] (2.00[ms/fr])
00:24:003 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 605[ms] (2.02[ms/fr])
00:24:841 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 602[ms] (2.01[ms/fr])
00:25:663 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 602[ms] (2.01[ms/fr])
00:26:495 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 612[ms] (2.04[ms/fr])
00:27:356 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 608[ms] (2.03[ms/fr])

idle game loop with skip aica arm update and skip 0x0c0520e2 function call (a little audio glitch) 1.7ms/fr

00:27:653 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 514[ms] (1.71[ms/fr])
00:28:492 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 519[ms] (1.73[ms/fr])
00:29:296 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 518[ms] (1.73[ms/fr])
00:30:051 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 518[ms] (1.73[ms/fr])
00:30:833 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 513[ms] (1.71[ms/fr])
00:31:596 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 526[ms] (1.75[ms/fr])
00:32:364 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 515[ms] (1.72[ms/fr])
00:33:144 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 511[ms] (1.70[ms/fr])
00:33:926 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 512[ms] (1.71[ms/fr])
00:34:680 gdxsv\gdxsv_backend_replay.cpp:197 N[COMMON]: SomeFrameForward skipped 300[fr] in 516[ms] (1.72[ms/fr])

idle game loop with skip aica arm update and skip 0x0c0520e2 function call + sh4 clock 100Mhz (super audio glitch) 1.0ms/fr

00:23:295 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 309[ms] (1.03[ms/fr])
00:23:808 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 309[ms] (1.03[ms/fr])
00:24:302 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 307[ms] (1.02[ms/fr])
00:24:808 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 302[ms] (1.01[ms/fr])
00:25:299 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 304[ms] (1.01[ms/fr])
00:25:838 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 302[ms] (1.01[ms/fr])
00:26:298 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 307[ms] (1.02[ms/fr])
00:26:822 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 303[ms] (1.01[ms/fr])
00:27:297 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 305[ms] (1.02[ms/fr])
00:27:839 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 306[ms] (1.02[ms/fr])
00:28:333 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 306[ms] (1.02[ms/fr])
00:28:910 gdxsv\gdxsv_backend_replay.cpp:199 N[COMMON]: SomeFrameForward skipped 300[fr] in 308[ms] (1.03[ms/fr])

idle game loop with skip aica arm update and skip 0x0c0520e2 function call + vblank hack 0.01ms/fr

02:02:552 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 234[ms] (0.78[ms/fr])
02:06:337 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 2[ms] (0.01[ms/fr])
02:07:121 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 2[ms] (0.01[ms/fr])
02:07:839 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 2[ms] (0.01[ms/fr])
02:08:539 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 2[ms] (0.01[ms/fr])
02:09:206 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 2[ms] (0.01[ms/fr])
02:09:824 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 2[ms] (0.01[ms/fr])
02:10:444 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 3[ms] (0.01[ms/fr])
02:11:125 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 2[ms] (0.01[ms/fr])
02:11:828 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 3[ms] (0.01[ms/fr])
02:12:445 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 3[ms] (0.01[ms/fr])
02:13:277 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 2[ms] (0.01[ms/fr])

active game loop with skip aica arm update and skip 0x0c0520e2 function call + vblank hack 0.9ms/fr

03:19:138 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 217[ms] (0.72[ms/fr])
03:19:911 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 300[ms] (1.00[ms/fr])
03:20:577 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 323[ms] (1.08[ms/fr])
03:21:117 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 214[ms] (0.71[ms/fr])
03:21:777 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 221[ms] (0.74[ms/fr])
03:22:310 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 210[ms] (0.70[ms/fr])
03:22:943 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 257[ms] (0.86[ms/fr])
03:23:453 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 151[ms] (0.50[ms/fr])
03:33:629 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 249[ms] (0.83[ms/fr])
03:34:313 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 260[ms] (0.87[ms/fr])
03:34:976 gdxsv\gdxsv_backend_replay.cpp:205 N[COMMON]: SomeFrameForward skipped 300[fr] in 291[ms] (0.97[ms/fr])