Pcsx2: Ape Escape 3 poor performance

Created on 27 Sep 2018  Â·  23Comments  Â·  Source: PCSX2/pcsx2

PCSX2 version:
1.4 and recent development versions from git.

PCSX2 options:
Tried literally everything, nothing helps it.

Plugins used:
GSdx SSE4/AVX

Description of the issue:
Most areas of the game run slow due to high CPU usage, particularly 1 thread eating 100% of CPU while not utilizing other threads.

I can run other games fine with plenty of CPU resource left to spare. This game is abnormally slow, possibly indicating an area in PCSX2 which could use optimization or a bug fix.

There is a "cinema room" area in stage 4 that causes a particularly severe FPS drop, most likely no matter how powerful your hardware is. This is noted as a "Known issue" on the PCSX2 wiki.

PC specifications:
Xeon 1230v2, RX580, have used latest mesa/llvm and stable.

All 23 comments

OpenGL is the king renderer here. And in turn amd is the king supporting opengl (on linux).
What distro are you using? And could you try to start pcsx2 with mesa_glthread=true?

Does this only happen to that game?

No difference. I can play other games I've tried fine.

Like I said I have very low GPU usage, it is the 100% processor usage preventing me from playing the game.

The only thing I'm not able to test is DX11/DX9 renderer, my hunch is that there is possibly a bug in the OpenGL renderer which causes abnormally high CPU usage in this game.

https://wiki.pcsx2.net/Ape_Escape_3

It is listed in known issues:

Games slows down when the black-and-white movie is visible in the cinema room at stage XX

I have experienced this, the FPS drop is severe in this area.

I can run the game at 60fps in certain areas on certain levels, but most areas I cannot.

I am aware my processor is not the most powerful processor on Earth, but I think this is abnormally low performance due to a bug.

yep ive had this issue too the cinema room its like the 4th stage in the game

The only thing I'm not able to test is DX11/DX9 renderer, my hunch is that there is possibly a bug in the OpenGL renderer which causes abnormally high CPU usage in this game.

Not sure why impossibility to run DX would entail opengl is bugged.
Did you try different presets in the emulation settings?
And what about software renderer?

Not sure why impossibility to run DX would entail opengl is bugged.
I am on Linux and don't have a Windows PC. This is why I can't test DX renderers and I want someone with a Windows PC to compare performance.

Perhaps performance is just bad in this game with all renderers. I think it's abnormally bad performance that indicates a bug somewhere in PCSX2 though.

I get better performance in this game with MTVU off, despite having 8 threads on my CPU. This game seems to run up 100% CPU usage on 1 thread while not using other threads enough.

I'd really just like a developer to check out performance in this game in general and see what's going on.

Can you try "none" renderer?

none renderer is still laggy

Yes, still bad performance. This is what made me believe the renderer makes no difference at all, and it's not a bug in the OpenGL pipeline (which hypothetically causes high CPU usage).

I'd still just like someone to test this out on Windows/DX11 and compare to Windows/OpenGL, and preferably Linux/OpenGL

I'm not sure if this is Linux specific, but the abnormally bad performance on this game has to be caused by a bug somewhere.

the lag is eliminated completely when you pause and even when exiting the stage you get a half a second glimpse of the area with no lag

I'd like to note I'm not just having problems with that one stage. It's most of the game, that area is just is specifically really bad.

I just want someone with more knowledge than me to debug what's going on.

Editing the title now that we "discovered" graphics has nothing to do with it, wouldn't hurt.
Try playing with clamp settings or gamefixes.

Oh man you have an attitude... it’s amazing.

As you said MTVU doesn’t help I assume that VU is heavily used. Please verify that by letting the game run without MTVU and check indicators of fps, EE and GS. I’d expect EE to be at 100% and GS (possibly much) less than 90%. Also your gpu should be mostly idling and changing internal resolution moderately doesn’t affect game performance at all.

When you enable MTVU your fps might change slightly, EE% will go down und VU% rise above 50% (where MTVU often starts to become useless). Again gpu is bored and changing internal resolution doesn’t change performance.

If that’s the case there is not much you can do except for checking whether superVU is better than microVU and/or change VU clamping to none to get a small speed boost with possible graphics corruption side effects.

Game performance can only be improved by a few fps via settings. If your starting point is below 50% you could stop and play this game on your real ps2 or go on with the next game from my point of view.

Some general remarks:

MTVU doesn’t work nicely because this game heavily lets EE and VU thread synchronize which means all benefits of multithreading are gone. That’s not uncommon and not easy to solve in case it is possible. This is something not only pcsx2 is struggling with.

The mentioned gpu driver issues are not out of nowhere as gpu drivers can create cpu/gpu usage inefficiencies. To say that your gpu is bored and thus it’s not the driver’s fault is not reasonable.

To expect a performance improvement by a dev just looking into the game is not reasonable as well. First of all the core is not often touched nowadays and if at all only to improve accuracy to e.g. fix the last missing games for total in-game coverage. That’ll typically only make the emulator slower.

Then even if core would be touchable a lot of devs would hesitate to do it to not introduce regressions. There are no unit tests or integration tests for this project apart from manual testing (pcsx2 was just written before TDD and similar approaches went popular). So major refactorings are not within reach and small code adjustments will most likely not solve your problem.

In any case I’d highly suggest to either respect and consider the hints that were provided here by others because they have more clue what they are talking about or inform yourself better in advance by reading the blog/forum/general coding info. Just telling testers ‘I want you to test that and that’ and devs ‘I want a dev to look into sth sth’ in bold letters is not a proper way of communication.

‘I want a dev to look into sth sth’ in bold letters i

Not necessarily a developer, I wanted literally any regular user with a Windows PC to compare performance between DX11 and OpenGL renderer, or better, compare Windows and Linux performance on the same computer.

Perhaps it is a bug specific to Linux . Does the "None" renderer truly bypass all graphics stack? If it does, then there is no chance that AMDGPU/mesa/LLVM graphics pipeline could be causing high CPU usage for this game. This was one of my original thoughts but it seems unlikely. I have edited my posts and this issue accordingly.

Obviously a developer actually debugging this game and seeing what causes performance impacts would be great. I do not think I'm entitled to any open-source developer's time.

If you have sensed a defensive or entitled attitude from me, I believe it is because I preemptively do not want to be accused of just having a poorly performing system due to misconfiguration or PEBKAC.

I believe the bad performance in this specific game is abnormal and due to a software bug, likely in an area of PCSX2 which could use optimization or a fix.

That is why I made this. I want PCSX2 to be better for everyone. I was not aware no one even touched the core in years and no one is around that can.

Im on windows and can confirm its not exclusive to Linux

https://www.youtube.com/watch?v=qJY5JiCC5cw

A video from 2011 with a weak processor running this at 60FPS with EE at 50-90%, in this same area I have EE at 100% with 40-55FPS.

Somewhere along the line, something went wrong...

Maybe I should try an ancient build of PCSX2 from 2011 or 2012? It probably won't even compile.

Even modern Windows builds of PCSX2 seem to run this better through Wine than native Linux.

All tests with null renderer.

PCSX2 0.9.8 (~2011) through Wine

  • Main menu
  • 60 FPS : 80-85% EE

PCSX2 git or 1.4 Linux

  • Main menu
  • 45-50 FPS : 100% EE

PCSX2 git through Wine

  • Main menu
  • 60 FPS : 80-90% EE

To me the only difference is using Wine is quicker. The 2011 build and latest git through Wine looks the same to me.

What ref said.
Also, I'm wondering if this isn't related to #2648

No. Issue is mesa which isn't multi-threaded well. I sent some patches year ago. It was not merged. And I didn't have time to bother people to merge them.

So instead wine take care of multi-threading

Or it is due to the different threading model. But Mesa should be fixed first

Could this also help?

Was this page helpful?
0 / 5 - 0 ratings