Slow scrolling with GPU rendering
Thanks for filing an issue! Please answer the questions below so I can help you.
- iTerm2 version: 3.2.0beta3
- OS version: 10.13.5 on MacBook Pro (15: 2017) 3.1GHz Core i7 with Radeon Pro 555 2048MB. Plugged in so should use discrete GPU
- Attach ~/Library/Preferences/com.googlecode.iterm2.plist here : (Had to remove attachment as it contains private info)
Detailed steps to reproduce the problem:
- cat a fairly long file, as a quick test. In my case, the file was 532,360 lines line, totalling 14,523,551 bytes.
What happened:
- With GPU rendering off the cat completes in approximately 3 seconds on a retina screen, slightly quicker on non-retina
- With GPU rendering on it takes 57s on retina and 91s on non-retina. In both cases the FPS meter showed 60fps. Total frames =
What should have happened:
- GPU rendering should have been as fast, or faster, than non-GPU rendering.
Performance stats:
Precise timers [driver 7]: Start-to-Start Time (ms):
[ 1, 5) 16 ( 16.0%) |************
[ 5, 8) 6 ( 6.0%) |****
[ 8, 12) 2 ( 2.0%) |*
[ 12, 16) 12 ( 12.0%) |*********
[ 16, 20) 25 ( 25.0%) |********************
[ 20, 23) 21 ( 21.0%) |****************
[ 23, 27) 16 ( 16.0%) |************
[ 27, 31) 2 ( 2.0%) |*
Count=2058 Sum=62738.45207691193 Mean=30.485 p_50=19.567 p_95=26.183
Precise timers [driver 7]: Histograms:
Global buffer sizes: No data
Global texture sizes: No data
Global wasted space: No data
iTermBackgroundColorRendererTransientState: buffer sizes: 0 8.0000 ▅ █ 96.0000 128 Count=86484 Mean=65.13556264742611 p50=96 p95=96 Sum=5633184
iTermBackgroundColorRendererTransientState: texture sizes: No data
iTermBackgroundColorRendererTransientState: wasted space: 0 0.0000 █ 0.0000 64 Count=28828 Mean=8.402941584570556 p50=0 p95=0 Sum=242240
iTermCopyBackgroundRendererTransientState: buffer sizes: 0 96.0000 █ 96.0000 96 Count=28828 Mean=96 p50=96 p95=96 Sum=2767488
iTermCopyBackgroundRendererTransientState: texture sizes: No data
iTermCopyBackgroundRendererTransientState: wasted space: No data
iTermCopyModeCursorRendererTransientState: buffer sizes: 0 8.0000 █ █ 96.0000 96 Count=57656 Mean=52 p50=8 p95=96 Sum=2998112
iTermCopyModeCursorRendererTransientState: texture sizes: No data
iTermCopyModeCursorRendererTransientState: wasted space: No data
iTermCopyToDrawableRendererTransientState: buffer sizes: 0 96.0000 █ 96.0000 96 Count=28828 Mean=96 p50=96 p95=96 Sum=2767488
iTermCopyToDrawableRendererTransientState: texture sizes: No data
iTermCopyToDrawableRendererTransientState: wasted space: No data
iTermCursorRendererTransientState: buffer sizes: 0 8.0000 █ ▅ 96.0000 96 Count=199604 Mean=40.89184585479249 p50=8 p95=96 Sum=8162176
iTermCursorRendererTransientState: texture sizes: No data
iTermCursorRendererTransientState: wasted space: No data
iTermFrameCursorRendererTransientState: buffer sizes: 0 8.0000 █ 96.0000 96 Count=50894 Mean=32.27979722560616 p50=8 p95=96 Sum=1642848
iTermFrameCursorRendererTransientState: texture sizes: No data
iTermFrameCursorRendererTransientState: wasted space: No data
iTermFullScreenFlashRendererTransientState: buffer sizes: No data
iTermFullScreenFlashRendererTransientState: texture sizes: No data
iTermFullScreenFlashRendererTransientState: wasted space: No data
iTermHighlightRowRendererTransientState: buffer sizes: 0 8.0000 █ 8.0000 8 Count=28828 Mean=8 p50=8 p95=8 Sum=230624
iTermHighlightRowRendererTransientState: texture sizes: No data
iTermHighlightRowRendererTransientState: wasted space: No data
iTermImageRendererTransientState: buffer sizes: 0 8.0000 █ 8.0000 8 Count=28828 Mean=8 p50=8 p95=8 Sum=230624
iTermImageRendererTransientState: texture sizes: No data
iTermImageRendererTransientState: wasted space: No data
iTermIndicatorRendererTransientState: buffer sizes: No data
iTermIndicatorRendererTransientState: texture sizes: No data
iTermIndicatorRendererTransientState: wasted space: No data
iTermMarginRendererTransientState: buffer sizes: 0 8.0000 █ ▄ 192.0000 192 Count=86484 Mean=72 p50=16 p95=192 Sum=6226848
iTermMarginRendererTransientState: texture sizes: No data
iTermMarginRendererTransientState: wasted space: No data
iTermMarkRendererTransientState: buffer sizes: 0 8.0000 ▆ █ 96.0000 96 Count=57656 Mean=52 p50=96 p95=96 Sum=2998112
iTermMarkRendererTransientState: texture sizes: No data
iTermMarkRendererTransientState: wasted space: No data
iTermTextRendererTransientState: buffer sizes: 0 1.0000 █ ▁▁ ▂ 114688.0000 114688 Count=142207 Mean=33446.63390691035 p50=32 p95=114688 Sum=4756345468
iTermTextRendererTransientState: texture sizes: 0 2304.0000 ▄ █ 9216.0000 9216 Count=115 Mean=7533.078260869565 p50=9216 p95=9216 Sum=866304
iTermTextRendererTransientState: wasted space: 0 0.0000 █ 52192.0000 114576 Count=84126 Mean=8200.065235480113 p50=0 p95=24640 Sum=689838688
Precise timers [driver 7]: Dropped frames:
0.1%
Precise timers [driver 7]: updateDisplay interval:
[ 2, 6) 3 ( 3.0%) |**
[ 6, 9) 0 ( 0.0%) |
[ 9, 13) 3 ( 3.0%) |**
[ 13, 17) 27 ( 27.0%) |********************
[ 17, 20) 18 ( 18.0%) |*************
[ 20, 24) 21 ( 21.0%) |***************
[ 24, 28) 19 ( 19.0%) |**************
[ 28, 31) 8 ( 8.0%) |*****
[ 31, 35) 1 ( 1.0%) |
Count=1774 Sum=37049.2399930954 Mean=20.885 p_50=20.513 p_95=29.036
Precise timers [driver 7]: Frames In Flight at Start:
[ 0, 0) 8 ( 8.0%) |***
[ 0, 1) 0 ( 0.0%) |
[ 1, 1) 52 ( 52.0%) |********************
[ 1, 2) 0 ( 0.0%) |
[ 2, 2) 40 ( 40.0%) |***************
Count=2061 Sum=2989 Mean=1.450 p_50=1.000 p_95=2.000
Precise timers [driver 7]: Metal Frame Data:
-- Precise Timers for [driver 7]: Metal Frame Data --
Statistic µ N p50 p75 p95 [min distribution max]
------------------------------------ ------- ----- ------- ------- ------- ------------------------
😳 endToEnd 31.4ms 2004 30.5ms 41.9ms 48.4ms [3.93ms ▃▃█▆▇▅▁ 56.28ms]
| 😳 gpu 21.6ms 2004 21.8ms 25.9ms 30.4ms [2.40ms ▃▄▆▅█▄▁ 38.50ms]
| | 😳 scheduleWait 14.6ms 2004 16.2ms 17.5ms 28.1ms [0.16ms ▆▃▂▆▆█▅▁▂▂ ▁ 38.50ms]
| | dispatchToPQ2 0.1ms 2004 0.1ms 0.1ms 5.6ms [0.01ms █▁▁ ▁▁ ▁ ▁▁▁ 12.58ms]
| 😳 cpu 9.8ms 2004 13.2ms 17.8ms 27.2ms [1.52ms █▄▆▂▂▁ 37.74ms]
| | 😳 mainQueue 7.5ms 2004 6.8ms 14.1ms 17.6ms [0.30ms █▄▅▂ 20.22ms]
| | | ExtractFromApp 0.6ms 2004 0.4ms 0.5ms 0.7ms [0.24ms ▂▄█▆▅▂▃▂▁▂▁▂ 0.76ms]
| | | 😳 GetDrawable 6.9ms 2004 6.5ms 13.7ms 17.3ms [0.01ms █▄▅▂ 19.84ms]
| | | GetRenderPassD 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▆▄██▂ ▁ 0.02ms]
| | 🙁 privateQueue 2.2ms 4008 1.3ms 2.5ms 12.7ms [0.01ms █▆▁ ▁ ▁▁▁ ▁ ▁ 23.70ms]
| | | 🤔 BuildRowData 0.7ms 2004 0.7ms 0.9ms 1.3ms [0.34ms ▅▅█▆▃▂▂▂▁▁ 1.64ms]
| | | BuildIntermed 0.0ms 2004 0.0ms 0.0ms 0.2ms [0.00ms █ ▁▁▁▁ ▁ 0.53ms]
| | | BuildTemp 0.3ms 2004 0.3ms 0.4ms 0.5ms [0.00ms ▄██▆▅▄▁ 0.60ms]
| | | UpdateRenderers 0.0ms 2004 0.0ms 0.0ms 0.1ms [0.02ms ▄▄▆▆█ ▂▂▁▁▁ ▁ 0.08ms]
| | | CreateTransient 0.4ms 2004 0.4ms 0.4ms 0.6ms [0.21ms ███▆▅▂▂ ▁ 0.73ms]
| | | | badge 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▆▇▅█▅▂▂ ▁ 0.00ms]
| | | | backgroundImage 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▄▅▅█▅▄▂▁▁ ▂ 0.00ms]
| | | | backgroundColor 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.01ms ▅█▅▃▃ ▁▁▁ ▁ 0.07ms]
| | | | cursorGuide 0.0ms 4008 0.0ms 0.0ms 0.0ms [0.00ms █▄▅▂▁▁▁▁ 0.04ms]
| | | | image 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.01ms █▂▁▁▁ ▁ ▁ 0.18ms]
| | | | bcastStripes 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▄▆█▆▇▂▂▂ 0.00ms]
| | | | copyBackground 0.0ms 4008 0.0ms 0.0ms 0.0ms [0.01ms █▆▅▄▄▁ ▁ 0.04ms]
| | | | mark 0.0ms 2004 0.0ms 0.0ms 0.1ms [0.01ms █▅▂ ▁▁▁ ▁ ▁▁ ▁ 0.11ms]
| | | | cursor 0.1ms 12024 0.0ms 0.0ms 0.0ms [0.01ms ▇█▄▂▂▂▁▁▂▁▂ ▁ ▁ 0.06ms]
| | | | margin 0.0ms 2004 0.0ms 0.0ms 0.1ms [0.02ms ▆█▅▄▂▁▁▁ ▁ 0.14ms]
| | | | text 0.1ms 2004 0.0ms 0.1ms 0.1ms [0.02ms ▇█▇▅▅▂▂▁▁▁ 0.13ms]
| | | | indicators 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms █▆▂ ▁ ▁ ▁ 0.06ms]
| | | | timestamps 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms █ ▁ 0.01ms]
| | | | flash 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▃▆▇█▃▂▂▂ ▁ ▁▁ 0.02ms]
| | | PopulateTrans 0.3ms 2004 0.3ms 0.5ms 11.2ms [0.10ms █ ▁ ▁ ▁ ▁▁ ▁ 21.61ms]
| | | EnqueueDrawCalls 0.3ms 2004 0.3ms 0.4ms 0.9ms [0.21ms ▅█▄▂▂▂▂▂▁ ▁▁ ▁ 1.45ms]
| | | | Create1stRE 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.01ms ▅█▃▂▁▂▁ ▁ 0.07ms]
| | | | DrawMargin 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.01ms ▃█▄▂▁▁▁ ▁ 0.06ms]
| | | | DrawBgImage 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms █▂▁▁ ▁ 0.02ms]
| | | | DrawBgColor 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.01ms ▅█▄▂▂▁▁ ▁ 0.06ms]
| | | | DrawStripes 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▅▇█▆▆▂▂ ▁ ▁ 0.00ms]
| | | | DrawBadge 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▅█▄▃▁▂ ▁ 0.00ms]
| | | | DrawCursor 0.0ms 1560 0.0ms 0.0ms 0.1ms [0.02ms ▅█▅▂▁▁▁ ▁ ▁ ▁ 0.12ms]
| | | | DrawMarks 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms █▁ ▁ ▁ 0.03ms]
| | | | DrawCrGuide 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▄▄█▄▄▃▁▁▂ 0.00ms]
| | | | DrawHighlite 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.01ms ██▃▁▁ ▁▁ ▁ ▁ 0.03ms]
| | | | DrawImage 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.01ms ▄█▄▂▁▁▁ ▁ ▁ ▁ 0.06ms]
| | | | EndEncodingInt 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▃▆█▆▅▃▂ ▂▁ 0.00ms]
| | | | Create2ndRE 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.01ms ▇█▆▃▃▃▁▂ ▂▁ 0.04ms]
| | | | enqueueCopyBg 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.01ms █▅▂▁▁▁ ▁ 0.05ms]
| | | | enqueueDrawText 0.1ms 2004 0.1ms 0.2ms 0.7ms [0.03ms █▂▂▁▁▁▁▁▁ ▁▁ ▁ 1.12ms]
| | | | DrawIndicators 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms █▃▁ ▁ ▁ ▁ 0.02ms]
| | | | DrawTimestamps 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▃██▃▂▁▁▁ ▁ 0.00ms]
| | | | DrawFlash 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▂▃▇█▄▆▂▂▂ 0.00ms]
| | | | Create3rdRE 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.02ms ▂▄█▃▄▂▁▁ ▁▁▁ ▁ 0.07ms]
| | | | enqueueCopyToDr 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.01ms ▃█▃▂▁▁ ▁▁ ▁ 0.04ms]
| | | | EndEncDrawable 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms ▂▅█▇▄▄▁▁ ▁ ▁ 0.00ms]
| | | | PresentCommit 0.0ms 2004 0.0ms 0.0ms 0.0ms [0.00ms █▃▁▁▁▁ ▁ ▁ 0.05ms]
Edited by David Stevenson