libretro / desmume

DeSmuME is a Nintendo DS emulator
http://desmume.org
GNU General Public License v2.0
35 stars 33 forks source link

Performance Comparision between Standalone and Libretro Version #14

Closed Papermanzero closed 6 years ago

Papermanzero commented 6 years ago

I setup both Desmume standalone and the libretro version. The standalone version reaches more FPS than the libretro version. The libretro version has 10 - 15 FPS difference compared to the standalone version. I compared the windows versions of both emulators and the latest releases.

bearoso commented 6 years ago

You really can't compare performance unless you match settings precisely. You'll have to make sure to have the emulator options exactly the same, exact same version of the emulator, then turn off all of the libretro post-processing.

Then there's things like color conversion that happen in the libretro port because it doesn't support the precise 16-bit format Desmume uses, or the fact that it's compiled with a different compiler, and maybe the standalone version uses profile-guided optimization.

Plus, your 10-15 fps measurement doesn't have a point of reference. If we're talking 15fps on the libretro version vs 30fps on standalone, that's much bigger than 115fps vs 130fps.

Basically, we'd need more information to pinpoint why it's slower, or if the performance discrepancy makes sense given what we know.

Papermanzero commented 6 years ago

I see. I tried to compare both latest builds and I am comparing 30FPS with 15 to 20 FPS. There are already some differences in the settings. Libretro uses 32bit color depth compared to standalone which only supports 24bit. But even going to 16bit does not eliminate the differences.

I will try to compare each option and write the results.

bearoso commented 6 years ago

24 and 32 bit are the same thing in this case, so don't worry about that. 30fps to 15fps is a significant difference, but you shouldn't be running at 30fps, either.

Desmume standalone is built with MSVC, and has full link-time optimization and such run on it. The libretro core is built with mingw64 and only uses -O2 optimization.

You might be able to get some leverage by tweaking the build process. I'm not seeing a problem with -O3, so I'll go ahead and bump that up.

Papermanzero commented 6 years ago

Can be closed. Tried the latest release and the performance is the same as standalone.