New issue
Advanced search Search tips

Issue 773799 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Feature

Blocking:
issue 558070



Sign in to add a comment

Decode to Scale: GPU Image Decode Controller Support

Project Member Reported by ericrk@chromium.org, Oct 11 2017

Issue description

GPU Image Decode Controller should use the PaintImage::Decode API to leverage the decode to scale work done in  bug 558070 
 

Comment 1 by ericrk@chromium.org, Oct 11 2017

Blocking: 558070
Hey eric - what's the plan or ETA?
We have an idea of what we need to land (and a WIP CL https://chromium-review.googlesource.com/c/chromium/src/+/713593), but work is currently deprioritized. Will try to get to this some time this quarter.
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 16 2017

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

commit 86c790e6a6dcdbec73f22ed343265963c901e749
Author: Eric Karl <ericrk@chromium.org>
Date: Thu Nov 16 22:15:14 2017

Remove use of DeferredTextureImageData APIs and Support Decode to Scale

We aren't benefitting from the complexity added by the
DeferredTextureImageData APIs, and this API blocks us from using
PaintImage::Decode's decode-to-scale functionality.

This change removes our usage of DeferredTextureImageData APIs,
instead using SkImage::makeTextureImage to handle upload. Additionally,
we now use the PaintImage::Decode API, adding decode-to-scale support.

Bug:  773799 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ia5f480213c3a5c8225ccd289aa2c081056840f94
Reviewed-on: https://chromium-review.googlesource.com/713593
Reviewed-by: vmpstr <vmpstr@chromium.org>
Commit-Queue: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517206}
[modify] https://crrev.com/86c790e6a6dcdbec73f22ed343265963c901e749/cc/tiles/gpu_image_decode_cache.cc
[modify] https://crrev.com/86c790e6a6dcdbec73f22ed343265963c901e749/cc/tiles/gpu_image_decode_cache.h

Project Member

Comment 5 by bugdroid1@chromium.org, Dec 16 2017

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

commit 7452277311e15a3459b4fb6fa428840c6afde4df
Author: Eric Karl <ericrk@chromium.org>
Date: Sat Dec 16 21:42:32 2017

Revert "Remove use of DeferredTextureImageData APIs and Support Decode to Scale"

This reverts commit 86c790e6a6dcdbec73f22ed343265963c901e749.

Reason for revert: This is causing performance / memory regressions that are trickier to address than expected. Reverting this for now.

Original change's description:
> Remove use of DeferredTextureImageData APIs and Support Decode to Scale
> 
> We aren't benefitting from the complexity added by the
> DeferredTextureImageData APIs, and this API blocks us from using
> PaintImage::Decode's decode-to-scale functionality.
> 
> This change removes our usage of DeferredTextureImageData APIs,
> instead using SkImage::makeTextureImage to handle upload. Additionally,
> we now use the PaintImage::Decode API, adding decode-to-scale support.
> 
> Bug:  773799 
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: Ia5f480213c3a5c8225ccd289aa2c081056840f94
> Reviewed-on: https://chromium-review.googlesource.com/713593
> Reviewed-by: vmpstr <vmpstr@chromium.org>
> Commit-Queue: Eric Karl <ericrk@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#517206}

TBR=vmpstr@chromium.org,ericrk@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  773799 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: Ie4493559e334100f03dfed1dfb7a408fc26a33e0
Reviewed-on: https://chromium-review.googlesource.com/830587
Commit-Queue: Eric Karl <ericrk@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524613}
[modify] https://crrev.com/7452277311e15a3459b4fb6fa428840c6afde4df/cc/paint/paint_image.h
[modify] https://crrev.com/7452277311e15a3459b4fb6fa428840c6afde4df/cc/tiles/gpu_image_decode_cache.cc
[modify] https://crrev.com/7452277311e15a3459b4fb6fa428840c6afde4df/cc/tiles/gpu_image_decode_cache.h

Project Member

Comment 6 by bugdroid1@chromium.org, Dec 19 2017

Labels: merge-merged-3282
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/94479c4cca4e9c4b4ec9a910b83c056005fb0ac7

commit 94479c4cca4e9c4b4ec9a910b83c056005fb0ac7
Author: Eric Karl <ericrk@chromium.org>
Date: Tue Dec 19 18:41:48 2017

Revert "Remove use of DeferredTextureImageData APIs and Support Decode to Scale"

This reverts commit 86c790e6a6dcdbec73f22ed343265963c901e749.

Reason for revert: This is causing performance / memory regressions that are trickier to address than expected. Reverting this for now.

Original change's description:
> Remove use of DeferredTextureImageData APIs and Support Decode to Scale
>
> We aren't benefitting from the complexity added by the
> DeferredTextureImageData APIs, and this API blocks us from using
> PaintImage::Decode's decode-to-scale functionality.
>
> This change removes our usage of DeferredTextureImageData APIs,
> instead using SkImage::makeTextureImage to handle upload. Additionally,
> we now use the PaintImage::Decode API, adding decode-to-scale support.
>
> Bug:  773799 
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
> Change-Id: Ia5f480213c3a5c8225ccd289aa2c081056840f94
> Reviewed-on: https://chromium-review.googlesource.com/713593
> Reviewed-by: vmpstr <vmpstr@chromium.org>
> Commit-Queue: Eric Karl <ericrk@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#517206}

TBR=ericrk@chromium.org, vmpstr@chromium.org


(cherry picked from commit 7452277311e15a3459b4fb6fa428840c6afde4df)

Bug:  773799 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: Ie4493559e334100f03dfed1dfb7a408fc26a33e0
Reviewed-on: https://chromium-review.googlesource.com/830587
Commit-Queue: Eric Karl <ericrk@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#524613}
Reviewed-on: https://chromium-review.googlesource.com/834451
Cr-Commit-Position: refs/branch-heads/3282@{#298}
Cr-Branched-From: 5fdc0fab22ce7efd32532ee989b223fa12f8171e-refs/heads/master@{#520840}
[modify] https://crrev.com/94479c4cca4e9c4b4ec9a910b83c056005fb0ac7/cc/paint/paint_image.h
[modify] https://crrev.com/94479c4cca4e9c4b4ec9a910b83c056005fb0ac7/cc/tiles/gpu_image_decode_cache.cc
[modify] https://crrev.com/94479c4cca4e9c4b4ec9a910b83c056005fb0ac7/cc/tiles/gpu_image_decode_cache.h

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 3 2018

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

commit 90aeb8fe0f41f23552d623ada4a8e5667174e58e
Author: Eric Karl <ericrk@chromium.org>
Date: Wed Jan 03 02:49:56 2018

Revert "Revert "Remove use of DeferredTextureImageData APIs and Support Decode to Scale""

This reverts commit 7452277311e15a3459b4fb6fa428840c6afde4df.

Reason for revert: Have fixes for the original issues. Will land those after un-reverting.

Original change's description:
> Revert "Remove use of DeferredTextureImageData APIs and Support Decode to Scale"
> 
> This reverts commit 86c790e6a6dcdbec73f22ed343265963c901e749.
> 
> Reason for revert: This is causing performance / memory regressions that are trickier to address than expected. Reverting this for now.
> 
> Original change's description:
> > Remove use of DeferredTextureImageData APIs and Support Decode to Scale
> > 
> > We aren't benefitting from the complexity added by the
> > DeferredTextureImageData APIs, and this API blocks us from using
> > PaintImage::Decode's decode-to-scale functionality.
> > 
> > This change removes our usage of DeferredTextureImageData APIs,
> > instead using SkImage::makeTextureImage to handle upload. Additionally,
> > we now use the PaintImage::Decode API, adding decode-to-scale support.
> > 
> > Bug:  773799 
> > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
> > Change-Id: Ia5f480213c3a5c8225ccd289aa2c081056840f94
> > Reviewed-on: https://chromium-review.googlesource.com/713593
> > Reviewed-by: vmpstr <vmpstr@chromium.org>
> > Commit-Queue: Eric Karl <ericrk@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#517206}
> 
> TBR=vmpstr@chromium.org,ericrk@chromium.org
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug:  773799 
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
> Change-Id: Ie4493559e334100f03dfed1dfb7a408fc26a33e0
> Reviewed-on: https://chromium-review.googlesource.com/830587
> Commit-Queue: Eric Karl <ericrk@chromium.org>
> Reviewed-by: Eric Karl <ericrk@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#524613}

TBR=vmpstr@chromium.org,ericrk@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  773799 
Change-Id: Ic4492707672b8652bd3b102d3918399afb5321b4
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/847030
Commit-Queue: Eric Karl <ericrk@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526601}
[modify] https://crrev.com/90aeb8fe0f41f23552d623ada4a8e5667174e58e/cc/paint/paint_image.h
[modify] https://crrev.com/90aeb8fe0f41f23552d623ada4a8e5667174e58e/cc/tiles/gpu_image_decode_cache.cc
[modify] https://crrev.com/90aeb8fe0f41f23552d623ada4a8e5667174e58e/cc/tiles/gpu_image_decode_cache.h

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 20 2018

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

commit f9e3faeda46f0fc37bccfe697265200971596533
Author: Khushal <khushalsagar@chromium.org>
Date: Wed Jun 20 21:31:13 2018

cc: Enable decode to scale for GPU raster.

GpuImageDecodeCache supports decoding directly to the desired scale, if
supported by the image decoder, but the functionality was commented out
in PaintImage. Enable it. Follow up changes should add the use of
this API to the software cache.

R=ericrk@chromium.org

Bug:  558070 , 773799 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Iea69e200b9b0bc1b1c60231c7c15cef5c6a2f674
Reviewed-on: https://chromium-review.googlesource.com/1102025
Commit-Queue: Khushal <khushalsagar@chromium.org>
Reviewed-by: Eric Karl <ericrk@chromium.org>
Reviewed-by: Chris Harrelson <chrishtr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569026}
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/cc/paint/paint_image.cc
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/cc/paint/paint_image_unittest.cc
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/cc/test/fake_paint_image_generator.cc
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/cc/test/fake_paint_image_generator.h
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-filter-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/color-profile-image-shape-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/linux/virtual/gpu-rasterization/images/jpeg-with-color-profile-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/images/color-profile-image-canvas-svg-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/images/color-profile-image-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/images/color-profile-image-shape-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/mac/virtual/gpu-rasterization/images/jpeg-with-color-profile-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/color-profile-image-canvas-svg-expected.png
[add] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/color-profile-image-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/color-profile-image-shape-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/platform/win/virtual/gpu-rasterization/images/jpeg-with-color-profile-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-background-image-cover-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-background-image-repeat-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-background-image-space-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-image-canvas-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-image-canvas-pattern-expected.png
[delete] https://crrev.com/d81475b06bcebdbe4797d42ea2bf5cdca57b6e63/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-image-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-image-object-fit-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-image-svg-resource-url-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/color-profile-mask-image-svg-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/exif-orientation-height-image-document-expected.png
[modify] https://crrev.com/f9e3faeda46f0fc37bccfe697265200971596533/third_party/WebKit/LayoutTests/virtual/gpu-rasterization/images/jpeg-yuv-progressive-image-expected.png

Status: Fixed (was: Started)

Sign in to add a comment