libretro / libretro/parallel-n64

Slower than usual performance using Angrylion

Open
#253 20 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
407
Forks
151
Avg merge
11h 53m
Merged PRs (30d)
11

Description

Now, I know Angrylion is a slow plugin by its very nature, and very few people have the computing horsepower needed to run it at full speed on most games, but the libretro version actually performs significantly worse than the zilmar spec version. Even with the VI filters off, I routinely get 10 to 20 less FPS using Angrylion in conjunction with the CXD4 RSP plugin than using the same combination in Project64 2.2, Mupen64 0.5, and even an old version of Mupen64Plus from when it still used the zilmar spec. All three of those emulators perform very similarly, only varying by a VI/s or two.

Now I thought, maybe the zilmar spec versions of both Angrylion and CXD4 have gotten some performance bumps by HatCat somewhere along the way that did not make it into libretro, so I even went through the trouble of finding old versions of those plugins. Indeed, using the first release of HatCat's RSP plugin did result in a drop in performance (older versions of his fork of Angrylion's plugin yielded no appreciable drop), but only by about 6 to 10 VI/s, still nowhere near as slow as their libretro counterparts.

My main benchmark for testing was two screens in Mario 64: the very first screen after you select your file and Mario is standing outside the castle, and the screen as soon as you enter the castle. The latter was most informative, as it's a rare screen where I actually just barely get full speed using the zilmar spec plugins, whereas the libretro version is nearly twice as slow, getting me around 34fps. The outside part is compared here:

fugg

Not as much difference here as in the screen inside the castle for whatever reason, but still significant.

Another game I tested was Starcraft 64, where I expected to maybe get full speed with libretro since it's 2D and all. Once again, there was a significant difference: the zilmar spec version gets full speed in-game, whereas libretro only gets around 45fps.

Any thoughts as to what could possibly account for such a difference in performance?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source file or test is named. Start by reproducing the Mario 64 castle and Starcraft 64 comparisons with the libretro and zilmar-spec Angrylion/CXD4 configurations, then inspect the relevant performance paths and measure the difference. Done means the reported gap is explained and the libretro configuration's performance is verified against those cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.