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

Issue 657431 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Refactor Display list canvas to use prefered raster bounds

Project Member Reported by junov@chromium.org, Oct 19 2016

Issue description

The following change adds the notion of a preferred raster scale to cc layers:
https://codereview.chromium.org/2410513002/

This new mechanism should be used instead of the existing saveLayer/SkPictureImageFilter approach
This means that all canvases with a resolution that does not line-up with the display will have to be promoted to their own layers.  This approach will pave the way to making it possible for color management to work with display list 2D canvas.
 
Cc: vmp...@chromium.org
Is the only purpose of this to support color management? Won't color management
already work by attaching the right color spaces to the display list itself?

Comment 2 by junov@chromium.org, Oct 19 2016

No, it does not work that way. Skia only has colorspace tagging for input and outputs, SkPictures are neither.  Doing this will also fix other problems, not just color management. Among other things, we will be able to start using deferred image decoding for images drawn into a canvas.
Summary: Refactor Display list canvas to use prefered raster bounds (was: Refactor Display list canvas to use prefered raster scale)
Update: we should use preferred raster *bounds* rather than scale, to avoid
loss of precision when multiplying up by a scale to the preferred scale, and
also to account for scales that do not preserve aspect ratio.
Labels: -Pri-3 Pri-2
Labels: -Pri-2 Pri-3
Sorry, updated the wrong bug there. But in any case, it should be bounds not
scale.
Project Member

Comment 6 by bugdroid1@chromium.org, Oct 21 2016

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

commit a1caccf274a8013424414b3b306c3c7a4f7d4d42
Author: chrishtr <chrishtr@chromium.org>
Date: Fri Oct 21 03:48:28 2016

Plumb preferred raster bounds rather than scale

This allows us to specify exactly the preferred raster size of the
intrinsic object, such a images, without rounding error due to
floating-point, conflation of width/height due to not preserving
aspect ratio, etc.

BUG= 657431 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Review-Url: https://chromiumcodereview.appspot.com/2441853002
Cr-Commit-Position: refs/heads/master@{#426719}

[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/cc/blink/web_layer_impl.cc
[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/cc/blink/web_layer_impl.h
[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/cc/layers/layer.cc
[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/cc/layers/layer.h
[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/cc/layers/layer_impl.cc
[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/cc/layers/layer_impl.h
[rename] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/third_party/WebKit/LayoutTests/compositing/scaling/preferred-raster-bounds-expected.txt
[rename] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/third_party/WebKit/LayoutTests/compositing/scaling/preferred-raster-bounds.html
[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/third_party/WebKit/Source/core/paint/BoxPainter.cpp
[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.in
[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/third_party/WebKit/Source/platform/graphics/GraphicsLayer.cpp
[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/third_party/WebKit/Source/platform/graphics/GraphicsLayer.h
[modify] https://crrev.com/a1caccf274a8013424414b3b306c3c7a4f7d4d42/third_party/WebKit/public/platform/WebLayer.h

Comment 7 by junov@chromium.org, Jun 19 2018

Status: WontFix (was: Assigned)
Obsolete.

Sign in to add a comment