New issue
Advanced search Search tips

Issue 805746 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug

Blocking:
issue 757605



Sign in to add a comment

Google docs telemetry test looks wrong with oop raster

Project Member Reported by enne@chromium.org, Jan 25 2018

Issue description

Run: tools/perf/run_benchmark smoothness.gpu_rasterization.top_25_smooth --browser=android-chromium --story-filter=Docs

The docs test in this benchmark has some visual errors.  The scrollbar looks odd.  There's garbage outside the main "document" that looks like uncleared/reused textures.
 
Screenshot_20180124-185447.png
194 KB View Download

Comment 1 by enne@chromium.org, Jan 25 2018

This appears to not happen on Linux (debug), but did happen on a Pixel XL (non-debug).

Comment 2 by enne@chromium.org, Jan 25 2018

This also does not appears to happen with gpu raster on the same page set and Pixel XL build, so this is something specific to oop raster.
Components: Internals>Compositing>OOP-Raster
Owner: enne@chromium.org
Status: Assigned (was: Available)
I think https://chromium-review.googlesource.com/c/chromium/src/+/888078 is meant to address this one?
 Issue 806014  has been merged into this issue.
Project Member

Comment 5 by bugdroid1@chromium.org, Feb 6 2018

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

commit 51c8e384740f05eea6b62b5a1fe797b4091f7c7d
Author: Adrienne Walker <enne@chromium.org>
Date: Tue Feb 06 20:30:33 2018

oop: Clear textures to prevent visual garbage

Textures in oop raster are currently cleared only when they are new.
However, when textures are reused (both for partial raster and for
recycling) they need to clear what's underneath them.

This also fixes several bugs in RasterSource clearing.  In particular,
clipDeviceRegion (possibly only for gpu?) does not reset the clip,
only adds to it.  It also unions together all the rects in the
region.  This leads to increased clipping, and no clearing of texels
outside of the raster full rect.

This passes more parameters to RasterSource and PaintOpBuffer so that
the following clearing can be done:
(1) if not opaque and not partial raster, clear everything to transparent.
(2) if not opaque and partial raster, clear inside clip to transparent.
(3) if opaque and playback rect intersects with one texel inside the
content size for the layer, then draw 2xheight and widthx2 pixel rectangles
to clear the last pixels.

Also add a number of unit tests to verify that minimal clearing is done
that would have caught the RasterSource changes.

This also removes debug clearing code in RasterSource which is old and
is not as useful as it once was.

Bug:  805746 , 806014 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I5f68ef63ee8c2831906890e3e2239ac1e3db430e
Reviewed-on: https://chromium-review.googlesource.com/888078
Commit-Queue: enne <enne@chromium.org>
Reviewed-by: Khushal <khushalsagar@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534782}
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/benchmarks/rasterize_and_record_benchmark_impl.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/debug/debug_colors.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/layers/recording_source.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/paint/oop_pixeltest.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/paint/paint_op_buffer_serializer.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/paint/paint_op_buffer_serializer.h
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/paint/paint_op_buffer_unittest.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/paint/paint_op_writer.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/paint/paint_op_writer.h
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/raster/raster_buffer_provider.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/raster/raster_source.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/raster/raster_source.h
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/raster/raster_source_unittest.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/test/fake_raster_source.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/cc/test/fake_raster_source.h
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/gpu/command_buffer/client/raster_implementation_gles.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/gpu/command_buffer/client/raster_implementation_gles.h
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
[modify] https://crrev.com/51c8e384740f05eea6b62b5a1fe797b4091f7c7d/gpu/command_buffer/client/raster_interface.h

Comment 6 by enne@chromium.org, Feb 7 2018

Status: Fixed (was: Assigned)

Sign in to add a comment