Closed Bug 1251431 Opened 8 years ago Closed 8 years ago

Demo doesn't work on Win10

Categories

(Core :: Graphics, defect)

45 Branch
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla48
Tracking Status
firefox44 --- unaffected
firefox45 --- wontfix
firefox46 --- verified
firefox47 --- verified
firefox48 --- verified
firefox-esr45 --- affected

People

(Reporter: canuckistani, Assigned: bas.schouten)

References

Details

(Keywords: regression, Whiteboard: [gfx-noted])

Attachments

(5 files)

STR:

1. open this demo on Win10 / Nightly http://codepen.io/thebabydino/details/yOByme#comment-id-130071

ER: https://twitter.com/anatudor/status/702622449716822020

AR: blank 

This demo seems to work correctly on Win7 and OS X just fine.
This is probably gpu or resolution dependent. bwinton tested on a Win10 VM and it worked fine, and in vmware webgl rendering and other acceleration are done in software. On any win10 / intel integrated machine we tested, Win10 fails.
I don't have any "real" Windows machines to test on sorry. :(
Just tested on Win10 with FF46: it's blank for me.
Tested in FF43: works fine!
Whiteboard: [gfx-noted]
I can reproduce the problem on Windows7 HWA on.

Regression window:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=1e5f3d1151d60a1edd6424a35a2e38b5ab17adad&tochange=af5c9cf6898b0e2931a809774387cad5953363c3

Via local build,
Last Good: 11ce065429a5
First Bad: 5515fd47eb5a

Triggered by: 5515fd47eb5a	Bas Schouten — Bug 1210560 - Part 3: Convert more complex SVG usecases to PushGroupForBlendBack. r=jwatt r=jrmuizel
Attached file Bug1251431.html
This is apparently a regression from my work. I will have a look at this.
Assignee: nobody → bas
Status: NEW → ASSIGNED
Flags: needinfo?(bas)
Flags: needinfo?(bas)
Reftest upcoming.
Comment on attachment 8728757 [details]
MozReview Request: Bug 1251431 - Part 1: Allow usage of an A8 source pattern to MaskSurface for D2D 1.1 Moz2D backend. r=jwatt

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/39093/diff/1-2/
Comment on attachment 8728758 [details]
MozReview Request: Bug 1251431 - Part 2: Do not apply the device transform when drawing to an already intermediate surface. r=jwatt

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/39095/diff/1-2/
Comment on attachment 8728757 [details]
MozReview Request: Bug 1251431 - Part 1: Allow usage of an A8 source pattern to MaskSurface for D2D 1.1 Moz2D backend. r=jwatt

https://reviewboard.mozilla.org/r/39093/#review35893

::: gfx/2d/DrawTargetD2D1.cpp:1634
(Diff revision 2)
> +      // See bug 1251431, at least FillOpacityMask does not appear to allow a source bitmapbrush
> +      // with source format A8. This creates a BGRA surface with the same alpha values that
> +      // the A8 surface has.

This comment is a bit confusing because it refers to FillOpacityMask which is called directly below it, but you're refering to other FillOpacityMask calls elsewhere that will consume the pattern. I'd suggest rewording this comment to something like:

      // Some consumers of the brush that we return will not work if we return
      // a source bitmapbrush with source format A8. Specifically,
      // FillOpacityMask does not appear to support this - see bug 1251431.
      // This code works around that by creating a BGRA surface with the same
      // alpha values that the A8 surface has.
Attachment #8728757 - Flags: review?(jwatt) → review+
Comment on attachment 8728758 [details]
MozReview Request: Bug 1251431 - Part 2: Do not apply the device transform when drawing to an already intermediate surface. r=jwatt

https://reviewboard.mozilla.org/r/39095/#review35897
Attachment #8728758 - Flags: review?(jwatt) → review+
https://hg.mozilla.org/mozilla-central/rev/da29c45e89db
https://hg.mozilla.org/mozilla-central/rev/1bbc2f4a3065
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
Should part1 be uplifted?
Flags: needinfo?(bas)
(In reply to Jeff Muizelaar [:jrmuizel] from comment #20)
> Should part1 be uplifted?

Maybe, I seem to recall more stuff was landed on top of this now..
Flags: needinfo?(bas)
(In reply to Bas Schouten (:bas.schouten) from comment #21)
> (In reply to Jeff Muizelaar [:jrmuizel] from comment #20)
> > Should part1 be uplifted?
> 
> Maybe, I seem to recall more stuff was landed on top of this now..

Like, the work you did...
Comment on attachment 8728757 [details]
MozReview Request: Bug 1251431 - Part 1: Allow usage of an A8 source pattern to MaskSurface for D2D 1.1 Moz2D backend. r=jwatt

Approval Request Comment
[Feature/regressing bug #]: This is needed to fix bug 1258650
[User impact if declined]: bug 1258650 will remain unfixed for D2D users
[Describe test coverage new/current, TreeHerder]: Has been in 48 for a while
[Risks and why]:
Attachment #8728757 - Flags: approval-mozilla-release?
Attachment #8728757 - Flags: approval-mozilla-beta?
Attachment #8728757 - Flags: approval-mozilla-aurora?
Comment on attachment 8728757 [details]
MozReview Request: Bug 1251431 - Part 1: Allow usage of an A8 source pattern to MaskSurface for D2D 1.1 Moz2D backend. r=jwatt

I am sorry but I cannot take the risk for release...
Attachment #8728757 - Flags: approval-mozilla-release? → approval-mozilla-release-
I believe bug 1258650 is on 45 ESR - we would need this one on 45 ESR then as well, right?
Flags: needinfo?(bas)
That is my understanding.
(In reply to Jeff Muizelaar [:jrmuizel] from comment #26)
> That is my understanding.

Only part 1 if I'm not mistaking, Jeff's patch overrides part 2.
Flags: needinfo?(bas)
Comment on attachment 8728757 [details]
MozReview Request: Bug 1251431 - Part 1: Allow usage of an A8 source pattern to MaskSurface for D2D 1.1 Moz2D backend. r=jwatt

Part 1 should uplift to aurora and beta. This should make it into beta 10.
Attachment #8728757 - Flags: approval-mozilla-beta?
Attachment #8728757 - Flags: approval-mozilla-beta+
Attachment #8728757 - Flags: approval-mozilla-aurora?
Attachment #8728757 - Flags: approval-mozilla-aurora+
Flags: qe-verify+
Reproduced the initial issue on Windows 10 x64 with the attached testcases using Firefox 45.0.2.

There is a small inconsistency between 46.0b10 and latest Nightly/Aurora builds, but only with the reduced test case:
*46 beta 10: http://i.imgur.com/9VzNYd5.png
*Latest Aurora/Nightly: http://i.imgur.com/ZPnetel.png
*Also mentioning that Chrome displays a square instead of a circle.
The other testcase works correctly on the mentioned versions.

Testing was performed using:
*Latest 48.0a1 Nightly, build ID:20160411030231,
*Latest 47.0a2 Aurora, build ID: 20160411004020,
*Firefox 46 beta 10, build ID: 20160411042519.

Assuming it's safe to mark this bug as verified, please let me know if we should file a separate issue for the above statement.
Version: unspecified → 45 Branch
Pushed by jwatt@jwatt.org:
https://hg.mozilla.org/integration/mozilla-inbound/rev/b46b071d48cf
part 3 - Reftest for mask and clipPath applied to the same element. r=Bas
Comment on attachment 8728760 [details]
MozReview Request: Bug 1251431 - Part 3: Add a reftest for masked clip paths. r=jwatt

https://reviewboard.mozilla.org/r/39097/#review65256

As discussed on IRC some time ago, I wrote a new regression test that actually fails pre-patch, and that doesn't contain the unnecessary HTML junk.
Attachment #8728760 - Flags: review?(jwatt) → review-
Backed out part 3 for failing the new reftest:

https://hg.mozilla.org/integration/mozilla-inbound/rev/5b08ae92f655

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=mozilla-inbound&revision=b46b071d48cf7d26edcd077970e1c3445248a171
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=32970470&repo=mozilla-inbound

REFTEST TEST-UNEXPECTED-FAIL | file:///builds/slave/test/build/tests/reftest/tests/layout/reftests/svg/mask-and-clipPath-2.html == file:///builds/slave/test/build/tests/reftest/tests/layout/reftests/svg/pass.svg | (LOAD ONLY), max difference: 255, number of differing pixels: 755000
Flags: needinfo?(jwatt)
Pushed by jwatt@jwatt.org:
https://hg.mozilla.org/integration/mozilla-inbound/rev/34f662c8a932
part 3 - Reftest for mask and clipPath applied to the same element. r=Bas
Flags: needinfo?(jwatt)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: