Closed Bug 1381911 Opened 7 years ago Closed 7 months ago

Bug 1359527 broke the radient gradient fade on http://zzreader.com/img/ss/x11b.svg

Categories

(Core :: Graphics, defect, P3)

defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox55 --- wontfix
firefox56 --- fix-optional
firefox57 --- fix-optional

People

(Reporter: wisniewskit, Assigned: bas.schouten)

References

()

Details

(Whiteboard: [webcompat][gfx-noted])

Attachments

(2 files)

On the Quantum reference hardware, mozregression tells me that bug 1359527 broke the radient gradient fade effect on the SVG at http://zzreader.com/img/ss/x11b.svg (it is now like a circular mask, rather than being a gradual fade to white).
Assignee: nobody → mchang
Whiteboard: [webcompat] → [webcompat][gfx-noted]
Attached patch Lots of loggingSplinter Review
I'm very confused. Essentially, the alpha value results we're getting from Alpha to Luminance effect are always fully opaque in this case, hence the random white lines. It should be a nice gradual mask, but it isn't.

This patch has lots of logging to readback the input bitmap, and prints out both the luminance output when done on the CPU and when done on the GPU. The GPU results are always 255. I tried a couple of options such as doing inverse gamma [1] as documented at the bottom, but that didn't matter. What is interesting, is that using the ID2D1DeviceContext that created the original Luminance Effect [2] when realizing the bitmap creates a different but still inaccurate result. The random output we get from the luminance output from D2D is actually different on my MacBook Pro vs iMac (both running windows). Random zeroes are inserted on the iMac but not the MacBook Pro.

Bas or Jeff, does any of this make sense to you? Is there something else I can try?

[1] https://msdn.microsoft.com/en-us/library/windows/desktop/hh706363(v=vs.85).aspx
[2] http://searchfox.org/mozilla-central/source/gfx/2d/SourceSurfaceD2D1.cpp#89
Flags: needinfo?(jmuizelaar)
Flags: needinfo?(bas)
I wonder if it would be worth trying this out with out the D2D debug layer as well as the d3d11 debug layer.
(In reply to Jeff Muizelaar [:jrmuizel] from comment #3)
> I wonder if it would be worth trying this out with out the D2D debug layer
> as well as the d3d11 debug layer.

I tried with both enabled. There is an error with Advanced LAyers thats causing some crash to happen on startup, but this still happens with AL disabled. With AL disabled, there are no errors in the debug layer or d3d debug layer on the parent process during device / factory creation or in the content process during creating the SVG / device initialization :(.
(In reply to Mason Chang [:mchang] from comment #2)
> Created attachment 8888588 [details] [diff] [review]
> Lots of logging
> 
> I'm very confused. Essentially, the alpha value results we're getting from
> Alpha to Luminance effect are always fully opaque in this case, hence the
> random white lines. It should be a nice gradual mask, but it isn't.
> 
> This patch has lots of logging to readback the input bitmap, and prints out
> both the luminance output when done on the CPU and when done on the GPU. The
> GPU results are always 255. I tried a couple of options such as doing
> inverse gamma [1] as documented at the bottom, but that didn't matter. What
> is interesting, is that using the ID2D1DeviceContext that created the
> original Luminance Effect [2] when realizing the bitmap creates a different
> but still inaccurate result. The random output we get from the luminance
> output from D2D is actually different on my MacBook Pro vs iMac (both
> running windows). Random zeroes are inserted on the iMac but not the MacBook
> Pro.
> 
> Bas or Jeff, does any of this make sense to you? Is there something else I
> can try?
> 
> [1]
> https://msdn.microsoft.com/en-us/library/windows/desktop/hh706363(v=vs.85).
> aspx
> [2]
> http://searchfox.org/mozilla-central/source/gfx/2d/SourceSurfaceD2D1.cpp#89

FWIW, the AL errors should be fixed.

Could it be we're forgetting to initialize a surface somewhere? That could at least explain differences between devices.
Flags: needinfo?(bas)
Blocks: 1359527
No longer depends on: 1359527
Assignee: mchang → nobody
Assignee: nobody → bas
Priority: P3 → P2
Bas, before I file a dupe, does this look like the same bug as https://github.com/webcompat/web-bugs/issues/13026#issuecomment-341545669? Or possibly something related, but worth filing its on bug on?
Flags: needinfo?(bas)
(In reply to Mike Taylor [:miketaylr] (58 Regression Engineering Owner) from comment #6)
> Bas, before I file a dupe, does this look like the same bug as
> https://github.com/webcompat/web-bugs/issues/13026#issuecomment-341545669?
> Or possibly something related, but worth filing its on bug on?

I suspect it may very well be, although I'm not 100% certain.
Flags: needinfo?(bas)
Moving to p3 because no activity for at least 1 year(s).
See https://github.com/mozilla/bug-handling/blob/master/policy/triage-bugzilla.md#how-do-you-triage for more information
Priority: P2 → P3

Migrating Webcompat whiteboard priorities to project flags. See bug 1547409.

Webcompat Priority: --- → ?

See bug 1547409. Migrating whiteboard priority tags to program flags.

Webcompat Priority: ? → revisit

Tom, does this still reproduce for you on Windows?

Flags: needinfo?(twisniewski)
Severity: normal → S3

Pardon the delay here, but yes: the test case is working on the latest nightlies on my reference laptop, so this should be fixed.

Flags: needinfo?(twisniewski)
Flags: needinfo?(jmuizelaar)
Status: NEW → RESOLVED
Closed: 7 months ago
Resolution: --- → WORKSFORME
Webcompat Priority: revisit → ---
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: