hacks tab | advanced tab |
---|---|
Displayed with default settings for both tabs. |
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
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
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.
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 |
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 |
*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 |
*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 |
*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 |
*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 |
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 |