Closed Bug 1206076 Opened 4 years ago Closed 4 years ago

SkiaGL is not used for canvas anywhere

Categories

(Core :: Canvas: 2D, defect)

All
Unspecified
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla44
Tracking Status
firefox41 - wontfix
firefox42 + fixed
firefox43 + fixed
firefox44 --- fixed
relnote-firefox --- -

People

(Reporter: bas.schouten, Assigned: bas.schouten)

References

Details

(Keywords: regression)

Attachments

(1 file)

I introduced a bug that causes us never to use accelerated Skia GL canvas.
Hardware: Unspecified → All
Ritu, you should be aware of this issue.
Flags: needinfo?(rkothari)
If I understand correctly, it causes performance regressions on non-Windows system (including Android)
I don't think we can/should block the 41 release as this regression is pretty old (Bas said most of the 41 cycle).
This has not been tested enough.

However, we should mention that in the release notes in the know issues.
Release Note Request (optional, but appreciated)
[Why is this notable]: Might impact some games
[Suggested wording]: Performance regression on 2D canvas (1206076) 
[Links (documentation, blog post, etc)]: This bug
relnote-firefox: --- → ?
Keywords: regression
Duplicate of this bug: 1191885
Attachment #8662925 - Flags: review?(jmuizelaar) → review+
I can confirm this causes us to use SkiaGL on OS X
Brad, there is a performance regression in 41 with canvas on Android. How far do you want the fix uplifted?
Flags: needinfo?(blassey.bugs)
Sotaro, can you check with Bas if we still have B2G try run failures, and help take care of them?  We want to enable SkiaGL canvas on mobile platforms as soon as possible (where it's a regression that we're not using it.)
Flags: needinfo?(sotaro.ikeda.g)
(In reply to Milan Sreckovic [:milan] from comment #8)
> Brad, there is a performance regression in 41 with canvas on Android. How
> far do you want the fix uplifted?

Probably too late for 41 unfortunately, let's get this into 42.
Flags: needinfo?(blassey.bugs)
Depends on: 1206763
https://hg.mozilla.org/mozilla-central/rev/499fd45447a2
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla44
The checked-in patch sets gfx.canvas.azure.accelerated to false in two places. I don't see that in the attached patch or discussed in the bug. Was it intentional?
Flags: needinfo?(bas)
(In reply to Jesse Ruderman from comment #12)
> The checked-in patch sets gfx.canvas.azure.accelerated to false in two
> places. I don't see that in the attached patch or discussed in the bug. Was
> it intentional?

Yes, re-enabling acceleration on those platforms caused a bunch of test failures, on one of those platforms it was never enabled in the first place. Setting the pref to false allowed us to re-activate acceleration on Android and remove the confusion as to whether acceleration is enabled or disabled on a platform.
Flags: needinfo?(bas)
Based on comment 10, this is a wontfix for 41. Tracked for 42+.
Flags: needinfo?(rkothari)
Bas, are you planning to uplift the patch to 42? Thanks
Flags: needinfo?(bas)
Comment on attachment 8662925 [details] [diff] [review]
Use a specialized PersistentBufferProvider for Canvas2D when using a SkiaGL DrawTarget.

Approval Request Comment
[Feature/regressing bug #]: 1167235
[User impact if declined]: Unaccelerated Canvas on Android
[Describe test coverage new/current, TreeHerder]: Aurora and nightly testing
[Risks and why]: Relatively low, a lot of testing and this code used to work
[String/UUID change made/needed]: None
Flags: needinfo?(bas)
Attachment #8662925 - Flags: approval-mozilla-beta?
I don't think this has landed on aurora yet. Bas can you also request uplift so it gets into 43? Thanks.
Flags: needinfo?(bas)
Comment on attachment 8662925 [details] [diff] [review]
Use a specialized PersistentBufferProvider for Canvas2D when using a SkiaGL DrawTarget.

[Triage Comment]
OK, let's try that.
Attachment #8662925 - Flags: approval-mozilla-beta?
Attachment #8662925 - Flags: approval-mozilla-beta+
Attachment #8662925 - Flags: approval-mozilla-aurora+
RE uplifts -- this bug caused a graphical regression on Nightly, on a fairly prominent site (forecast.io).  See bug 1210444 and its attached screencast.

Does that influence our calculus about whether we actually want this on branches?  (Might want to back out comment 19 and/or 20.)
(In reply to Daniel Holbert [:dholbert] from comment #21)
> RE uplifts -- this bug caused a graphical regression on Nightly, on a fairly
> prominent site (forecast.io).  See bug 1210444 and its attached screencast.
> 
> Does that influence our calculus about whether we actually want this on
> branches?  (Might want to back out comment 19 and/or 20.)

I think we still want to uplift, we just want to turn the pref off on Android :-). Better to have it working but preffed off, but preffed on and not doing anything :-).
Flags: needinfo?(bas)
That makes sense, sure. (RE rethinking the uplifts -- I was mostly talking about the pref-enabling part of this patch.)

Could you take care of that?  (landing on trunk & uplifting a pref-disabling patch, as a followup to comment 19 & comment 20's landings -- either here or on a separate bug, whichever makes the most sense)

Then, we (you? :D) can investigate bug 1210444 with a bit less urgency (and with a local pref-enable to make the bug visible).
Flags: needinfo?(bas)
Are you reopening here & backing this out, or filing a new bug to flip the pref?
(In reply to Daniel Holbert [:dholbert] from comment #23)
> That makes sense, sure. (RE rethinking the uplifts -- I was mostly talking
> about the pref-enabling part of this patch.)
> 
> Could you take care of that?  (landing on trunk & uplifting a pref-disabling
> patch, as a followup to comment 19 & comment 20's landings -- either here or
> on a separate bug, whichever makes the most sense)
> 
> Then, we (you? :D) can investigate bug 1210444 with a bit less urgency (and
> with a local pref-enable to make the bug visible).

Not me, don't have an android device, I'll leave that to Milan to decide ;-). But yeah, I'll take care of that.
Flags: needinfo?(bas)
(In reply to Daniel Holbert [:dholbert] from comment #23)
> 
> Then, we (you? :D) can investigate bug 1210444 with a bit less urgency (and
> with a local pref-enable to make the bug visible).

One possibility of the flickering is that SurfaceFactory::NewTexClient() recycles SharedSurfaceTextureClient, but it seems not correctly recycled except gonk. On another platform, SharedSurfaceTextureClient seems recycled too early.
Flags: needinfo?(sotaro.ikeda.g)
Relnote nomination for this one does not make sense anymore as 41 will be end of life'd tomorrow.
(In reply to Ritu Kothari (:ritu) from comment #27)
> Relnote nomination for this one does not make sense anymore as 41 will be
> end of life'd tomorrow.

It was first fixed for 42 (not 41), does it make sense to still add the relnote in 42 to highlight it?
Flags: needinfo?(rkothari)
Redirecting to Sylvestre as he owns 42.
Flags: needinfo?(rkothari) → needinfo?(sledru)
Ryan, you would like to add something like "Accelerated Skia GL canvas was not activated" as a Fixed Issues for Android. Correct?
Flags: needinfo?(sledru) → needinfo?(jryans)
(In reply to Sylvestre Ledru [:sylvestre] from comment #30)
> Ryan, you would like to add something like "Accelerated Skia GL canvas was
> not activated" as a Fixed Issues for Android. Correct?

Yes, that's what I was thinking.  Also, according to comment 2, it also affects non-Windows desktop systems, so it seems both desktop and Android notes should be updated.

I am mostly just an observer here though, so :bas.schouten is probably best to ask if we need confirmation.
Flags: needinfo?(jryans)
You need to log in before you can comment on or make changes to this bug.