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

Issue 844145 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 30
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature

Blocked on:
issue skia:6553

Blocking:
issue 634542



Sign in to add a comment

Avoid GPU read back in StaticBitmapImage::ConvertToColorSpace()

Project Member Reported by zakerinasab@chromium.org, May 17 2018

Issue description

GPU-backed SkImage does not support kRespect TransferFnBehavior for makeColorSpace(). See: SkImage_Gpu::onMakeColorSpace().

As a temporary solution in StaticBitmapImage::ConvertToColorSpace() we use SkImage::makeNonTextureImage() to convert accelerated images to software ones if kRespect transfer function behavior is requested. Whenever the respective Skia bug is fixed, we should remove the readback.
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 22 2018

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

commit 3043a5ceb86386b72ae45d73e98b2502106d66e1
Author: Reza.Zakerinasab <zakerinasab@chromium.org>
Date: Tue May 22 16:47:44 2018

Move color managed canvas layout tests to fast/canvas

This CL fixes the issue with accelerated images color conversion by
converting accelerated images to software images. It also moves
color managed canvas layout tests to fast/canvas.

Bug:  695964 ,  844145 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I115cb30260bffdc6201894089f134cbcfe24bdf6
Reviewed-on: https://chromium-review.googlesource.com/1064566
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Fernando Serboncini <fserb@chromium.org>
Commit-Queue: Mohammad Reza Zakerinasab <zakerinasab@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560652}
[modify] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-gen-property-trees
[modify] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/FlagExpectations/enable-slimming-paint-v2
[modify] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/SlowTests
[modify] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/SmokeTests
[modify] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/VirtualTestSuites
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-colorManaged-toBlob-toDataURL.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-colorspace-arguments.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-createImageBitmap-linear-rgb.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-createImageBitmap-p3.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-createImageBitmap-rec2020.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-createPutGetImageData-colorManaged.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-drawImage-linear-rgb.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-drawImage-p3.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-drawImage-rec2020.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-getImageData-linear-rgb.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-getImageData-p3.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-getImageData-rec2020.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/imageData-colorManagedBehavior.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/imageData-colorSpace.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/imagedata-no-color-settings-crash.html
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-semitransparent-p3d65.png
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-semitransparent-rec2020.png
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-semitransparent-srgb.png
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb-fullcolor.ogv
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb-transparent.bmp
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb-transparent.ico
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb-transparent.png
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb-transparent.webp
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb.bmp
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb.gif
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb.ico
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb.jpg
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb.png
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb.svg
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/resources/pattern-srgb.webp
[rename] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/WebKit/LayoutTests/fast/canvas/color-space/transferFromImageBitmap.html
[delete] https://crrev.com/52a43db150731a4c6d445ba8bde976c268e99033/third_party/WebKit/LayoutTests/virtual/color_space/fast/canvas/color-space/README.txt
[modify] https://crrev.com/3043a5ceb86386b72ae45d73e98b2502106d66e1/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Jul 3

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

commit 41eca5edd48d16bf3417840e401c302af9c82e3a
Author: Brian Osman <brianosman@google.com>
Date: Tue Jul 03 18:03:00 2018

Remove all usage of SkTransferFunctionBehavior::kRespect

This is going away in Skia (no one wants linear blending), so this lets
us land some Skia changes that alter image encode/decode/conversion
behavior without breaking webkit unit tests.

Some canvas color space layout tests do break, because they exercise
multiple code paths in Skia. The paths that depend on image encode
and decode are now using nonlinear blending, but the paths that just
draw (to SW canvas) are hitting code that isn't updated yet. To make
it easier to finish that migration, this change suppresses all of the
transparent pixel tests within those five layout tests.

Bug:  chromium:859102   chromium:844145 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I331b5dfc08e53d498fdc1449519b42f67de6d1af
Reviewed-on: https://chromium-review.googlesource.com/1117026
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mohammad Reza Zakerinasab <zakerinasab@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572292}
[modify] https://crrev.com/41eca5edd48d16bf3417840e401c302af9c82e3a/skia/config/SkUserConfig.h
[modify] https://crrev.com/41eca5edd48d16bf3417840e401c302af9c82e3a/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-colorManaged-convertToBlob-roundtrip.html
[modify] https://crrev.com/41eca5edd48d16bf3417840e401c302af9c82e3a/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-createImageBitmap-linear-rgb.html
[modify] https://crrev.com/41eca5edd48d16bf3417840e401c302af9c82e3a/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-createImageBitmap-p3.html
[modify] https://crrev.com/41eca5edd48d16bf3417840e401c302af9c82e3a/third_party/WebKit/LayoutTests/fast/canvas/color-space/canvas-createImageBitmap-rec2020.html
[modify] https://crrev.com/41eca5edd48d16bf3417840e401c302af9c82e3a/third_party/WebKit/LayoutTests/fast/canvas/color-space/transferFromImageBitmap.html
[modify] https://crrev.com/41eca5edd48d16bf3417840e401c302af9c82e3a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator.cc
[modify] https://crrev.com/41eca5edd48d16bf3417840e401c302af9c82e3a/third_party/blink/renderer/core/html/canvas/canvas_async_blob_creator_test.cc
[modify] https://crrev.com/41eca5edd48d16bf3417840e401c302af9c82e3a/third_party/blink/renderer/core/imagebitmap/image_bitmap.cc
[modify] https://crrev.com/41eca5edd48d16bf3417840e401c302af9c82e3a/third_party/blink/renderer/platform/graphics/static_bitmap_image.cc

Cc: -junov@chromium.org
Status: Fixed (was: Assigned)

Sign in to add a comment