Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Issue 1147653002: Fix for 300ms scroll lag on 2013 Mac Pros once idle for 10seconds (Closed)

Created:
5 years, 7 months ago by tapted
Modified:
5 years, 7 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam, piman+watch_chromium.org, chrome-apps-syd-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix for 300ms scroll lag on 2013 Mac Pros once idle for 10seconds The 2013 Mac Pros have a dual discrete GPU setup. If the GPU process is idle for 10 seconds or more, OSX transfers the OpenGL context on to the second, "offline" GPU. This means when we try to use it again to display on a real display, OSX must first switch the context back. This would trigger a ~300ms delay on the first glFlush() call to occur after the idle threshold was reached. To fix, detect a dual, discrete GPU setup and never set the kCGLPFAAllowOfflineRenderers flag in the pixel format for this case. BUG=380026

Patch Set 1 #

Patch Set 2 : Use GPU workaround #

Patch Set 3 : remove tracing #

Unified diffs Side-by-side diffs Delta from patch set Stats (+65 lines, -9 lines) Patch
M gpu/config/gpu_driver_bug_list_json.cc View 1 2 chunks +25 lines, -1 line 0 comments Download
M gpu/config/gpu_driver_bug_list_unittest.cc View 1 1 chunk +30 lines, -1 line 0 comments Download
M ui/gl/gl_context_cgl.cc View 1 3 chunks +10 lines, -7 lines 0 comments Download

Messages

Total messages: 8 (2 generated)
tapted
Hi Chris, please take a look. You might see a much nicer fix that this, ...
5 years, 7 months ago (2015-05-18 07:13:39 UTC) #2
ccameron
Wow, thanks for digging in on this! I wonder if there's a renderer property that ...
5 years, 7 months ago (2015-05-18 08:38:41 UTC) #4
Ken Russell (switch to Gerrit)
Thanks for tracking this down. Nice work finding this solution. After talking with zmo@, he ...
5 years, 7 months ago (2015-05-18 20:58:58 UTC) #5
tapted
On 2015/05/18 20:58:58, Ken Russell wrote: > Thanks for tracking this down. Nice work finding ...
5 years, 7 months ago (2015-05-18 22:48:24 UTC) #6
Ken Russell (switch to Gerrit)
On 2015/05/18 22:48:24, tapted wrote: > On 2015/05/18 20:58:58, Ken Russell wrote: > > Thanks ...
5 years, 7 months ago (2015-05-19 01:16:54 UTC) #7
tapted
5 years, 7 months ago (2015-05-19 01:25:56 UTC) #8
On 2015/05/19 01:16:54, Ken Russell wrote:
> On 2015/05/18 22:48:24, tapted wrote:
> > On 2015/05/18 20:58:58, Ken Russell wrote:
> > > Thanks for tracking this down. Nice work finding this solution.
> > > 
> > > After talking with zmo@, he and I both think that a better solution to
this
> > > problem would be to teach the GpuSwitchingManager about the vendor IDs of
> the
> > > dual GPUs in the system, and have GpuSwitchingManager::SupportsDualGpus
> return
> > > true only if it finds two GPUs where one is Intel and the other one isn't
> > Intel.
> > > Despite the fact that this sort of logic can now be encoded in the
> blacklist,
> > > the SupportsDualGpus call seems to be the right place to encode this
> decision.
> > > 
> > > We can implement this or would you be willing to update this CL to do so?
> > 
> > I'm happy for some gpu experts to take over :). My attempt was more out of
> > curiosity - there's a lot to wrap my head around! But also happy to patch
> things
> > in and try out on this hardware if you need that. Thanks!
> 
> Thanks again. https://codereview.chromium.org/1144843005 has been uploaded
with
> the alternative idea, so please feel free to close this if the other CL works
> for you.

Awesome \o/. Alternative works great. I'll close this.

Powered by Google App Engine
This is Rietveld 408576698