From 51522de4332de1c8c2ea4113d381ff40d6f8d28e Mon Sep 17 00:00:00 2001 From: Milan Sreckovic Date: Wed, 10 Jan 2018 13:09:18 -0500 Subject: [PATCH] Bug 1425260: gfx.webrender.all turns on all preferences that are needed for webrender. r=kats MozReview-Commit-ID: 9LKNB2HngMH --HG-- extra : rebase_source : b9511be46d1bcb8ac41e51fd6d44176d1e6da4c6 --- gfx/thebes/gfxPlatform.cpp | 2 +- gfx/thebes/gfxPlatformGtk.cpp | 6 ++++++ gfx/thebes/gfxPlatformGtk.h | 4 +--- gfx/thebes/gfxPrefs.h | 6 ++++-- modules/libpref/init/all.js | 5 +++-- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/gfx/thebes/gfxPlatform.cpp b/gfx/thebes/gfxPlatform.cpp index df5092f68e94..89705b67bd6b 100644 --- a/gfx/thebes/gfxPlatform.cpp +++ b/gfx/thebes/gfxPlatform.cpp @@ -2463,7 +2463,7 @@ gfxPlatform::InitCompositorAccelerationPrefs() /*static*/ bool gfxPlatform::WebRenderPrefEnabled() { - return Preferences::GetBool("gfx.webrender.enabled", false); + return gfxPrefs::WebRenderAll() || gfxPrefs::WebRenderEnabledDoNotUseDirectly(); } /*static*/ bool diff --git a/gfx/thebes/gfxPlatformGtk.cpp b/gfx/thebes/gfxPlatformGtk.cpp index 22d82b497835..99ef8f4e505b 100644 --- a/gfx/thebes/gfxPlatformGtk.cpp +++ b/gfx/thebes/gfxPlatformGtk.cpp @@ -396,6 +396,12 @@ uint32_t gfxPlatformGtk::MaxGenericSubstitions() return uint32_t(mMaxGenericSubstitutions); } +bool +gfxPlatformGtk::AccelerateLayersByDefault() +{ + return gfxPrefs::WebRenderAll(); +} + void gfxPlatformGtk::GetPlatformCMSOutputProfile(void *&mem, size_t &size) { diff --git a/gfx/thebes/gfxPlatformGtk.h b/gfx/thebes/gfxPlatformGtk.h index bc111782055a..f2190c0a2442 100644 --- a/gfx/thebes/gfxPlatformGtk.h +++ b/gfx/thebes/gfxPlatformGtk.h @@ -127,9 +127,7 @@ public: return true; } - bool AccelerateLayersByDefault() override { - return false; - } + bool AccelerateLayersByDefault() override; #ifdef GL_PROVIDER_GLX already_AddRefed CreateHardwareVsyncSource() override; diff --git a/gfx/thebes/gfxPrefs.h b/gfx/thebes/gfxPrefs.h index 006275936fa3..be7c01ce0d82 100644 --- a/gfx/thebes/gfxPrefs.h +++ b/gfx/thebes/gfxPrefs.h @@ -504,7 +504,9 @@ private: DECL_GFX_PREF(Live, "gfx.vsync.collect-scroll-transforms", CollectScrollTransforms, bool, false); DECL_GFX_PREF(Once, "gfx.vsync.compositor.unobserve-count", CompositorUnobserveCount, int32_t, 10); - DECL_GFX_PREF(Live, "gfx.webrender.blob-images", WebRenderBlobImages, bool, false); + DECL_GFX_PREF(Once, "gfx.webrender.all", WebRenderAll, bool, false); + DECL_GFX_PREF(Once, "gfx.webrender.enabled", WebRenderEnabledDoNotUseDirectly, bool, false); + DECL_OVERRIDE_PREF(Live, "gfx.webrender.blob-images", WebRenderBlobImages, gfxPrefs::WebRenderAll()); DECL_GFX_PREF(Live, "gfx.webrender.highlight-painted-layers",WebRenderHighlightPaintedLayers, bool, false); DECL_GFX_PREF(Live, "gfx.webrender.hit-test", WebRenderHitTest, bool, false); @@ -529,7 +531,7 @@ private: DECL_GFX_PREF(Once, "image.mem.decode_bytes_at_a_time", ImageMemDecodeBytesAtATime, uint32_t, 200000); DECL_GFX_PREF(Live, "image.mem.discardable", ImageMemDiscardable, bool, false); DECL_GFX_PREF(Once, "image.mem.animated.discardable", ImageMemAnimatedDiscardable, bool, false); - DECL_GFX_PREF(Live, "image.mem.shared", ImageMemShared, bool, false); + DECL_OVERRIDE_PREF(Live, "image.mem.shared", ImageMemShared, gfxPrefs::WebRenderAll()); DECL_GFX_PREF(Once, "image.mem.surfacecache.discard_factor", ImageMemSurfaceCacheDiscardFactor, uint32_t, 1); DECL_GFX_PREF(Once, "image.mem.surfacecache.max_size_kb", ImageMemSurfaceCacheMaxSizeKB, uint32_t, 100 * 1024); DECL_GFX_PREF(Once, "image.mem.surfacecache.min_expiration_ms", ImageMemSurfaceCacheMinExpirationMS, uint32_t, 60*1000); diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js index 5b82ac32ac1d..91c2a5291f3f 100644 --- a/modules/libpref/init/all.js +++ b/modules/libpref/init/all.js @@ -869,6 +869,7 @@ pref("gfx.logging.peak-texture-usage.enabled", false); pref("gfx.ycbcr.accurate-conversion", false); +pref("gfx.webrender.all", false); #ifdef MOZ_ENABLE_WEBRENDER pref("gfx.webrender.enabled", true); #else @@ -880,7 +881,7 @@ pref("gfx.webrender.program-binary", true); #endif pref("gfx.webrender.highlight-painted-layers", false); -pref("gfx.webrender.blob-images", false); +pref("gfx.webrender.blob-images", 2); pref("gfx.webrender.hit-test", false); // WebRender debugging utilities. @@ -4679,7 +4680,7 @@ pref("image.mem.animated.discardable", true); // Decodes images into shared memory to allow direct use in separate // rendering processes. -pref("image.mem.shared", false); +pref("image.mem.shared", 2); // Allows image locking of decoded image data in content processes. pref("image.mem.allow_locking_in_content_processes", true);