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

Issue 808214 link

Starred by 2 users

Issue metadata

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

Blocked on:
issue 806066



Sign in to add a comment

[Canvas 2D] canvas transformation is ignored when drawing from accelerated to unaccelerated canvas

Project Member Reported by xlai@chromium.org, Feb 1 2018

Issue description

This issue is a follow-up issue of https://bugs.chromium.org/p/chromium/issues/detail?id=806066. That issue exposes an existing bug in canvas drawImage.

Repro Fiddle:
https://jsfiddle.net/53fhq5w6/

Expected: the small canvas should be a vertically flipped version of the large canvas.

Actual: Image is not flipped

Based on analysis written in https://bugs.chromium.org/p/chromium/issues/detail?id=806066, the major
problem here is that

when an unaccelerated canvas tries to drawImage from an accelerated canvas (that already has CanvasResourceProvider created), it will ignore the existing transformation. Note that in this case, the small canvas will get promoted to accelerated 2d
and a new Canvas2DLayerBridge will get created.


 

Comment 1 by xlai@chromium.org, Feb 1 2018

Blockedon: 806066

Comment 2 by xlai@chromium.org, Feb 1 2018

Summary: [Canvas 2D] canvas transformation is ignored when drawing from accelerated to unaccelerated canvas (was: [Canvas 2D] Image flipping broken with drawImage + 'copy' composite op)
Can someone help me track down the boundraies between hw accell and not?
I Need to hotfix the problem in live apps that have broken transformation because of this bug.
Should i make minimum canvas size of 512x512 to avoid the bug?

Comment 4 by xlai@chromium.org, Feb 2 2018

andreabogazzi79@gmail.com: there is a fix coming in that hides this problem back, you might want to track https://bugs.chromium.org/p/chromium/issues/detail?id=806066 instead of this issue. 

Comment 5 by xlai@chromium.org, May 3 2018

Status: Fixed (was: Assigned)
This jsfiddle is now working correctly. I did a reverse bisecting and found that it is fixed by https://chromium-review.googlesource.com/c/chromium/src/+/899962.

Sign in to add a comment