Closed Bug 1011367 Opened 6 years ago Closed 6 years ago

Add prefs and enum values for switching off D3D11


(Core :: Graphics, defect)

Windows 8.1
Not set





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



(1 file)

We should have values for blacklisting D3D11 layers explicitly, this patch adds those values.
Attachment #8423614 - Flags: review?(bjacob)
Comment on attachment 8423614 [details] [diff] [review]
Add Direct3D 11 GFX feature

Review of attachment 8423614 [details] [diff] [review]:

::: widget/xpwidgets/GfxInfoBase.cpp
@@ +273,5 @@
>      return nsIGfxInfo::FEATURE_DIRECT3D_10_LAYERS;
>    else if (aFeature == NS_LITERAL_STRING("DIRECT3D_10_1_LAYERS"))
>      return nsIGfxInfo::FEATURE_DIRECT3D_10_1_LAYERS;
> +  else if (aFeature == NS_LITERAL_STRING("DIRECT3D_11_LAYERS"))
> +    return nsIGfxInfo::FEATURE_DIRECT3D_11_LAYERS;

Keep in mind that our downloadable blacklist system, which is what calls this function, interpretes any unrecognized feature as "all features". Indeed, see how it returns 0 at the end of this function, and how 0 is the value of GfxDriverInfo::allFeatures. Combine this with the fact that our blacklist entries are not versioned, so they affect all gecko versions, and we have users still running old gecko versions (some of them intentionally, i.e. ESR, most of them just because this is how the world works). This means that if we add a new downloadable blacklist info for D3D11 layers, it will be interpreted by all older gecko versions as blacklisting _all_ features.

For a concrete way that this has blown up on us, see

Still r+ because this is a preexisting problem that we already have and the 'best practice' already in place to avoid triggering it, which is to avoid using any new downloadable blacklist entry referring to a feature that wasn't in Firefox 4, will still apply here, nothing changes.
Attachment #8423614 - Flags: review?(bjacob) → review+
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla32
You need to log in before you can comment on or make changes to this bug.