chrome://gpu can lie about compositing mode |
|||||
Issue descriptionThere is a path where GPU compositing fails, we fall back to software compositing but chrome://gpu still says GPU compositing. This happens if the decision to fallback is in response to a kFatalError from ContextProvider::BindToThread() in GpuProcessTransportFactory. It's triggered here: https://cs.chromium.org/chromium/src/content/browser/compositor/gpu_process_transport_factory.cc?l=496&rcl=d04a1e5256a9fdd78f40cbdb73355408614e14f3 This calls GpuProcessTransportFactory::DisableGpuCompositing(), which calls CompositorModeReporterImpl::SetUsingSoftwareCompositing() but doesn't update GpuInfo/GpuDataProviderImpl/etc. We also don't restart the GPU process to switch to SwiftShader so WebGL ends up being GPU accelerated with software compositing. I think this failure mode is pretty rare. I was able to intentionally get into it, but most software compositing fallback happens due to blacklist or GPU process crashes and both of those work correctly. The changes described in https://crbug.com/819474 should fix this.
,
Mar 29 2018
I think about:gpu should show the current state. We ask users to dump it to help us understand what they are seeing and if it says theyre using gpu compositing we'll assume they are. It's fine if it shows software compositing (but could use gpu but fatal error happened) or whatever, but I think it's bad if it shows the wrong state for our debugging.
,
Mar 29 2018
,
Mar 30 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/df928557a1a267516e3995a1aa6978ced9deba6a commit df928557a1a267516e3995a1aa6978ced9deba6a Author: Zhenyao Mo <zmo@chromium.org> Date: Fri Mar 30 19:30:09 2018 about:gpu should report GpuCompositing real time status. Right now it reports the GPU capability, i.e., if the feature is blacklisted. Instead, now we track the status dynamically and about:gpu always reports the actural status whether Chrome is running with GpuCompositing or software one. BUG= 827210 TEST=manual through about:gpu R=danakj@chromium.org Change-Id: I322c03de8750bbed2b5dcdc8569dd5dfb31dbe36 Reviewed-on: https://chromium-review.googlesource.com/986929 Commit-Queue: Zhenyao Mo <zmo@chromium.org> Reviewed-by: Zhenyao Mo <zmo@chromium.org> Reviewed-by: danakj <danakj@chromium.org> Cr-Commit-Position: refs/heads/master@{#547238} [modify] https://crrev.com/df928557a1a267516e3995a1aa6978ced9deba6a/content/browser/compositor/gpu_process_transport_factory.cc [modify] https://crrev.com/df928557a1a267516e3995a1aa6978ced9deba6a/content/browser/compositor/viz_process_transport_factory.cc [modify] https://crrev.com/df928557a1a267516e3995a1aa6978ced9deba6a/content/browser/gpu/compositor_util.cc [modify] https://crrev.com/df928557a1a267516e3995a1aa6978ced9deba6a/content/browser/gpu/gpu_data_manager_impl.cc [modify] https://crrev.com/df928557a1a267516e3995a1aa6978ced9deba6a/content/browser/gpu/gpu_data_manager_impl.h [modify] https://crrev.com/df928557a1a267516e3995a1aa6978ced9deba6a/content/browser/gpu/gpu_data_manager_impl_private.h
,
Mar 30 2018
,
May 18 2018
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by zmo@chromium.org
, Mar 29 2018