I've done some more testing on the RPi zero with the new DRAW_SINGLE_THREAD version to compare performance while dragging both rulers (status hud disabled) with -DFAST_DRAG=0 and -DFAST_DRAG=1
OFFLINE
-DFAST_DRAG=0
1x Double 23.0 fps
2x 19.5 fps
-DFAST_DRAG=1
1x Double 23.3 fps
2x 19.2 fps
ONLINE
-DFAST_DRAG=0
1x Double 11.5 fps
1x 15.9 fps
-DFAST_DRAG=1
1x Double 11.3 fps
1x 16.0 fps
As you can see with DRAW_SINGLE_THREAD, frame rate averages are virtually identical with -DFAST_DRAG=0 or -DFAST_DRAG=1
I've gone back and forth between each to subjectively compare the experience for stuttering and frame rate consistency. Offline there was no benefit to fast drag. Online I think it now slightly reduces the experience: With fast drag there's stuttering while dragging slowly but freezes for a moment while dragging quickly, whereas without fast drag enabled it doesn't freeze.
My recommendations:
RPi 1, RPi Zero (W), RPi Compute Module 1
- Single thread
- Online: No drag
- Offline/Freeze frame: Normal drag
All other RPi models
- Multi thread
- Normal drag both online and offline
Not the conclusion I'd expected to come to as fast drag had measurably helped with the previous version, but it's good that this work around is no longer necessary thanks to the improvements from single threading for RPi zero.
DEFAULT_FLAGS='-DNO_DRAG=0 -DFAST_DRAG=0 -DDRAW_SINGLE_THREAD=1 -DDEFAULT_FONT=0 -DDEFAULT_COLORMAP=4 -DROTATION=0 -DDISPLAY_WIDTH=1920 -DDISPLAY_HEIGHT=1080 -DUSE_CELSIUS=1 -DHUD_ALPHA=0.4'
Offline
Startup timings: s 1.880, var 0.712, suo 0.357, pa 1.379, pkb 17.916, nw 1421.720, run 0.638, total 1444.602
1x Double, Dragging both rulers around with status hud disabled
main:thrm:img (1.00 : 0.17 : 0.82) scale 1 fps 22.2 read 0.04 rot 7.05 : [47.32 | 8.00 | 38.81] + 10.88 58.27 0.07 BOTH OFF : h 0.00 v 28.30
main:thrm:img (1.00 : 0.19 : 0.80) scale 1 fps 22.7 read 0.01 rot 4.40 : [24.67 | 4.77 | 19.69] + 6.05 30.76 0.04 BOTH OFF : h 0.00 v 14.07
main:thrm:img (1.00 : 0.19 : 0.80) scale 1 fps 22.9 read 0.01 rot 4.27 : [24.61 | 4.76 | 19.60] + 6.07 30.74 0.06 BOTH OFF : h 0.00 v 14.07
main:thrm:img (1.00 : 0.20 : 0.79) scale 1 fps 22.9 read 0.01 rot 4.26 : [24.84 | 4.86 | 19.74] + 6.13 31.02 0.05 BOTH OFF : h 0.00 v 14.26
main:thrm:img (1.00 : 0.20 : 0.79) scale 1 fps 23.0 read 0.01 rot 4.16 : [24.60 | 4.87 | 19.53] + 6.03 30.67 0.04 BOTH OFF : h 0.01 v 14.16
main:thrm:img (1.00 : 0.20 : 0.80) scale 1 fps 23.0 read 0.01 rot 4.31 : [24.63 | 4.80 | 19.60] + 6.10 30.77 0.04 BOTH OFF : h 0.00 v 14.09
main:thrm:img (1.00 : 0.19 : 0.80) scale 1 fps 23.0 read 0.01 rot 4.29 : [24.83 | 4.80 | 19.81] + 6.12 30.99 0.04 BOTH OFF : h 0.00 v 14.35
2x Dragging both rulers around with status hud disabled
main:thrm:img (1.00 : 0.03 : 0.96) scale 2 fps 19.2 read 0.01 rot 4.24 : [24.45 | 0.62 | 23.58] + 14.08 38.57 0.04 BOTH OFF : h 0.00 v 13.89
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 19.3 read 0.01 rot 4.18 : [24.41 | 0.58 | 23.60] + 13.95 38.41 0.04 BOTH OFF : h 0.00 v 14.22
main:thrm:img (1.00 : 0.02 : 0.96) scale 2 fps 19.4 read 0.01 rot 4.25 : [24.85 | 0.60 | 23.98] + 13.70 38.59 0.04 BOTH OFF : h 0.00 v 14.27
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 19.5 read 0.01 rot 4.20 : [24.63 | 0.59 | 23.81] + 13.69 38.36 0.04 BOTH OFF : h 0.00 v 14.08
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 19.5 read 0.01 rot 4.40 : [24.55 | 0.58 | 23.76] + 13.84 38.43 0.04 BOTH OFF : h 0.00 v 13.94
main:thrm:img (1.00 : 0.02 : 0.96) scale 2 fps 19.5 read 0.01 rot 4.19 : [24.71 | 0.61 | 23.79] + 13.85 38.61 0.04 BOTH OFF : h 0.00 v 14.35
main:thrm:img (1.00 : 0.03 : 0.96) scale 2 fps 19.5 read 0.01 rot 4.05 : [24.72 | 0.64 | 23.85] + 13.84 38.60 0.04 BOTH OFF : h 0.00 v 14.32
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 19.5 read 0.01 rot 4.34 : [24.86 | 0.56 | 24.06] + 13.93 38.84 0.04 BOTH OFF : h 0.00 v 14.29
main:thrm:img (1.00 : 0.02 : 0.96) scale 2 fps 19.5 read 0.01 rot 4.11 : [25.53 | 0.62 | 24.62] + 13.48 39.04 0.04 BOTH OFF : h 0.00 v 15.23
Online
Startup timings: s 2.021, var 0.571, suo 0.410, pa 371.017, pkb 0.712, nw 1546.901, run 0.744, total 1922.376
1x Double, Dragging both rulers around with status hud disabled
main:thrm:img (1.00 : 0.24 : 0.75) scale 1 fps 11.4 read 3.78 rot 5.71 : [89.79 | 21.90 | 67.53] + 7.65 97.51 0.07 BOTH OFF : h 0.01 v 19.61
main:thrm:img (1.00 : 0.25 : 0.75) scale 1 fps 11.5 read 1.85 rot 4.48 : [73.41 | 18.06 | 55.16] + 6.62 80.08 0.05 BOTH OFF : h 0.00 v 14.73
main:thrm:img (1.00 : 0.24 : 0.75) scale 1 fps 11.5 read 1.88 rot 4.59 : [73.41 | 17.93 | 55.28] + 6.57 80.04 0.05 BOTH OFF : h 0.00 v 14.73
main:thrm:img (1.00 : 0.24 : 0.75) scale 1 fps 11.6 read 1.88 rot 4.58 : [73.44 | 17.89 | 55.36] + 6.68 80.18 0.06 BOTH OFF : h 0.00 v 14.75
main:thrm:img (1.00 : 0.24 : 0.75) scale 1 fps 11.5 read 1.90 rot 5.01 : [72.89 | 17.75 | 54.91] + 6.50 79.45 0.05 BOTH OFF : h 0.00 v 14.45
main:thrm:img (1.00 : 0.25 : 0.75) scale 1 fps 11.5 read 1.93 rot 4.64 : [72.91 | 17.97 | 54.70] + 6.55 79.51 0.05 BOTH OFF : h 0.00 v 14.33
main:thrm:img (1.00 : 0.24 : 0.75) scale 1 fps 11.5 read 1.85 rot 4.88 : [73.26 | 17.86 | 55.18] + 6.55 79.87 0.06 BOTH OFF : h 0.00 v 14.51
2x Dragging both rulers around with status hud disabled
main:thrm:img (1.00 : 0.14 : 0.86) scale 2 fps 5.5 read 2.88 rot 7.42 : [205.74 | 28.23 | 177.11] + 16.12 221.97 0.11 BOTH OFF : h 0.00 v 22.07
main:thrm:img (1.00 : 0.11 : 0.88) scale 2 fps 5.5 read 1.92 rot 4.12 : [158.58 | 17.98 | 140.32] + 12.46 171.09 0.05 BOTH OFF : h 0.00 v 10.00
1x Dragging both rulers around with status hud disabled - stuttering / inconsistent movement but still better while dragging quickly compared to the 'fast drag' option
main:thrm:img (1.00 : 0.26 : 0.73) scale 1 fps 15.9 read 2.47 rot 5.83 : [71.48 | 18.81 | 52.36] + 4.66 76.23 0.08 BOTH OFF : h 0.00 v 15.67
main:thrm:img (1.00 : -0.00 : 1.00) scale 1 fps 15.9 read 1.98 rot 4.61 : [-8537.67 | 14.08 | -8551.96] + 3.55 -8534.06 0.06 BOTH OFF : h 0.00 v 10.18
main:thrm:img (1.00 : 0.27 : 0.73) scale 1 fps 15.9 read 1.95 rot 4.50 : [51.72 | 14.01 | 37.51] + 3.52 55.30 0.05 BOTH OFF : h 0.00 v 9.98
main:thrm:img (1.00 : 0.27 : 0.73) scale 1 fps 15.9 read 1.93 rot 4.50 : [52.04 | 14.00 | 37.84] + 3.52 55.61 0.05 BOTH OFF : h 0.00 v 10.28
DEFAULT_FLAGS='-DNO_DRAG=0 -DFAST_DRAG=1 -DDRAW_SINGLE_THREAD=1 -DDEFAULT_FONT=0 -DDEFAULT_COLORMAP=4 -DROTATION=0 -DDISPLAY_WIDTH=1920 -DDISPLAY_HEIGHT=1080 -DUSE_CELSIUS=1 -DHUD_ALPHA=0.4'
Offline
Startup timings: s 15.927, var 0.636, suo 7.181, pa 1.102, pkb 16.664, nw 1488.083, run 0.527, total 1530.120
1x Double, Dragging both rulers around with status hud disabled
main:thrm:img (1.00 : 0.11 : 0.88) scale 1 fps 22.3 read 0.05 rot 10.91 : [114.21 | 12.28 | 100.99] + 45.92 160.23 0.10 BOTH OFF : h 0.00 v 61.77
main:thrm:img (1.00 : 0.21 : 0.78) scale 1 fps 22.7 read 0.01 rot 4.28 : [23.33 | 4.87 | 18.23] + 6.16 29.52 0.03 BOTH OFF : h 0.00 v 12.67
main:thrm:img (1.00 : 0.21 : 0.78) scale 1 fps 23.0 read 0.01 rot 4.38 : [22.82 | 4.72 | 17.87] + 6.13 28.99 0.04 BOTH OFF : h 0.00 v 12.40
main:thrm:img (1.00 : 0.21 : 0.78) scale 1 fps 23.1 read 0.01 rot 4.30 : [22.72 | 4.74 | 17.79] + 6.12 28.88 0.04 BOTH OFF : h 0.00 v 12.30
main:thrm:img (1.00 : 0.21 : 0.78) scale 1 fps 23.2 read 0.01 rot 4.50 : [23.08 | 4.85 | 18.04] + 6.16 29.28 0.04 BOTH OFF : h 0.00 v 12.39
main:thrm:img (1.00 : 0.21 : 0.78) scale 1 fps 23.3 read 0.01 rot 4.61 : [23.00 | 4.92 | 17.91] + 6.08 29.12 0.04 BOTH OFF : h 0.00 v 12.14
main:thrm:img (1.00 : 0.21 : 0.78) scale 1 fps 23.3 read 0.01 rot 4.49 : [22.90 | 4.91 | 17.81] + 6.14 29.07 0.04 BOTH OFF : h 0.00 v 12.18
main:thrm:img (1.00 : 0.21 : 0.78) scale 1 fps 23.3 read 0.01 rot 4.59 : [23.00 | 4.95 | 17.87] + 6.18 29.22 0.04 BOTH OFF : h 0.00 v 12.15
2x Dragging both rulers around with status hud disabled
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 18.4 read 0.00 rot 4.13 : [23.61 | 0.51 | 22.81] + 14.04 37.68 0.04 BOTH OFF : h 0.00 v 13.53
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 18.6 read 0.01 rot 4.12 : [24.42 | 0.55 | 23.60] + 13.90 38.36 0.04 BOTH OFF : h 0.00 v 14.36
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 18.8 read 0.00 rot 4.29 : [23.65 | 0.51 | 22.88] + 14.06 37.75 0.04 BOTH OFF : h 0.00 v 13.26
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 18.9 read 0.00 rot 4.09 : [23.79 | 0.53 | 23.03] + 14.13 37.96 0.04 BOTH OFF : h 0.00 v 13.85
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 19.0 read 0.01 rot 4.12 : [23.58 | 0.51 | 22.83] + 14.06 37.69 0.05 BOTH OFF : h 0.00 v 13.15
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 19.1 read 0.01 rot 4.09 : [23.62 | 0.52 | 22.83] + 13.88 37.55 0.04 BOTH OFF : h 0.00 v 13.22
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 19.2 read 0.01 rot 4.10 : [23.92 | 0.51 | 23.18] + 14.25 38.21 0.04 BOTH OFF : h 0.00 v 13.61
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 19.2 read 0.01 rot 4.06 : [23.71 | 0.51 | 22.96] + 14.06 37.81 0.04 BOTH OFF : h 0.00 v 13.42
main:thrm:img (1.00 : 0.02 : 0.97) scale 2 fps 19.2 read 0.00 rot 4.01 : [23.31 | 0.56 | 22.53] + 14.45 37.80 0.04 BOTH OFF : h 0.00 v 13.17
Online
Startup timings: s 1.900, var 0.684, suo 0.390, pa 264.882, pkb 8.979, nw 1513.572, run 0.649, total 1791.056
1x Double, Dragging both rulers around with status hud disabled - poor experience. recommend 'no drag'
main:thrm:img (1.00 : 0.23 : 0.76) scale 1 fps 11.3 read 3.49 rot 5.57 : [90.55 | 21.11 | 69.03] + 7.74 98.35 0.06 BOTH OFF : h 0.00 v 17.15
main:thrm:img (1.00 : 0.24 : 0.75) scale 1 fps 11.4 read 1.73 rot 4.45 : [74.61 | 18.08 | 56.31] + 6.58 81.24 0.06 BOTH OFF : h 0.00 v 11.96
main:thrm:img (1.00 : 0.23 : 0.76) scale 1 fps 11.3 read 1.75 rot 4.75 : [75.64 | 17.71 | 57.71] + 6.57 82.25 0.05 BOTH OFF : h 0.00 v 13.34
1x Dragging both rulers around with status hud disabled - stuttering while dragging slowely, freezes while dragging quickly
main:thrm:img (1.00 : 0.24 : 0.76) scale 1 fps 15.9 read 2.90 rot 8.41 : [111.15 | 26.17 | 84.57] + 8.02 119.25 0.09 BOTH OFF : h 0.00 v 26.77
main:thrm:img (1.00 : 0.27 : 0.73) scale 1 fps 16.0 read 1.80 rot 4.58 : [51.16 | 13.67 | 37.30] + 3.57 54.77 0.05 BOTH OFF : h 0.00 v 9.70
main:thrm:img (1.00 : 0.27 : 0.73) scale 1 fps 16.0 read 1.85 rot 4.40 : [51.59 | 13.78 | 37.57] + 3.49 55.13 0.05 BOTH OFF : h 0.00 v 10.02
main:thrm:img (1.00 : 0.27 : 0.73) scale 1 fps 16.0 read 1.82 rot 4.52 : [50.89 | 13.79 | 36.90] + 3.50 54.44 0.06 BOTH OFF : h 0.00 v 9.41