Bug 1715132 - Ignore the blocklist for Software WebRender on desktop. r=jrmuizel

We still need the blocklist to control rollout on Android, but on
desktop, we should be shipping Software WebRender to all users, except
those in safe mode or whom have explicitly disabled WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D117088
This commit is contained in:
Andrew Osmond 2021-06-08 16:07:57 +00:00
parent 888618300d
commit a58e7ef933
4 changed files with 65 additions and 1 deletions

View File

@ -1036,3 +1036,38 @@
fun:_ZN5style10properties17declaration_block31parse_property_declaration_list*
fun:_ZN124_$LT$style..stylesheets..rule_parser..NestedRuleParser$u20$as$u20$cssparser..rules_and_declarations..QualifiedRuleParser$GT$11parse_block*
}
# Suppression for Software WebRender, June 2021. See bug 1715267.
#
# Conditional jump or move depends on uninitialised value(s)
# at 0x162B199F: webrender::renderer::upload::upload_to_texture_cache+10639 (mod.rs:2045)
# by 0x162A7567: webrender::renderer::Renderer::update_texture_cache+5191 (mod.rs:2241)
# by 0x1629EF2F: webrender::renderer::Renderer::render_impl+3647 (mod.rs:1874)
# Uninitialised value was created by a stack allocation
# at 0x162AF01D: webrender::renderer::upload::upload_to_texture_cache+13 (upload.rs:50)
{
Bug 1715267: webrender::renderer::upload::upload_to_texture_cache
Memcheck:Cond
fun:_ZN9webrender8renderer6upload23upload_to_texture_cache17h*
fun:_ZN9webrender8renderer8Renderer20update_texture_cache17h*
fun:_ZN9webrender8renderer8Renderer11render_impl17h*
}
# Suppression for Software WebRender, June 2021. See bug 1715290.
#
# 24 bytes in 1 blocks are definitely lost in loss record 3,311 of 10,861
# at 0x4C28FC0: malloc+112 (vg_replace_malloc.c:307)
# by 0x162F6CC9: wr_thread_pool_new+2729 (library/std/src/sys/unix/alloc.rs:14)
# by 0x11EB0814: WebRenderThreadPool (checkouts/gecko/gfx/webrender_bindings/RenderThread.cpp:1037)
# by 0x11EB0814: RenderThread (checkouts/gecko/gfx/webrender_bindings/RenderThread.cpp:64)
# by 0x11EB0814: mozilla::wr::RenderThread::Start()+116 (checkouts/gecko/gfx/webrender_bindings/RenderThread.cpp:96)
{
Bug 1715290: wr_thread_pool_new / WebRenderThreadPool / RenderThread
Memcheck:Leak
match-leak-kinds: definite
fun:malloc
fun:wr_thread_pool_new
fun:WebRenderThreadPool
fun:RenderThread
fun:_ZN7mozilla2wr12RenderThread5StartEv
}

View File

@ -75,6 +75,10 @@ void gfxConfigManager::Init() {
#endif
mSafeMode = gfxPlatform::InSafeMode();
#ifdef ANDROID
mHasWrSoftwareBlocklist = true;
#endif
mGfxInfo = components::GfxInfo::Service();
mFeatureWr = &gfxConfig::GetFeature(Feature::WEBRENDER);
@ -142,6 +146,10 @@ void gfxConfigManager::ConfigureWebRenderSoftware() {
mFeatureWrSoftware->UserForceEnable("Force enabled by fission");
}
if (!mHasWrSoftwareBlocklist) {
return;
}
nsCString failureId;
int32_t status;
if (NS_FAILED(mGfxInfo->GetFeatureStatus(

View File

@ -50,7 +50,8 @@ class gfxConfigManager {
mIsNightly(false),
mIsEarlyBetaOrEarlier(false),
mSafeMode(false),
mIsWin10OrLater(false) {}
mIsWin10OrLater(false),
mHasWrSoftwareBlocklist(false) {}
void Init();
@ -113,6 +114,7 @@ class gfxConfigManager {
bool mIsEarlyBetaOrEarlier;
bool mSafeMode;
bool mIsWin10OrLater;
bool mHasWrSoftwareBlocklist;
};
} // namespace gfx

View File

@ -308,6 +308,7 @@ class GfxConfigManager : public ::testing::Test, public gfxConfigManager {
mIsWin10OrLater = true;
mIsNightly = true;
mIsEarlyBetaOrEarlier = true;
mHasWrSoftwareBlocklist = true;
}
void TearDown() override {
@ -1062,3 +1063,21 @@ TEST_F(GfxConfigManager, WebRenderShaderCacheBlocked) {
EXPECT_TRUE(mFeatures.mD3D11HwAngle.IsEnabled());
EXPECT_FALSE(mFeatures.mWrSoftware.IsEnabled());
}
TEST_F(GfxConfigManager, WebRenderNoSoftwareBlocklist) {
mHasWrSoftwareBlocklist = false;
ConfigureWebRender();
EXPECT_TRUE(mFeatures.mWrQualified.IsEnabled());
EXPECT_TRUE(mFeatures.mWr.IsEnabled());
EXPECT_TRUE(mFeatures.mWrCompositor.IsEnabled());
EXPECT_TRUE(mFeatures.mWrAngle.IsEnabled());
EXPECT_TRUE(mFeatures.mWrDComp.IsEnabled());
EXPECT_TRUE(mFeatures.mWrPartial.IsEnabled());
EXPECT_TRUE(mFeatures.mWrShaderCache.IsEnabled());
EXPECT_TRUE(mFeatures.mWrOptimizedShaders.IsEnabled());
EXPECT_TRUE(mFeatures.mHwCompositing.IsEnabled());
EXPECT_TRUE(mFeatures.mGPUProcess.IsEnabled());
EXPECT_TRUE(mFeatures.mD3D11HwAngle.IsEnabled());
EXPECT_TRUE(mFeatures.mWrSoftware.IsEnabled());
}