Project

General

Profile

Actions

Emulator Issues #2653

closed

Jit64 latest changes cause slowdown [Jit_Integer]

Added by Autoran1 almost 14 years ago.

Status:
Fixed
Priority:
Normal
Assignee:
-
Category:
JIT
% Done:

0%

Operating system:
N/A
Issue type:
Bug
Milestone:
Regression:
No
Relates to usability:
No
Relates to performance:
Yes
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

i've got about -5-10 fps in various cases in Mario Galaxy and ZeldaTP with
latest jit changes, i tested and all the slowdowns goes from subfcx
instruction, since i don't know how to fix it properly disabling subfcx
giives me all my fps back
Please take a look at this issue

Actions #1

Updated by Autoran1 almost 14 years ago

Sorry i gave wrong info, those slowdowns caused by r5378 in Jit_Integer.cpp
removing the StoreFromX64 line will fix slowdown

Actions #2

Updated by skidau almost 14 years ago

  • Status changed from New to Accepted

Ok, I'll verify later. Might switch it for the alternative fix in Jit_LoadStore.cpp
specified within the comments of r5378.

Actions #3

Updated by Autoran1 almost 14 years ago

Btw, what exactly gives commenting out that code in Jit_LoadStore.cpp you've
mentioned for MGS:TS

Actions #4

Updated by skidau almost 14 years ago

  • Relates to performance set to Yes
  • Category set to jit
  • Operating system N/A added

Commenting out the block of code in Jit_LoadStore.cpp allows MGS:TS to start in JIT
mode. The code is a speed optimisation but it breaks something in MGS:TS.

With the StoreFromX64 change, I did not notice a drop in speed in Super Mario Galaxy
(maybe 1-2fps tops), but I saw a drop in Zelda TP at the title screen.

As we are still trying to work out why the Jit_LoadStore code breaks MGS:TS, we'll
leave the code as is for now.

I can assure you that the current Jit_Integer code (with the StoreFromX64 line) will
not break any games. It flushes the x64 reg to the PPC reg so that the PPC has the
most up to date value. The downside is that it may be flushing the reg too often.

This is the trace of MGS:TS (GGSEA4) just before it crashes in JIT mode:

PC: 80019c14
PC: 80019c58
PC: 800206a8
PC: 800206bc
PC: 800206c4
PC: 80019c60
PC: 80019c74
PC: 8001a628
PC: 800206a8
PC: 800206b4
PC: 800206c0
PC: 800206c4
PC: 8001a630
PC: 8001a644 <-- Last correct block
PC: 00000000

This is the trace from the correctly working JITIL mode:

PC: 80019c14
PC: 80019c58
PC: 800206a8
PC: 800206bc
PC: 800206c4
PC: 80019c60
PC: 80019c74
PC: 8001a628
PC: 800206a8
PC: 800206b4
PC: 800206c0
PC: 800206c4
PC: 8001a630
PC: 8001a644 <-- Last synchronised block
PC: 8001503c <-- Correct next block
PC: 80015054
PC: 8000c4e0
PC: 8000c4f4

Actions #5

Updated by skidau almost 14 years ago

  • Status changed from Accepted to Fixed

This issue was closed by revision r5790.

Actions

Also available in: Atom PDF