New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 678234 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jan 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 678232
issue 684265



Sign in to add a comment

Add overdraw feedback debugging feature to display compositor.

Project Member Reported by reve...@chromium.org, Jan 4 2017

Issue description

The display compositor in Chrome should have a GPU overdraw debug feature similar to what Android has for application drawing. ChromeOS UI performance is suffering from too much overdraw and this would be useful to debug this set up performance test to detect regressions.
 
Labels: -Pri-3 Pri-2
Components: Internals>Compositing
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aec7d45bff4c7a8a697034754600f264988714ec

commit aec7d45bff4c7a8a697034754600f264988714ec
Author: reveman <reveman@chromium.org>
Date: Thu Jan 12 20:41:48 2017

cc: Use weak ptr for async read pixel queries.

This cleans up the async read pixel code a bit by using weak ptrs
instead of cancelable callbacks.

BUG= 678234 
TEST=cc_unittests
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2628883004
Cr-Commit-Position: refs/heads/master@{#443347}

[modify] https://crrev.com/aec7d45bff4c7a8a697034754600f264988714ec/cc/output/gl_renderer.cc
[modify] https://crrev.com/aec7d45bff4c7a8a697034754600f264988714ec/cc/output/gl_renderer.h

Project Member

Comment 4 by bugdroid1@chromium.org, Jan 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2

commit 9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2
Author: reveman <reveman@chromium.org>
Date: Wed Jan 18 03:05:48 2017

cc: Implement overdraw feedback debugging feature.

This adds a overdraw feedback debug flag to the GL renderer. This feature
is inspired by the GPU overdraw debug feature that exists on Android and
developers familiar with that feature will feel at home using this flag
when debugging overdraw in web-pages or in the ChromeOS UI.

When enabled, this flag visualize overdraw by color-coding areas of the
output based on how much overdraw is taking place. The colors are
hinting at the amount of overdraw on the screen for each pixel, as follows:

True color: No overdraw
Blue: Overdrawn once
Green: Overdrawn twice
Pink: Overdrawn three times
Red: Overdrawn four or more times

This also adds an overdraw tracing category (cc.debug.overdraw) that
provides a trace counter for the current amount overdraw.

The --ui-disable-partial-swap flag is also added to about:flags in
this patch. Disabling of partial swap is not required for overdraw
feedback but often what you want to make the output easier to diagnose.

BUG= 678234 
TEST=chrome --show-overdraw-feedback, cc_unittests --gtest_filter=GLRendererPixelTestWithOverdrawFeedback.TranslucentRectangles
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2612023002
Cr-Commit-Position: refs/heads/master@{#444256}

[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/android_webview/browser/parent_output_surface.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/android_webview/browser/parent_output_surface.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/base/switches.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/base/switches.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/output/direct_renderer.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/output/direct_renderer.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/output/gl_renderer.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/output/gl_renderer.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/output/gl_renderer_unittest.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/output/output_surface.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/output/overlay_unittest.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/output/renderer_pixeltest.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/output/renderer_settings.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/output/renderer_settings.h
[add] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/test/data/translucent_rectangles.png
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/test/fake_output_surface.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/test/fake_output_surface.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/test/pixel_test_output_surface.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/cc/test/pixel_test_output_surface.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/chrome/app/generated_resources.grd
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/chrome/browser/about_flags.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/components/display_compositor/buffer_queue.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/components/display_compositor/buffer_queue.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/components/display_compositor/buffer_queue_unittest.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/browser/compositor/gpu_browser_compositor_output_surface.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/browser/compositor/gpu_browser_compositor_output_surface.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/browser/compositor/gpu_surfaceless_browser_compositor_output_surface.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/browser/compositor/gpu_surfaceless_browser_compositor_output_surface.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/browser/compositor/offscreen_browser_compositor_output_surface.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/browser/compositor/offscreen_browser_compositor_output_surface.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/browser/compositor/reflector_impl_unittest.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/browser/compositor/software_browser_compositor_output_surface.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/browser/compositor/software_browser_compositor_output_surface.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/content/renderer/android/synchronous_compositor_frame_sink.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/services/ui/surfaces/display_output_surface.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/services/ui/surfaces/display_output_surface.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/services/ui/surfaces/display_output_surface_ozone.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/services/ui/surfaces/display_output_surface_ozone.h
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/tools/metrics/histograms/histograms.xml
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/ui/compositor/compositor.cc
[modify] https://crrev.com/9413cffb4fdc7dbcfc40a8da0530942e2f6ae0f2/ui/compositor/test/in_process_context_factory.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jan 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e2f29f0eda0cb38f57db34c7343ef4e6cce40263

commit e2f29f0eda0cb38f57db34c7343ef4e6cce40263
Author: reveman <reveman@chromium.org>
Date: Fri Jan 20 20:40:30 2017

gpu: Add ARB_occlusion_query support.

This adds support for GL_ARB_occlusion_query and improves overdraw
tracing by using this extension to collect exact amount of overdraw.

BUG= 678234 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2639293002
Cr-Commit-Position: refs/heads/master@{#445151}

[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/cc/output/gl_renderer.cc
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/cc/output/gl_renderer.h
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/GLES2/gl2extchromium.h
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/common/capabilities.cc
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/common/gles2_cmd_utils_implementation_autogen.h
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/service/gles2_cmd_validation_implementation_autogen.h
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/service/query_manager.cc
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/command_buffer/service/query_manager_unittest.cc
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/e2f29f0eda0cb38f57db34c7343ef4e6cce40263/ui/gl/gl_bindings.h

Status: Fixed (was: Assigned)
Blocking: 684265

Sign in to add a comment