Metroid Prime Trilogy ini, fix performance, outdated settings.
This reverts #8072 and removes an outdated setting.
Disabling DeferEFBCopies has a big performance cost. Corrupt loading screen it causes is only visible for half a second on initial load. Nothing is affected in game.
https://user-images.githubusercontent.com/126473/195886057-4206753b-2553-40a4-833b-1bcd0492a78b.mp4
These render times are from MP1 on Talon Over World just looking around. Staring at the sky with the rain fall is particularly taxing. MP2 is also stressed when looking at a dark portal. This is through Metal, M1 Mac.
DeferEFBCopies off:
1/3 metal.............11.793ms
Run completed. Sampled 3987 frames.
2/3 metal.............12.093ms
Run completed. Sampled 3987 frames.
3/3 metal.............12.058ms
Run completed. Sampled 3987 frames.
3987 frames 11.793ms metal pass 1
3987 frames 12.093ms metal pass 2
3987 frames 12.058ms metal pass 3
11961 frames 11.981ms complete
DeferEFBCopies on:
1/3 metal..........8.746ms
Run completed. Sampled 3987 frames.
2/3 metal.........7.746ms
Run completed. Sampled 3987 frames.
3/3 metal..........8.713ms
Run completed. Sampled 3987 frames.
3987 frames 8.746ms metal pass 1
3987 frames 7.746ms metal pass 2
3987 frames 8.713ms metal pass 3
11961 frames 8.402ms complete
It’s not worth fixing the small blip on the loading screen.
Enabling XFBToTextureEnable no longer causes a magenta loading screen.
Not from #8072 but ImmediateXFBEnable is outdated. No ill effects on or off.
another run comparing latest master. same scene but keeping the camera on the sky.
defer off
1/5 metal............22.944ms
Run completed. Sampled 1941 frames.
2/5 metal.............22.790ms
Run completed. Sampled 1941 frames.
3/5 metal.............23.045ms
Run completed. Sampled 1941 frames.
4/5 metal............22.752ms
Run completed. Sampled 1941 frames.
5/5 metal.............24.111ms
Run completed. Sampled 1941 frames.
1941 frames 22.944ms metal pass 1
1941 frames 22.790ms metal pass 2
1941 frames 23.045ms metal pass 3
1941 frames 22.752ms metal pass 4
1941 frames 24.111ms metal pass 5
9705 frames 23.128ms complete
defer on
1/5 metal........13.860ms
Run completed. Sampled 1941 frames.
2/5 metal........13.539ms
Run completed. Sampled 1941 frames.
3/5 metal........13.652ms
Run completed. Sampled 1941 frames.
4/5 metal........12.766ms
Run completed. Sampled 1941 frames.
5/5 metal........13.777ms
Run completed. Sampled 1941 frames.
1941 frames 13.860ms metal pass 1
1941 frames 13.539ms metal pass 2
1941 frames 13.652ms metal pass 3
1941 frames 12.766ms metal pass 4
1941 frames 13.777ms metal pass 5
9705 frames 13.519ms complete
This can potentially cause other issues. I'd want this heavily tested before we enable a setting that causes any visual error.
Yeah, apparently the loading corruption is different on other systems. What I’ve described is specific to MacOS Metal.
The current settings were chosen for a reason. I will double check on my system, but unless the issues can be rectified some other way, I think this is a no-go. Users who want performance in exchange for potential issues can disable the settings themselves or use primehack.
For reference, this is from infirit on discord running Arch on a rx590. Mentions a lot of flickering. Again, this is the intro only. In game is fine. MP3 standalone has no such setting. The forced settings is there only for the intro.
XFB settings can change how it’s corrupted but I have not run into this.
While it’s not fixed without depending on defer EFB, it should be noted in the Wiki about the performance hit.


Is this still relevant? I think this can be closed, and regarding the wiki: I'm not opposed to having a bit on the wiki about 'better performance by tweaking xyz at the cost of abc visual degradation' being mentioned.
This may need to be considered again, since a user on Discord could not run the game at full speed (when going underwater), but could with DeferEFBCopies enabled. https://discord.com/channels/521709831132807179/627990242498183234/1440894462149656708