Closed Bug 1498162 Opened Last year Closed Last year

Blacklisting of some hardware features can't work

Categories

(Core :: Graphics: Layers, enhancement)

enhancement
Not set

Tracking

()

RESOLVED FIXED
mozilla64
Tracking Status
firefox64 --- fixed

People

(Reporter: jya, Assigned: jya)

References

Details

Attachments

(1 file)

In bug 1437334, blacklisting of NV12 was added.

This is done in the D3D11Checks [0], which calls for gfxVars::DXNV12Blocked().

D3D11Checks is initially called from gfxPlatform::Init() which will initialise gfxWindowsPlatform [1]

and then later call gPlatorm->InitAcceleration() [2].

Problem is that at this time, gfxVars::DXNV12Blocked() hasn't been initialised, this is done only after gPlatform->InitAcceleration() return, later in the gfxPlatform::Init [4]

As such, NV12 is always enabled despite being blacklisted on some machines.

Note the scenario I've described above is when e10s is disabled.
If we can guarantee that the other process are never launched before gfxPlatform has finished running on the parent process, then it should be fine.


[0]
https://searchfox.org/mozilla-central/rev/65f9687eb192f8317b4e02b0b791932eff6237cc/gfx/thebes/D3D11Checks.cpp#417

[1]
https://searchfox.org/mozilla-central/rev/65f9687eb192f8317b4e02b0b791932eff6237cc/gfx/thebes/gfxPlatform.cpp#845

[2]
https://searchfox.org/mozilla-central/rev/65f9687eb192f8317b4e02b0b791932eff6237cc/gfx/thebes/gfxPlatform.cpp#855

[3]
https://searchfox.org/mozilla-central/rev/65f9687eb192f8317b4e02b0b791932eff6237cc/gfx/thebes/D3D11Checks.cpp#417

[4]
https://searchfox.org/mozilla-central/rev/65f9687eb192f8317b4e02b0b791932eff6237cc/gfx/thebes/gfxPlatform.cpp#964
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3115ef0a285e
Ensure some variables are initialzied before using them r=jrmuizel
https://hg.mozilla.org/mozilla-central/rev/3115ef0a285e
Status: NEW → RESOLVED
Closed: Last year
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Assignee: nobody → jyavenard
You need to log in before you can comment on or make changes to this bug.