You are not logged in.

Read the FAQ and Knowledge Base before posting.
We won't make a 3DS/2DS emulator.



#1 2017-06-06 13:23:06

mgitkun
Member
Registered: 2017-06-06
Posts: 43

Banding on Textures and Performance Regression

I went from using the month old 126db2d6 autobuild to the most recent d6872769, seems like something was reverted because the textures have banding like they did prior to build 126db2d6.
Since there've only been two commits I assume it was 50390c6f, so not too concerned about it.
126db2d6
O4A6uAql.png
d6872769
q6nl0rAl.png



More importantly the performance seems much worse, it went from nearly playable at 3x native in 3d heavy titles (40-60fps with drops), and full speed no framedrops whatsoever at 2x native, to not even being consistently full speed at native resolution (occasional frame drops and lag spikes with frequent audio artifacts because of aforementioned lag spikes and frame drops) with all the other settings staying the same.

Switching to DirectDraw display method makes it perform noticeably better but its performance is still nowhere near what it was in the previous build with OpenGL.

I'm sure I could get better performance if I enabled dynamic recompiler, I more so wanted to know whether this performance regression is expected with the current build or if my experience is an outlier.


Should be noted that I only tried it with the two titles I've been playing, KH 358/2 Days and Re:Coded.
 
EDIT: I remembered that I had two cores disabled for DeSmuME because I'd been recording with fraps and wanted to see whether I'd get better performance from reserving two cores for recording/compression and two for emulation. wink
Upon re-enabling those cores performance went up (obviously) but the performance disparity between the two builds is still evident and significant, it's also strange and notable that the previous build had been running with two cores disabled as well but did so with a much smaller impact on performance.   

When I say it's still significant I mean that running a movie on the newer d6872769 build at 2x gives me 45-52fps consistently and has a notable lag spike when entering new zones where the level must be loaded.
The 126db2d6 build gives me a constant 60fps in that same movie with those same settings and while it still has lag spikes when loading into a new zone the lag spike is much shorter.

In order to express how laggy it was here's the console output for every time it stretched the audio to compensate for lag for each of the builds during the same 12856 frame movie in KH 358/2 days.

In this movie you load into the main menu -> load a save file -> load into the map -> speak to an npc -> load into a selection menu -> load into a new map -> run through zone 1 of that map -> load into zone 2 -> complete an objective in zone 2 with various enemies spawning around you -> load into zone 3 -> complete an objective in zone 3 with various enemies spawning around you -> load into zone 2 -> run through zone 2 -> load into zone 1 -> return to the first map -> and you end with speaking to various npcs| At this point I pause the emulator. 

I can include the .dsm movie and the .sav which contains the save files it depends on, the rom used was the US release of 358/2 days.
Both builds were run at these settings with the exception of scaling which was set to 2x as I said previously.


console output for d6872769

Slot1 auto-selected device type: Retail MC+ROM
Slot2 auto-selected device type: None (0xFF)
BackupDevice: size = 512 Kbit
CPU mode: Interpreter
Already decrypted.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 18% of packets stretched.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 61% of packets stretched.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 89% of packets stretched.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 87% of packets stretched.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 69% of packets stretched.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 56% of packets stretched.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 49% of packets stretched.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 53% of packets stretched.
Emulation paused

console output for 126db2d6

Slot1 auto-selected device type: Retail MC+ROM
Slot2 auto-selected device type: None (0xFF)
BackupDevice: size = 512 Kbit
CPU mode: Interpreter
Already decrypted.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 11% of packets stretched.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 25% of packets stretched.
 * SPU2 > Timestretch Stats > 0% of packets stretched.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 6% of packets stretched.
 * SPU2 > Underrun compensation (3 packets buffered)
 * SPU2 > Timestretch Stats > 3% of packets stretched.
 * SPU2 > Timestretch Stats > 0% of packets stretched.
 * SPU2 > Timestretch Stats > 0% of packets stretched.
Emulation paused

Just so this isn't disregarded because of my edit, that console output and those fps numbers from the movie are from AFTER I re-enabled those two cores, before I did so the 126db2d6 build was in a very similar spot performance wise whereas the d6872769 build was much worse.

PC specs:
i5 2500k @4ghz
GTX 480
8GB 1333mhz ram
TX650 v2 
I realize my pc is getting dated at this point but I was just surprised that performance regressed so heavily.

Last edited by mgitkun (2017-06-06 17:07:29)


i5 2500K - CPU | GTX 480 - GPU | 8GB - RAM | TX650 - PSU | Windows 7 x64 - OS

Offline

#2 2017-06-06 17:05:03

zeromus
Radical Ninja
Registered: 2009-01-05
Posts: 6,169

Re: Banding on Textures and Performance Regression

The only commits have been
1. A revert of higher definition color, which must stay reverted until rogerman finishes developing it. You happened to test one of a very few commits that ever had the higher definition color
2. A major slowdown to cheats while the JIT is enabled.

So stop using cheats or stop using the jit.

Offline

#3 2017-06-06 17:36:21

mgitkun
Member
Registered: 2017-06-06
Posts: 43

Re: Banding on Textures and Performance Regression

zeromus wrote:

1. A revert of higher definition color, which must stay reverted until rogerman finishes developing it. You happened to test one of a very few commits that ever had the higher definition color

Guess I lucked out then smile .

Until recently I'd been using the X432R fork which while having better performance had a number of unattractive visual bugs (clipping mostly) that weren't being fixed since AFAIK the fork hasn't been updated in years, somebody brought to my attention there was still development being done on the main project (since it hadn't had any stable releases I was under the impression development had stopped) and upon trying it (126db2d6) I saw that 99.99% of the bugs were gone and not only that there were a number of new features that made the games look leagues better beyond just fixing the clipping issues (e.g. texture deposterization, smoothing, and scaling as well as the better expression of colors preventing banding).       

zeromus wrote:

2. A major slowdown to cheats while the JIT is enabled.

So stop using cheats or stop using the jit.

I'm not using cheats, I'm not even using save states, aside from graphics I'm going for the most vanilla experience possible.


i5 2500K - CPU | GTX 480 - GPU | 8GB - RAM | TX650 - PSU | Windows 7 x64 - OS

Offline

#4 2017-06-06 17:44:38

zeromus
Radical Ninja
Registered: 2009-01-05
Posts: 6,169

Re: Banding on Textures and Performance Regression

Wait a minute, the commit that slowed down the cheats wasn't one of those two.
The performance difference must be due to the color depth stuff.
Therefore it will be fixed when the color depth stuff is fixed.

Offline

#5 2017-06-06 17:58:22

mgitkun
Member
Registered: 2017-06-06
Posts: 43

Re: Banding on Textures and Performance Regression

zeromus wrote:

Wait a minute, the commit that slowed down the cheats wasn't one of those two.
The performance difference must be due to the color depth stuff.
Therefore it will be fixed when the color depth stuff is fixed.

Ah okay, thanks for clearing it up. 
I saw the commits but with my knowledge I only got a vague idea of what was changed.

I'll just stick to build 126db2d6 until that happens then, I've yet to have any issues with it other than the built-in capture (ironically enough) which when making this post I saw was fixed by reverting the color commit.

Last edited by mgitkun (2017-06-06 17:58:41)


i5 2500K - CPU | GTX 480 - GPU | 8GB - RAM | TX650 - PSU | Windows 7 x64 - OS

Offline

Board footer

Powered by FluxBB