commit 7439ba9c6ed242d5f93d5e706baeaa6e141c9cfd
parent 20a23bdc4250219a2ab290038b17338d365729fa
Author: Lee Salzman <lsalzman@mozilla.com>
Date: Thu, 23 Oct 2025 17:27:42 +0000
Bug 1995874 - Remove direct2d prefs. r=aosmond,taskgraph-reviewers,toolkit-telemetry-reviewers,bhearsum
Differential Revision: https://phabricator.services.mozilla.com/D269672
Diffstat:
10 files changed, 11 insertions(+), 101 deletions(-)
diff --git a/browser/components/preferences/tests/browser_layersacceleration.js b/browser/components/preferences/tests/browser_layersacceleration.js
@@ -6,10 +6,7 @@ add_task(async function () {
set: [["preferences.force-disable.check.once.policy", true]],
});
await SpecialPowers.pushPrefEnv({
- set: [
- ["gfx.direct2d.disabled", false],
- ["layers.acceleration.disabled", false],
- ],
+ set: [["layers.acceleration.disabled", false]],
});
let prefs = await openPreferencesViaOpenPreferencesAPI("paneGeneral", {
diff --git a/gfx/src/DriverCrashGuard.cpp b/gfx/src/DriverCrashGuard.cpp
@@ -409,11 +409,6 @@ bool D3D11LayersCrashGuard::UpdateEnvironment() {
bool changed = false;
// Feature status.
#if defined(XP_WIN)
- bool d2dEnabled = StaticPrefs::gfx_direct2d_force_enabled_AtStartup() ||
- (!StaticPrefs::gfx_direct2d_disabled_AtStartup() &&
- FeatureEnabled(nsIGfxInfo::FEATURE_DIRECT2D));
- changed |= CheckAndUpdateBoolPref("feature-d2d", d2dEnabled);
-
bool d3d11Enabled = gfxConfig::IsEnabled(Feature::D3D11_COMPOSITING);
changed |= CheckAndUpdateBoolPref("feature-d3d11", d3d11Enabled);
if (changed) {
diff --git a/gfx/thebes/D3D11Checks.cpp b/gfx/thebes/D3D11Checks.cpp
@@ -144,8 +144,7 @@ bool D3D11Checks::DoesDeviceWork() {
if (checked) return result;
checked = true;
- if (StaticPrefs::gfx_direct2d_force_enabled_AtStartup() ||
- gfxConfig::IsForcedOnByUser(Feature::HW_COMPOSITING)) {
+ if (gfxConfig::IsForcedOnByUser(Feature::HW_COMPOSITING)) {
result = true;
return true;
}
@@ -205,8 +204,7 @@ static bool DoesTextureSharingWorkInternal(ID3D11Device* device,
return false;
}
- if (StaticPrefs::gfx_direct2d_force_enabled_AtStartup() ||
- gfxConfig::IsForcedOnByUser(Feature::HW_COMPOSITING)) {
+ if (gfxConfig::IsForcedOnByUser(Feature::HW_COMPOSITING)) {
return true;
}
diff --git a/gfx/thebes/DeviceManagerDx.cpp b/gfx/thebes/DeviceManagerDx.cpp
@@ -504,18 +504,6 @@ bool DeviceManagerDx::CreateCanvasDeviceLocked() {
return false;
}
- if (StaticPrefs::
- gfx_direct2d_target_independent_rasterization_disabled_AtStartup()) {
- int creationFlags = 0x2; // disable target independent rasterization
- const GUID D2D_INTERNAL_DEVICE_CREATION_OPTIONS = {
- 0xfb3a8e1a,
- 0x2e3c,
- 0x4de1,
- {0x84, 0x42, 0x40, 0x43, 0xe0, 0xb0, 0x94, 0x95}};
- mCanvasDevice->SetPrivateData(D2D_INTERNAL_DEVICE_CREATION_OPTIONS,
- sizeof(creationFlags), &creationFlags);
- }
-
if (FAILED(hr) || !mCanvasDevice) {
NS_WARNING("Failed to acquire a D3D11 device for Canvas");
return false;
diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp
@@ -862,10 +862,6 @@ void gfxPlatform::Init() {
// interpret these cryptic strings.
{
nsAutoCString forcedPrefs;
- // D2D prefs
- forcedPrefs.AppendPrintf(
- "FP(D%d%d", StaticPrefs::gfx_direct2d_disabled_AtStartup(),
- StaticPrefs::gfx_direct2d_force_enabled_AtStartup());
// Layers prefs
forcedPrefs.AppendPrintf(
"-L%d%d%d%d",
@@ -1796,8 +1792,6 @@ already_AddRefed<DrawTarget> gfxPlatform::CreateDrawTargetForData(
BackendType gfxPlatform::BackendTypeForName(const nsCString& aName) {
if (aName.EqualsLiteral("cairo")) return BackendType::CAIRO;
if (aName.EqualsLiteral("skia")) return BackendType::SKIA;
- if (aName.EqualsLiteral("direct2d")) return BackendType::DIRECT2D;
- if (aName.EqualsLiteral("direct2d1.1")) return BackendType::DIRECT2D1_1;
return BackendType::NONE;
}
@@ -2494,20 +2488,9 @@ void gfxPlatform::InitAcceleration() {
"FEATURE_REMOTE_CANVAS_NO_GPU_PROCESS"_ns);
}
-#ifdef XP_WIN
- // If D2D is explicitly disabled on Windows, then don't use remote canvas.
- // This prevents it from interfering with Accelerated Canvas2D.
- if (StaticPrefs::gfx_direct2d_disabled_AtStartup() &&
- !StaticPrefs::gfx_direct2d_force_enabled_AtStartup()) {
- gfxConfig::ForceDisable(Feature::REMOTE_CANVAS, FeatureStatus::Blocked,
- "Disabled without Direct2D",
- "FEATURE_REMOTE_CANVAS_NO_DIRECT2D"_ns);
- }
-#else
gfxConfig::ForceDisable(Feature::REMOTE_CANVAS, FeatureStatus::Blocked,
- "Platform not supported",
- "FEATURE_REMOTE_CANVAS_NOT_WINDOWS"_ns);
-#endif
+ "Remote Canvas not supported",
+ "FEATURE_REMOTE_CANVAS_NOT_SUPPORTED"_ns);
gfxVars::SetRemoteCanvasEnabled(feature.IsEnabled());
}
diff --git a/gfx/thebes/gfxWindowsPlatform.cpp b/gfx/thebes/gfxWindowsPlatform.cpp
@@ -1583,28 +1583,8 @@ void gfxWindowsPlatform::InitializeD3D11() {
void gfxWindowsPlatform::InitializeD2DConfig() {
FeatureState& d2d1 = gfxConfig::GetFeature(Feature::DIRECT2D);
- if (!gfxConfig::IsEnabled(Feature::D3D11_COMPOSITING)) {
- d2d1.DisableByDefault(FeatureStatus::Unavailable,
- "Direct2D requires Direct3D 11 compositing",
- "FEATURE_FAILURE_D2D_D3D11_COMP"_ns);
- return;
- }
-
- d2d1.SetDefaultFromPref(StaticPrefs::GetPrefName_gfx_direct2d_disabled(),
- false,
- StaticPrefs::GetPrefDefault_gfx_direct2d_disabled());
-
- nsCString message;
- nsCString failureId;
- if (!gfxPlatform::IsGfxInfoStatusOkay(nsIGfxInfo::FEATURE_DIRECT2D, &message,
- failureId)) {
- d2d1.Disable(FeatureStatus::Blocklisted, message.get(), failureId);
- }
-
- if (!d2d1.IsEnabled() &&
- StaticPrefs::gfx_direct2d_force_enabled_AtStartup()) {
- d2d1.UserForceEnable("Force-enabled via user-preference");
- }
+ d2d1.DisableByDefault(FeatureStatus::Unavailable, "Direct2D is not supported",
+ "FEATURE_FAILURE_DIRECT2D_NOT_SUPPORTED"_ns);
}
void gfxWindowsPlatform::InitializeD2D() {
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
@@ -7022,24 +7022,6 @@
mirror: once
-# Whether to disable the automatic detection and use of direct2d.
-- name: gfx.direct2d.disabled
- type: bool
- value: true
- mirror: once
-
-# Whether to attempt to enable Direct2D regardless of automatic detection or
-# blacklisting.
-- name: gfx.direct2d.force-enabled
- type: bool
- value: false
- mirror: once
-
-- name: gfx.direct2d.target-independent-rasterization.disabled
- type: bool
- value: false
- mirror: once
-
- name: gfx.direct3d11.reuse-decoder-device
type: bool
value: true
diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
@@ -397,15 +397,9 @@ pref("gfx.downloadable_fonts.fallback_delay_short", 100);
pref("gfx.font_rendering.directwrite.use_gdi_table_loading", true);
#endif
-#if defined(XP_WIN)
- // comma separated list of backends to use in order of preference
- // e.g., pref("gfx.canvas.azure.backends", "direct2d,skia");
- pref("gfx.canvas.azure.backends", "direct2d1.1,skia");
-#elif defined(XP_MACOSX)
- pref("gfx.canvas.azure.backends", "skia");
-#else
- pref("gfx.canvas.azure.backends", "skia");
-#endif
+// comma separated list of backends to use in order of preference
+// e.g., pref("gfx.canvas.azure.backends", "direct2d,skia");
+pref("gfx.canvas.azure.backends", "skia");
pref("gfx.content.azure.backends", "skia");
#ifdef XP_WIN
@@ -2236,7 +2230,7 @@ pref("font.size.monospace.x-math", 13);
pref("font.name-list.monospace.x-math", "Consolas");
pref("font.name-list.cursive.x-math", "Comic Sans MS");
- // ClearType tuning parameters for directwrite/d2d.
+ // ClearType tuning parameters for directwrite.
//
// Allows overriding of underlying registry values in:
// HKCU/Software/Microsoft/Avalon.Graphics/<display> (contrast and level)
diff --git a/taskcluster/gecko_taskgraph/transforms/test/other.py b/taskcluster/gecko_taskgraph/transforms/test/other.py
@@ -111,11 +111,6 @@ def setup_talos(config, tasks):
)
extra_options.append("--use-talos-json")
- # win7 needs to test skip
- if task["build-platform"].startswith("win32"):
- extra_options.append("--add-option")
- extra_options.append("--setpref,gfx.direct2d.disabled=true")
-
if config.params.get("project", None):
extra_options.append("--project=%s" % config.params["project"])
diff --git a/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs b/toolkit/components/telemetry/app/TelemetryEnvironment.sys.mjs
@@ -297,8 +297,6 @@ const DEFAULT_ENVIRONMENT_PREFS = new Map([
["extensions.update.background.url", { what: RECORD_PREF_VALUE }],
["general.config.filename", { what: RECORD_DEFAULTPREF_STATE }],
["general.smoothScroll", { what: RECORD_PREF_VALUE }],
- ["gfx.direct2d.disabled", { what: RECORD_PREF_VALUE }],
- ["gfx.direct2d.force-enabled", { what: RECORD_PREF_VALUE }],
["gfx.webrender.all", { what: RECORD_PREF_VALUE }],
["layers.acceleration.disabled", { what: RECORD_PREF_VALUE }],
["layers.acceleration.force-enabled", { what: RECORD_PREF_VALUE }],