Bug 1968876 - backout removal of dcomp blocklist for Win10 NVIDIA with mixed refresh rates r=gfx-reviewers,gw a=RyanVM

This commit is contained in:
Ashley Hale
2025-05-28 21:27:00 +00:00
committed by rvandermeulen@mozilla.com
parent 08a87f4dcd
commit 1a0b078a2e
2 changed files with 18 additions and 2 deletions

View File

@@ -270,6 +270,22 @@ void gfxConfigManager::ConfigureWebRender() {
"FEATURE_FAILURE_NO_GPU_PROCESS"_ns); "FEATURE_FAILURE_NO_GPU_PROCESS"_ns);
} }
if (!mIsWin11OrLater) {
// Disable DirectComposition for NVIDIA users on Windows 10 with high/mixed
// refresh rate monitors due to rendering artifacts. (See bug 1638709.)
nsAutoString adapterVendorID;
mGfxInfo->GetAdapterVendorID(adapterVendorID);
if (adapterVendorID == u"0x10de") {
bool mixed = false;
int32_t maxRefreshRate = mGfxInfo->GetMaxRefreshRate(&mixed);
if (maxRefreshRate > 60 && mixed) {
mFeatureWrDComp->Disable(FeatureStatus::Blocked,
"Monitor refresh rate too high/mixed",
"NVIDIA_REFRESH_RATE_MIXED"_ns);
}
}
}
mFeatureWrDComp->MaybeSetFailed( mFeatureWrDComp->MaybeSetFailed(
mFeatureWr->IsEnabled(), FeatureStatus::Unavailable, "Requires WebRender", mFeatureWr->IsEnabled(), FeatureStatus::Unavailable, "Requires WebRender",
"FEATURE_FAILURE_DCOMP_NOT_WR"_ns); "FEATURE_FAILURE_DCOMP_NOT_WR"_ns);

View File

@@ -665,9 +665,9 @@ TEST_F(GfxConfigManager, WebRenderNvidiaHighMixedRefreshRateWin10) {
ConfigureWebRender(); ConfigureWebRender();
EXPECT_TRUE(mFeatures.mWr.IsEnabled()); EXPECT_TRUE(mFeatures.mWr.IsEnabled());
EXPECT_TRUE(mFeatures.mWrCompositor.IsEnabled()); EXPECT_FALSE(mFeatures.mWrCompositor.IsEnabled());
EXPECT_TRUE(mFeatures.mWrAngle.IsEnabled()); EXPECT_TRUE(mFeatures.mWrAngle.IsEnabled());
EXPECT_TRUE(mFeatures.mWrDComp.IsEnabled()); EXPECT_FALSE(mFeatures.mWrDComp.IsEnabled());
EXPECT_TRUE(mFeatures.mWrPartial.IsEnabled()); EXPECT_TRUE(mFeatures.mWrPartial.IsEnabled());
EXPECT_TRUE(mFeatures.mWrShaderCache.IsEnabled()); EXPECT_TRUE(mFeatures.mWrShaderCache.IsEnabled());
EXPECT_TRUE(mFeatures.mWrOptimizedShaders.IsEnabled()); EXPECT_TRUE(mFeatures.mWrOptimizedShaders.IsEnabled());