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

Issue 658277 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug



Sign in to add a comment

mix-blend-mode broken on macbook pro retina Mid 2012 & Early 2013

Reported by mar...@duotones.ch, Oct 21 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36

Steps to reproduce the problem:
1. Use a Retina MacBook
2. Use mix-blend-mode on an element 

What is the expected behavior?
mix-blend-mode should render correctly as it does on non retina or 4K iMac

What went wrong?
image is displayed with a white container instead of as a correct blended image.

First image is a screenshot from the problemativ MacBook Pro Retina,
Second Image from a 4K iMac

Did this work before? Yes up to 52 or 53

Chrome version: 54.0.2840.71  Channel: stable
OS Version: OS X 10.11.6
Flash Version: Shockwave Flash 23.0 r0
 
Screen Shot 2016-10-21 at 17.45.14.png
6.8 KB View Download
bildschirmfoto_2016-10-21_um_17.40.38.png
18.2 KB View Download

Comment 1 by mar...@duotones.ch, Oct 21 2016

Update: I only could test Mid 2012 & Early 2013 Macbook Pro Retina, might apply for newer Retina Macbook Pros too.
Labels: M-54 Needs-Bisect
Cc: krajshree@chromium.org
Labels: Needs-Feedback
Reporter@ - Could you please provide a sample url to test this issue.

Thanks...!!

Comment 4 by mar...@duotones.ch, Oct 24 2016

Hi, there's no online version yet, so I tried to reproduce the error. That was not that easy actually, so I reconstructed the exact markup/css from where the problem appears. It must have something to do with the way it's implemented. However I consider this still a bug since it only happens on specific hardware and ONLY in Chrome (certainly 54, I belive it was in the last version before 54 also, but can't say for sure). It doesn't happen on newer MacBook Pros, neither does it on non-retina. However it does also occur on my external non-retina Cinema Display. Safari and Firefox work fine.

Funny is also, that it didn't consistently happen in the jsFiddle, and until I saved it it just blinked the error at times, but sometimes did display the images correctly (seemed like for a specific container height/width. After I saved, it consistently shows the error.

https://jsfiddle.net/Lxuez68c/4/

This is what I see:

Screen Shot 2016-10-24 at 11.29.49.png
33.0 KB View Download

Comment 5 by rsesek@chromium.org, Oct 24 2016

Components: -UI Blink>CSS
Labels: -Needs-Feedback TE-NeedsTriageFromMTV
Unable to reproduce the issue on MacBook Pro (Retina, 15-inch, Mid 2014) using chrome reported version #54.0.2840.71.

Attaching the screen cast for reference.

Could any from MTV team please look into this issue as this issue seems to be hardware specific.

Adding the TE-NeedsTriageFromMTV label for further investigation.

Thanks....!!
658277.mp4
397 KB View Download

Comment 7 Deleted

Comment 8 by mar...@duotones.ch, Oct 25 2016

@krajshree yes, I imagined so, since it also doesn't appear on a Mid 2016 Macbook. Important to know is, that it did render right on the models in 52/53.X that fail now in 53.Y+
Confirmed. Example: 

https://codepen.io/dudleystorey/pen/YWNdNL

Screenshot (error.png) and how it should appear (mix-blend-mode.png) attached.
mix-blend-mode.png
58.3 KB View Download
error.png
30.7 KB View Download
Labels: -TE-NeedsTriageFromMTV
Labels: TE-NeedsTriageFromMTV
Unable to reproduce the issue here from Macbook air 10.12.2 and Macbook pro retina 10.12.2 using 55.0.2883.95.
Could anyone from MTV take a look into this if you have OSX 10.11.6.
658277_Jan_19.mp4
677 KB View Download
I'm encountering this issue too.  Please see attached screen capture.

I've also included a second codepen which behaves inconsistently again with mix-blend-mode looking to be the issue.

Mac: 10.12.2 (16C67)
Chrome: 56.0.2924.76 (Official Build) (64-bit)

However I can confirm this mix-blend-mode issue has existed in Chrome since at least Dec 7th, that's when it was first reported as a bug internally.

The second codepen example: http://codepen.io/oller/pen/rjJbQK
chromeMixBlendMode.mp4
2.4 MB View Download
Am attaching a third screen capture to show a bit more interaction.

The initial paint seems fine, when I interact at the bottom I'm changing the fill-opacity attribute on the SVG circle elements. 
ChromeMixBlendMode2.mp4
701 KB View Download
Chromium version 56.0.2924.87 (64-bit) also has issues with this on Linux. Windows 7 VM with Chrome works fine.

Website that implements this: https://ghost.org/features/


err.png
35.7 KB View Download
blendmodeoff.png
60.6 KB View Download
Components: -Blink>CSS Internals>GPU
Since this only fails on certain machines, I suspect it's GPU related, not style engine related.
Cc: ericrk@chromium.org
Labels: -TE-NeedsTriageFromMTV Needs-Feedback
Please attach the output from chrome://gpu/.

From quick testing, this appears to be related to a combination of blending/multisampling. On Intel GPUs (which do not use multisampling), I'm unable to reproduce.

Seeing the following error repeated:
[80447:775:0327/102126.182893:ERROR:gles2_cmd_decoder.cc(7860)] : [.RenderWorker-0x7f9e63816a00.GpuRasterization]GL ERROR :GL_INVALID_OPERATION : glBlitFramebufferCHROMIUM: src framebuffer is multisampled, but src/dst regions are different

Cc: bsalomon@chromium.org
+bsalomon@ in case he has some thoughts.
It could be that we're attempting to make a copy of the destination in order to do shader-based blending and that is failing with the error messages shown in #17. Maybe this has something to do with a more restricted implementation of glBlitFramebuffer in the command buffer?
good point - I'll look into this further and see if I can repro with Skia alone (no Chrome).
It looks like Chrome is matching the GL 3 spec (https://www.khronos.org/registry/OpenGL-Refpages/es3.0/html/glBlitFramebuffer.xhtml):

"""
If SAMPLE_BUFFERS for the read framebuffer is greater than zero and SAMPLE_BUFFERS for the draw framebuffer is zero, the samples corresponding to each pixel location in the source are converted to a single sample before being written to the destination.

GL_INVALID_OPERATION is generated if the value of GL_SAMPLE_BUFFERS for the draw buffer is greater than zero.

GL_INVALID_OPERATION is generated if GL_SAMPLE_BUFFERS for the read buffer is greater than zero and the formats of draw and read buffers are not identical, or the source and destination rectangles are not defined with the same (X0, Y0) and (X1, Y1) bounds.
"""

So it sounds like it's invalid to glBlitFramebuffer with a multisampled source unless the source/dst coordinates are identical. In the case we're seeing here, it appears that Skia is calling glBlitFramebuffer with:

src: (732, 0) (1547, 54)
dst: (0, 0) (815, 54)

So the sizes are identical, but the offsets don't match, which appears to violate the GL Spec.

We're hitting this through "GrGlGpu::copySurfaceAsBlitFramebuffer".
Status: Available (was: Unconfirmed)
Looks like we have a Skia cap for this: kRectsMustMatchForMSAASrc_BlitFramebufferFlag - need to see why it's not getting set.
Owner: ericrk@chromium.org
Status: Assigned (was: Available)
To summarize offline discussion - the easiest solution is:

Ensure kRectsMustMatchForMSAASrc_BlitFramebufferFlag is set of blitFramebufferCHROMIUM in Skia.

Ensure that when sizing the destination texture for a copy, we check this flag and do a full-sized alloc if necessary.

It may also be that some of ANGLE's requirements have relaxed (since eS3 support was added), so there may be some flags we can remove from Skia.
Project Member

Comment 26 by bugdroid1@chromium.org, Mar 31 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814

commit e0ff6ab272dcc5c4d6f3b509da7e0e97acada814
Author: Eric Karl <ericrk@chromium.org>
Date: Fri Mar 31 02:13:05 2017

Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup

Crurently, when preparing a texture for blitFramebuffer, we ignore the
kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to
copy from one src rect to a different dst rect.

This change updates initDescForDstCopy and setupDstTexture to allocate
larger textures if necessary and accomodate this flags requirements.

Bug:  658277 
Change-Id: I500f10dba5700f5f7a7acad04bcdbc9ac9994835
Reviewed-on: https://skia-review.googlesource.com/10247
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/gl/GrGLGpu.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/gl/GrGLCaps.h
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/gl/GrGLCaps.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/vk/GrVkCaps.h
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/tests/BlendTest.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/include/gpu/GrCaps.h
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/GrRenderTargetContext.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/tools/gpu/GrTest.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/vk/GrVkCaps.cpp

Project Member

Comment 27 by bugdroid1@chromium.org, Mar 31 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814

commit e0ff6ab272dcc5c4d6f3b509da7e0e97acada814
Author: Eric Karl <ericrk@chromium.org>
Date: Fri Mar 31 02:13:05 2017

Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup

Crurently, when preparing a texture for blitFramebuffer, we ignore the
kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to
copy from one src rect to a different dst rect.

This change updates initDescForDstCopy and setupDstTexture to allocate
larger textures if necessary and accomodate this flags requirements.

Bug:  658277 
Change-Id: I500f10dba5700f5f7a7acad04bcdbc9ac9994835
Reviewed-on: https://skia-review.googlesource.com/10247
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/gl/GrGLGpu.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/gl/GrGLCaps.h
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/gl/GrGLCaps.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/vk/GrVkCaps.h
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/tests/BlendTest.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/include/gpu/GrCaps.h
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/GrRenderTargetContext.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/tools/gpu/GrTest.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/vk/GrVkCaps.cpp

Project Member

Comment 28 by bugdroid1@chromium.org, Mar 31 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814

commit e0ff6ab272dcc5c4d6f3b509da7e0e97acada814
Author: Eric Karl <ericrk@chromium.org>
Date: Fri Mar 31 02:13:05 2017

Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup

Crurently, when preparing a texture for blitFramebuffer, we ignore the
kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to
copy from one src rect to a different dst rect.

This change updates initDescForDstCopy and setupDstTexture to allocate
larger textures if necessary and accomodate this flags requirements.

Bug:  658277 
Change-Id: I500f10dba5700f5f7a7acad04bcdbc9ac9994835
Reviewed-on: https://skia-review.googlesource.com/10247
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/gl/GrGLGpu.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/gl/GrGLCaps.h
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/gl/GrGLCaps.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/vk/GrVkCaps.h
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/tests/BlendTest.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/include/gpu/GrCaps.h
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/GrRenderTargetContext.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/tools/gpu/GrTest.cpp
[modify] https://crrev.com/e0ff6ab272dcc5c4d6f3b509da7e0e97acada814/src/gpu/vk/GrVkCaps.cpp

Project Member

Comment 29 by bugdroid1@chromium.org, Mar 31 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/84eef5154ba166ccf5a78a4d87d3a05b92095a82

commit 84eef5154ba166ccf5a78a4d87d3a05b92095a82
Author: Brian Salomon <bsalomon@google.com>
Date: Fri Mar 31 12:08:24 2017

Revert "Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup"

This reverts commit e0ff6ab272dcc5c4d6f3b509da7e0e97acada814.

Reason for revert: a bunch of bots failed.

Original change's description:
> Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup
> 
> Crurently, when preparing a texture for blitFramebuffer, we ignore the
> kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to
> copy from one src rect to a different dst rect.
> 
> This change updates initDescForDstCopy and setupDstTexture to allocate
> larger textures if necessary and accomodate this flags requirements.
> 
> Bug:  658277 
> Change-Id: I500f10dba5700f5f7a7acad04bcdbc9ac9994835
> Reviewed-on: https://skia-review.googlesource.com/10247
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> 

TBR=bsalomon@google.com,ericrk@chromium.org,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I7fbd6c2652fe71c707d3120b035e0365fbc7fa66
Reviewed-on: https://skia-review.googlesource.com/10920
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/84eef5154ba166ccf5a78a4d87d3a05b92095a82/src/gpu/gl/GrGLGpu.cpp
[modify] https://crrev.com/84eef5154ba166ccf5a78a4d87d3a05b92095a82/src/gpu/gl/GrGLCaps.h
[modify] https://crrev.com/84eef5154ba166ccf5a78a4d87d3a05b92095a82/src/gpu/gl/GrGLCaps.cpp
[modify] https://crrev.com/84eef5154ba166ccf5a78a4d87d3a05b92095a82/src/gpu/vk/GrVkCaps.h
[modify] https://crrev.com/84eef5154ba166ccf5a78a4d87d3a05b92095a82/tests/BlendTest.cpp
[modify] https://crrev.com/84eef5154ba166ccf5a78a4d87d3a05b92095a82/include/gpu/GrCaps.h
[modify] https://crrev.com/84eef5154ba166ccf5a78a4d87d3a05b92095a82/src/gpu/GrRenderTargetContext.cpp
[modify] https://crrev.com/84eef5154ba166ccf5a78a4d87d3a05b92095a82/tools/gpu/GrTest.cpp
[modify] https://crrev.com/84eef5154ba166ccf5a78a4d87d3a05b92095a82/src/gpu/vk/GrVkCaps.cpp

Project Member

Comment 30 by bugdroid1@chromium.org, Apr 1 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/d58f040532f2f5a63d24bd17d7c588e52c0b99c3

commit d58f040532f2f5a63d24bd17d7c588e52c0b99c3
Author: Eric Karl <ericrk@chromium.org>
Date: Sat Apr 01 01:22:45 2017

Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup

Crurently, when preparing a texture for blitFramebuffer, we ignore the
kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to
copy from one src rect to a different dst rect.

This change updates initDescForDstCopy and setupDstTexture to allocate
larger textures if necessary and accomodate this flags requirements.

Bug:  658277 
Change-Id: I9f45a03d4055e0ad87c01e1d826287695096e609
Reviewed-on: https://skia-review.googlesource.com/10941
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/d58f040532f2f5a63d24bd17d7c588e52c0b99c3/src/gpu/gl/GrGLGpu.cpp
[modify] https://crrev.com/d58f040532f2f5a63d24bd17d7c588e52c0b99c3/src/gpu/gl/GrGLCaps.h
[modify] https://crrev.com/d58f040532f2f5a63d24bd17d7c588e52c0b99c3/src/gpu/gl/GrGLCaps.cpp
[modify] https://crrev.com/d58f040532f2f5a63d24bd17d7c588e52c0b99c3/src/gpu/vk/GrVkCaps.h
[modify] https://crrev.com/d58f040532f2f5a63d24bd17d7c588e52c0b99c3/tests/BlendTest.cpp
[modify] https://crrev.com/d58f040532f2f5a63d24bd17d7c588e52c0b99c3/include/gpu/GrCaps.h
[modify] https://crrev.com/d58f040532f2f5a63d24bd17d7c588e52c0b99c3/src/gpu/GrRenderTargetContext.cpp
[modify] https://crrev.com/d58f040532f2f5a63d24bd17d7c588e52c0b99c3/tools/gpu/GrTest.cpp
[modify] https://crrev.com/d58f040532f2f5a63d24bd17d7c588e52c0b99c3/src/gpu/vk/GrVkCaps.cpp

Project Member

Comment 31 by bugdroid1@chromium.org, Apr 1 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/ec61785bbb989a1901b063923da30c04ed41332f

commit ec61785bbb989a1901b063923da30c04ed41332f
Author: Mike Klein <mtklein@chromium.org>
Date: Sat Apr 01 01:54:05 2017

Revert "Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup"

This reverts commit d58f040532f2f5a63d24bd17d7c588e52c0b99c3.

Reason for revert: tests/BlendTest is failing on the Nexus Player:

https://chromium-swarm.appspot.com/task?id=353ffc638e202210
https://chromium-swarm.appspot.com/task?id=353ff5e35819ab10



Original change's description:
> Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup
> 
> Crurently, when preparing a texture for blitFramebuffer, we ignore the
> kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to
> copy from one src rect to a different dst rect.
> 
> This change updates initDescForDstCopy and setupDstTexture to allocate
> larger textures if necessary and accomodate this flags requirements.
> 
> Bug:  658277 
> Change-Id: I9f45a03d4055e0ad87c01e1d826287695096e609
> Reviewed-on: https://skia-review.googlesource.com/10941
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> 

TBR=bsalomon@google.com,ericrk@chromium.org,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I0fd6ca95bbc342f21978783b0103073179017795
Reviewed-on: https://skia-review.googlesource.com/11016
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

[modify] https://crrev.com/ec61785bbb989a1901b063923da30c04ed41332f/src/gpu/gl/GrGLGpu.cpp
[modify] https://crrev.com/ec61785bbb989a1901b063923da30c04ed41332f/src/gpu/gl/GrGLCaps.h
[modify] https://crrev.com/ec61785bbb989a1901b063923da30c04ed41332f/src/gpu/gl/GrGLCaps.cpp
[modify] https://crrev.com/ec61785bbb989a1901b063923da30c04ed41332f/src/gpu/vk/GrVkCaps.h
[modify] https://crrev.com/ec61785bbb989a1901b063923da30c04ed41332f/tests/BlendTest.cpp
[modify] https://crrev.com/ec61785bbb989a1901b063923da30c04ed41332f/include/gpu/GrCaps.h
[modify] https://crrev.com/ec61785bbb989a1901b063923da30c04ed41332f/src/gpu/GrRenderTargetContext.cpp
[modify] https://crrev.com/ec61785bbb989a1901b063923da30c04ed41332f/tools/gpu/GrTest.cpp
[modify] https://crrev.com/ec61785bbb989a1901b063923da30c04ed41332f/src/gpu/vk/GrVkCaps.cpp

Project Member

Comment 32 by bugdroid1@chromium.org, Apr 4 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/744808823f635c863d7ca6b4eba652115c92ff85

commit 744808823f635c863d7ca6b4eba652115c92ff85
Author: Eric Karl <ericrk@chromium.org>
Date: Tue Apr 04 17:26:38 2017

Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup

Crurently, when preparing a texture for blitFramebuffer, we ignore the
kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to
copy from one src rect to a different dst rect.

This change updates initDescForDstCopy and setupDstTexture to allocate
larger textures if necessary and accomodate this flags requirements.

Bug:  658277 
Change-Id: If4489ac3192dcf6f9996494c63821279721d0a12
Reviewed-on: https://skia-review.googlesource.com/11141
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/744808823f635c863d7ca6b4eba652115c92ff85/src/gpu/gl/GrGLGpu.cpp
[modify] https://crrev.com/744808823f635c863d7ca6b4eba652115c92ff85/src/gpu/gl/GrGLCaps.h
[modify] https://crrev.com/744808823f635c863d7ca6b4eba652115c92ff85/src/gpu/gl/GrGLCaps.cpp
[modify] https://crrev.com/744808823f635c863d7ca6b4eba652115c92ff85/src/gpu/vk/GrVkCaps.h
[modify] https://crrev.com/744808823f635c863d7ca6b4eba652115c92ff85/tests/BlendTest.cpp
[modify] https://crrev.com/744808823f635c863d7ca6b4eba652115c92ff85/include/gpu/GrCaps.h
[modify] https://crrev.com/744808823f635c863d7ca6b4eba652115c92ff85/src/gpu/GrRenderTargetContext.cpp
[modify] https://crrev.com/744808823f635c863d7ca6b4eba652115c92ff85/tools/gpu/GrTest.cpp
[modify] https://crrev.com/744808823f635c863d7ca6b4eba652115c92ff85/src/gpu/vk/GrVkCaps.cpp

Project Member

Comment 33 by bugdroid1@chromium.org, Apr 4 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/72e551e637c5f3047a963f9c5bd873d7f04f8b5a

commit 72e551e637c5f3047a963f9c5bd873d7f04f8b5a
Author: Eric Karl <ericrk@chromium.org>
Date: Tue Apr 04 22:51:53 2017

Support Canvas Clip on Blit Framebuffer

The previous fix to blit framebuffer didn't take cases where
the canvas had a clip applied into account. Fix and update
the unit test to add this case.

Bug:  658277 
Change-Id: If3a9d2c8ddf955164cf529c9d6036618f957e426
Reviewed-on: https://skia-review.googlesource.com/11300
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/72e551e637c5f3047a963f9c5bd873d7f04f8b5a/src/gpu/GrRenderTargetContext.cpp
[modify] https://crrev.com/72e551e637c5f3047a963f9c5bd873d7f04f8b5a/tests/BlendTest.cpp

Project Member

Comment 34 by bugdroid1@chromium.org, Apr 4 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/72e551e637c5f3047a963f9c5bd873d7f04f8b5a

commit 72e551e637c5f3047a963f9c5bd873d7f04f8b5a
Author: Eric Karl <ericrk@chromium.org>
Date: Tue Apr 04 22:51:53 2017

Support Canvas Clip on Blit Framebuffer

The previous fix to blit framebuffer didn't take cases where
the canvas had a clip applied into account. Fix and update
the unit test to add this case.

Bug:  658277 
Change-Id: If3a9d2c8ddf955164cf529c9d6036618f957e426
Reviewed-on: https://skia-review.googlesource.com/11300
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/72e551e637c5f3047a963f9c5bd873d7f04f8b5a/src/gpu/GrRenderTargetContext.cpp
[modify] https://crrev.com/72e551e637c5f3047a963f9c5bd873d7f04f8b5a/tests/BlendTest.cpp

Labels: Merge-Request-58
Status: Started (was: Assigned)
Fixed on ToT. Requesting merge to M58.
Project Member

Comment 36 by sheriffbot@chromium.org, Apr 6 2017

Labels: -Merge-Request-58 Hotlist-Merge-Approved Merge-Approved-58
Your change meets the bar and is auto-approved for M58. Please go ahead and merge the CL to branch 3029 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Your change is approved for M58. Please merge ASAP so that it will be picked up for next Beta Release.

There are multiple fixes, do we have enough automation coverage?
Project Member

Comment 38 by sheriffbot@chromium.org, Apr 10 2017

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
It looks like my changes depend on:

commit 467921e5e6479fe9cebba125657d8e33d89004ae
Author: Brian Salomon <bsalomon@google.com>
Date:   Mon Mar 6 16:17:12 2017 -0500

    Move GrDrawOp pipeline/clip processing to GrRenderTargetContext

    This is currently done in GrOpList. However, it can trigger resource creation, which in turn can trigger a flush. In the future flushing may destroy the op list.

    Change-Id: I21cb1e10060bf31c95431c0511fcfff637cd6498
    Reviewed-on: https://skia-review.googlesource.com/9304
    Reviewed-by: Greg Daniel <egdaniel@google.com>
    Commit-Queue: Brian Salomon <bsalomon@google.com>

Brian, how tricky do you expect this is to merge? Should we just wait for M59?
Ah, I see, functions were just moved around, I think we can merge this without pulling in your larger change.
Re #37 - We didn't have enough automation coverage, which is why we took 2 CLs to land this. However, each of these CLs added additional unit tests, which should ensure that this keeps working in the future.
Project Member

Comment 42 by bugdroid1@chromium.org, Apr 11 2017

Labels: merge-merged-m58
The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/1f1646dd861c4b78f0a935b45f7802c787dac198

commit 1f1646dd861c4b78f0a935b45f7802c787dac198
Author: Eric Karl <ericrk@chromium.org>
Date: Tue Apr 11 03:36:22 2017

Support Canvas Clip on Blit Framebuffer

The previous fix to blit framebuffer didn't take cases where
the canvas had a clip applied into account. Fix and update
the unit test to add this case.

AND

Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup

Crurently, when preparing a texture for blitFramebuffer, we ignore the
kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to
copy from one src rect to a different dst rect.

This change updates initDescForDstCopy and setupDstTexture to allocate
larger textures if necessary and accomodate this flags requirements.

Bug:  658277 ,  658277 

NOTREECHECKS=true
NOTRY=true
NOPRESUBMIT=true

Change-Id: I36a54072ee15d035249ef0b0f6cf512e791dd218
Reviewed-on: https://skia-review.googlesource.com/13085
Reviewed-by: Brian Salomon <bsalomon@google.com>

[modify] https://crrev.com/1f1646dd861c4b78f0a935b45f7802c787dac198/src/gpu/vk/GrVkGpu.h
[modify] https://crrev.com/1f1646dd861c4b78f0a935b45f7802c787dac198/src/gpu/gl/GrGLGpu.cpp
[modify] https://crrev.com/1f1646dd861c4b78f0a935b45f7802c787dac198/src/gpu/GrGpu.h
[modify] https://crrev.com/1f1646dd861c4b78f0a935b45f7802c787dac198/src/gpu/GrRenderTargetOpList.cpp
[modify] https://crrev.com/1f1646dd861c4b78f0a935b45f7802c787dac198/src/gpu/gl/GrGLCaps.cpp
[modify] https://crrev.com/1f1646dd861c4b78f0a935b45f7802c787dac198/src/gpu/gl/GrGLGpu.h
[modify] https://crrev.com/1f1646dd861c4b78f0a935b45f7802c787dac198/src/gpu/vk/GrVkGpu.cpp
[modify] https://crrev.com/1f1646dd861c4b78f0a935b45f7802c787dac198/tests/BlendTest.cpp
[modify] https://crrev.com/1f1646dd861c4b78f0a935b45f7802c787dac198/tools/gpu/GrTest.cpp

Project Member

Comment 43 by bugdroid1@chromium.org, Apr 11 2017

The following revision refers to this bug:
  https://skia.googlesource.com/skia/+/4c81ba6ba3a3270db809bf7d4c3bc782694a56a4

commit 4c81ba6ba3a3270db809bf7d4c3bc782694a56a4
Author: Mike Klein <mtklein@chromium.org>
Date: Tue Apr 11 13:38:34 2017

Revert "Support Canvas Clip on Blit Framebuffer"

This reverts commit 1f1646dd861c4b78f0a935b45f7802c787dac198.

Reason for revert: Vulkan build failures, many non-Vulkan test failures.

Original change's description:
> Support Canvas Clip on Blit Framebuffer
> 
> The previous fix to blit framebuffer didn't take cases where
> the canvas had a clip applied into account. Fix and update
> the unit test to add this case.
> 
> AND
> 
> Respect kRectsMustMatchForMSAASrc_BlitFramebufferFlag in dst setup
> 
> Crurently, when preparing a texture for blitFramebuffer, we ignore the
> kRectsMustMatchForMSAASrc_BlitFramebufferFlag, and may attempt to
> copy from one src rect to a different dst rect.
> 
> This change updates initDescForDstCopy and setupDstTexture to allocate
> larger textures if necessary and accomodate this flags requirements.
> 
> Bug:  658277 ,  658277 
> 
> NOTREECHECKS=true
> NOTRY=true
> NOPRESUBMIT=true
> 
> Change-Id: I36a54072ee15d035249ef0b0f6cf512e791dd218
> Reviewed-on: https://skia-review.googlesource.com/13085
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> 

TBR=bsalomon@google.com,ericrk@chromium.org,mtklein@chromium.org,reviews@skia.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Change-Id: I12d8f4eb0e089b1ed7f38620395066b4e1dcefdd
Reviewed-on: https://skia-review.googlesource.com/13135
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>

[modify] https://crrev.com/4c81ba6ba3a3270db809bf7d4c3bc782694a56a4/src/gpu/vk/GrVkGpu.h
[modify] https://crrev.com/4c81ba6ba3a3270db809bf7d4c3bc782694a56a4/src/gpu/gl/GrGLGpu.cpp
[modify] https://crrev.com/4c81ba6ba3a3270db809bf7d4c3bc782694a56a4/src/gpu/GrGpu.h
[modify] https://crrev.com/4c81ba6ba3a3270db809bf7d4c3bc782694a56a4/src/gpu/GrRenderTargetOpList.cpp
[modify] https://crrev.com/4c81ba6ba3a3270db809bf7d4c3bc782694a56a4/src/gpu/gl/GrGLCaps.cpp
[modify] https://crrev.com/4c81ba6ba3a3270db809bf7d4c3bc782694a56a4/src/gpu/gl/GrGLGpu.h
[modify] https://crrev.com/4c81ba6ba3a3270db809bf7d4c3bc782694a56a4/src/gpu/vk/GrVkGpu.cpp
[modify] https://crrev.com/4c81ba6ba3a3270db809bf7d4c3bc782694a56a4/tests/BlendTest.cpp
[modify] https://crrev.com/4c81ba6ba3a3270db809bf7d4c3bc782694a56a4/tools/gpu/GrTest.cpp

Status: Fixed (was: Started)
This change appears very hard to merge. We'll just wait for M59 to roll out.
If there is no pending work in M58, please remove Merge-Approved-58 label.
Labels: -Merge-Approved-58 -merge-merged-m58

Sign in to add a comment