Skip to content

Instantly share code, notes, and snippets.

@dvessel
Last active May 22, 2022 21:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dvessel/27bc31f0e75b57c43ac02b6a1f41ea4a to your computer and use it in GitHub Desktop.
Save dvessel/27bc31f0e75b57c43ac02b6a1f41ea4a to your computer and use it in GitHub Desktop.

Tested Settings

hacks tab advanced tab
Graphic options, hacks tab. Displayed with default settings for both tabs. Graphic options, advanced tab.

Recommended settings

Tested on a 2021 16" MacBook Pro M1 Max. These settings should apply to other M1 Mac's, relatively speaking.

  • Skip EFB Access from CPU
  • Ignore Format Changes
  • Store EFB Copies to Texture Only
  • Defer EFB Copies to RAM
  • Texture Cache Accuracy: Fast
  • GPU Texture Decoding
  • Store XFB Copies to Texture Only
  • Fast Depth Calculation
  • Disable Bounding Box
  • Defer EFB Cache Invalidation
  • Manual Texture Sampling

Other settings

These should be set according to your machine's capabilities and preferences. Some should be always set. The following are what I used for testing.

  • Vulkan Backend should be used.
  • V-Sync cannot be disabled on an M1 and disabling it will throw-off frame pacing.
  • Hybrid Ubershaders.
  • 6x video scaling set for testing. Usually set to auto.
  • Anisotropic Filtering: 16x
  • Post-Processing: FXAA
  • Per-Pixel Lighting
  • Force 24-Bit Color
  • Disable Copy Filter

Notes

The numbers listed below are frame render times in milliseconds. A game running at 60fps must render a frame in under 16.666 ms.

Standard deviation (stddev) is the scatteredness or deviation from the average frame time (median). The lower the better which means that the framerate will more likely be consistent.

"Safe EFB Copies to RAM" depends on "EFB Copies to Texture and RAM" so that test enables both.

F-Zero GX

setting min max median stddev
4061 samples Defaults 3.483 22.878 8.353 2.631
EFB Access from CPU 3.361 21.973 8.308 2.581
EFB Format Changes 3.302 20.555 8.315 2.572
EFB Copies to Texture and RAM 3.490 25.879 8.506 2.805
^+Safe EFB Copies to RAM 3.520 23.948 8.285 2.613
Safe Texture Cache Accuracy 3.570 21.417 8.435 2.624
GPU Texture Decoding 3.573 34.815 8.444 2.849
XFB Copies to Texture and RAM 3.541 19.530 8.339 2.581
πŸ‘ŽπŸ» Accurate Depth Calculation 3.620 22.880 9.521 3.232
Bounding Box 3.393 22.731 8.516 2.628
Defer EFB Cache Invalidation 3.382 21.965 8.481 2.588
πŸ‘ŽπŸ» Manual Texture Sampling 4.154 298.278 15.448 10.434

Ikaruga

setting min max median stddev
8265 samples Defaults 1.792 612.359 6.314 7.067
EFB Access from CPU 1.947 605.298 6.287 6.985
EFB Format Changes 1.812 627.774 6.191 7.241
EFB Copies to Texture and RAM 1.748 597.300 6.170 6.910
^+Safe EFB Copies to RAM 1.905 616.505 6.088 7.118
Safe Texture Cache Accuracy 1.757 620.177 6.224 7.161
GPU Texture Decoding 1.777 677.292 6.332 7.762
XFB Copies to Texture and RAM 1.993 667.622 6.435 7.640
Accurate Depth Calculation 1.864 632.073 6.220 7.384
Bounding Box 1.884 621.203 6.278 7.161
Defer EFB Cache Invalidation 1.825 627.694 6.419 7.228
Manual Texture Sampling 2.270 625.707 6.648 7.114

The Legend of Zelda - The Wind Waker

*Required and forced on within GZL.ini so it was enabled for all benchmark runs.

setting min max median stddev
3886 samples Defaults 6.816 37.508 12.508 2.785
*EFB Access from CPU 7.776 34.764 12.585 2.850
EFB Format Changes 5.773 34.221 12.634 2.888
*EFB Copies to Texture and RAM 6.742 35.902 12.843 2.859
πŸ‘ŽπŸ» ^+Safe EFB Copies to RAM 4.973 43.923 14.626 2.969
Safe Texture Cache Accuracy 7.124 56.293 12.744 2.942
GPU Texture Decoding 5.998 37.192 12.601 2.834
XFB Copies to Texture and RAM 6.241 38.295 12.612 2.815
Accurate Depth Calculation 5.839 330.522 13.245 11.706
Bounding Box 6.348 161.427 13.112 6.282
Defer EFB Cache Invalidation 5.705 39.280 12.562 2.809
πŸ‘ŽπŸ» Manual Texture Sampling 9.004 589.913 17.542 18.587

Metroid Prime

*Forced to mid accuracy within GM8.ini. Safe setting was explicitly tested and mid everywhere else.

setting min max median stddev
5863 samples Defaults 5.181 47.931 9.281 2.051
EFB Access from CPU 4.583 45.312 9.189 2.064
EFB Format Changes 4.883 47.672 9.517 2.183
EFB Copies to Texture and RAM 5.173 45.037 9.382 2.099
^+Safe EFB Copies to RAM 5.093 47.012 9.348 2.109
*Safe Texture Cache Accuracy 5.390 47.401 9.790 2.037
GPU Texture Decoding 4.960 49.742 9.567 2.196
XFB Copies to Texture and RAM 4.910 46.817 9.456 2.059
πŸ‘ŽπŸ» Accurate Depth Calculation 4.817 294.233 11.557 14.565
Bounding Box 5.124 930.508 10.045 15.481
Defer EFB Cache Invalidation 5.197 49.714 9.695 2.101
πŸ‘ŽπŸ» Manual Texture Sampling 7.058 620.190 16.296 33.849

Star Wars - Rogue Squadron II - Rogue Leader

*Required and forced on within GSW.ini so it was enabled for all benchmark runs.

setting min max median stddev
2882 samples Defaults 10.262 40.024 15.678 2.532
EFB Access from CPU 10.567 37.118 15.797 2.549
*EFB Format Changes 10.295 37.311 15.597 2.497
*EFB Copies to Texture and RAM 11.165 37.904 16.390 2.496
πŸ‘ŽπŸ» ^+Safe EFB Copies to RAM 12.547 49.221 21.743 5.940
πŸ‘ŽπŸ» Safe Texture Cache Accuracy 11.691 55.696 30.183 10.356
GPU Texture Decoding 10.674 44.657 16.029 2.712
XFB Copies to Texture and RAM 10.595 38.018 15.815 2.516
πŸ‘ŽπŸ» Accurate Depth Calculation 11.004 44.065 16.683 2.814
Bounding Box 10.735 37.037 15.809 2.522
Defer EFB Cache Invalidation 10.662 39.142 15.660 2.534
πŸ‘ŽπŸ» Manual Texture Sampling 12.435 49.174 24.001 3.724

SoulCalibur II

*Outdated texture cache accuracy set in GRS.ini. You can override it to "fast" for performance.

setting min max median stddev
4241 samples Defaults 5.406 40.895 9.748 1.326
EFB Access from CPU 5.411 38.334 9.772 1.370
EFB Format Changes 5.396 37.941 9.770 1.352
EFB Copies to Texture and RAM 5.325 40.494 9.845 1.304
^+Safe EFB Copies to RAM 6.182 38.766 10.533 1.323
*Safe Texture Cache Accuracy 5.310 38.459 9.763 1.259
GPU Texture Decoding 5.309 38.836 9.806 1.322
XFB Copies to Texture and RAM 5.404 38.961 9.860 1.269
πŸ‘ŽπŸ» Accurate Depth Calculation 6.134 147.391 12.321 3.104
Bounding Box 5.512 144.700 9.859 2.447
Defer EFB Cache Invalidation 5.331 40.920 9.847 1.367
πŸ‘ŽπŸ» Manual Texture Sampling 5.367 39.854 12.278 1.442

Viewtiful Joe

setting min max median stddev
6580 samples Defaults 2.215 36.216 5.623 1.846
EFB Access from CPU 2.472 38.074 5.689 1.872
EFB Format Changes 2.462 41.746 5.647 1.862
EFB Copies to Texture and RAM 2.608 36.895 5.651 1.860
^+Safe EFB Copies to RAM 2.143 38.495 5.674 1.860
Safe Texture Cache Accuracy 2.179 36.988 5.788 1.722
GPU Texture Decoding 2.176 36.991 5.636 1.844
XFB Copies to Texture and RAM 2.592 36.120 5.671 1.862
Accurate Depth Calculation 2.073 37.114 5.779 1.890
Bounding Box 2.255 37.017 5.739 1.899
Defer EFB Cache Invalidation 2.573 36.542 5.683 1.867
πŸ‘ŽπŸ» Manual Texture Sampling 2.215 45.538 7.155 2.168
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment