Closed Bug 1432039 Opened 7 years ago Closed 7 years ago

AzureCanvasBackend and AzureContentBackend in about:support are not displayed correctly

Categories

(Core :: Graphics, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla61
Tracking Status
firefox61 --- fixed

People

(Reporter: h.winnemoeller, Assigned: sotaro)

References

Details

Attachments

(1 file, 3 obsolete files)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0 Build ID: 20180121100439 Steps to reproduce: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0 Build-ID: 20180121100439 1. Create a fresh profile, open about:config 2. Set "gfx.canvas.azure.backends" to "skia,cairo" 3. Set "gfx.content.azure.backends" to "skia,cairo" 4. Restart Firefox Actual results: about:support shows AzureCanvasBackend: Direct2D 1.1 AzureContentBackend: Direct2D 1.1 Expected results: about:support shows AzureCanvasBackend: Skia AzureContentBackend: Skia
Component: Untriaged → Graphics
Product: Firefox → Core
Have you tried to disable the hardware acceleration? Set the value of layers.acceleration.disabled to true, then restart the browser. In this case, I see that AzureCanvasBackend (UI Process) and AzureContentBackend (UI Process) are both set on skia. AzureCanvasBackend and AzureContentBackend entries disappear (checked on 59.0b7 (20180205211730) and 58.0.2 (20180206200532)). In fact, you don't even need to set other pref, except layers.acceleration.disabled.
Flags: needinfo?(skisailer)
(In reply to Iulia Cristescu, QA [:JuliaC] from comment #1) > In fact, you don't even need to set other pref, except layers.acceleration.disabled. I can reproduce that behaviour. Still, I am not sure that the about:support page always shows the actual state of which API is used for AzureCanvasBackend and AzureContentBackend. When investigating https://bugzilla.mozilla.org/show_bug.cgi?id=1422288, one of the solutions was > [r]emoving direct2d1.1 from gfx.canvas.azure.backends (https://bugzilla.mozilla.org/show_bug.cgi?id=1422288#c3) That fixed the bug for me, but about:support still statet that "Direct2D 1.1" was still enabled although it clearly was not in this case. I also removed the "Direct2D 1.1" from gfx.content.azure.backends to further investigate that behaviour and it also did not show any difference on the about:support page.
Flags: needinfo?(skisailer)
I confirmed the problem. I take a look.
Assignee: nobody → sotaro.ikeda.g
The prefs worked as expected, but about:support showed wrong value. The problem existed at gfxPlatform::GetAzureBackendInfo(). When gpu process exists, it decides "AzureCanvasBackend" and "AzureContentBackend" just from gfxConfig::IsEnabled(gfx::Feature::DIRECT2D). It could becomes true even if the prefs does not have direct2d1.1. https://dxr.mozilla.org/mozilla-central/source/gfx/thebes/gfxPlatform.cpp#2727 Then the problem did not happen when multi process(e10s) was disabled.
It seems better to improve the assumption of content process's back-end prefs.
Confirmed attachment 8951529 [details] [diff] [review] addressed the problem for me.
Attachment #8951529 - Flags: review?(matt.woodrow)
Comment on attachment 8951529 [details] [diff] [review] patch - improve assumption of content process's back-end prefs Review of attachment 8951529 [details] [diff] [review]: ----------------------------------------------------------------- While the fully correct thing would be to get this information back from the content processes, this simplification, even with the duplicated logic, is going to be correct a great majority of the time. The only thing I would add is a comment in gfxWindowsPlatform... code that its logic is being used elsewhere as well. That way if somebody changes the logic in one place, they will know to redo it in the other as well.
Attachment #8951529 - Flags: feedback+
Attachment #8951529 - Flags: review?(matt.woodrow)
See Also: → 1314803
See Also: → 1421818
(In reply to Milan Sreckovic [:milan] from comment #8) > Comment on attachment 8951529 [details] [diff] [review] > patch - improve assumption of content process's back-end prefs > > Review of attachment 8951529 [details] [diff] [review]: > ----------------------------------------------------------------- > > While the fully correct thing would be to get this information back from the > content processes, this simplification, even with the duplicated logic, is > going to be correct a great majority of the time. The only thing I would > add is a comment in gfxWindowsPlatform... code that its logic is being used > elsewhere as well. That way if somebody changes the logic in one place, > they will know to redo it in the other as well. I am going to keep the assumption. But I am going to remove logic duplication, since the logic change could happen like Bug 1421818.
Attachment #8951529 - Attachment is obsolete: true
Updated a comment.
Attachment #8957476 - Attachment is obsolete: true
attachment 8957479 [details] [diff] [review] added BackendPrefsData and gfxPlatform::GetBackendPrefs() to unify and simplify the logic.
Fixed build failure on mac.
Attachment #8957479 - Attachment is obsolete: true
Attachment #8957510 - Flags: review?(jmuizelaar)
Attachment #8957510 - Flags: review?(jmuizelaar) → review+
Pushed by sikeda@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/c71ee5e970f6 Improve assumption of content process's back-end prefs r=jrmuizel
Status: UNCONFIRMED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
QA Whiteboard: [good first verify]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: