зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1704927 - Allow Software WebRender for all popups on early beta and Fission users. r=gfx-reviewers,jrmuizel
This patch turns on Software WebRender for all widgets that don't get acceleration by default on nightly and early beta, as well as for users who are put into the Fission experiment. It also cleans up our prefs to simply enable it for all popups, and not just those affected by Fission. Differential Revision: https://phabricator.services.mozilla.com/D111958
This commit is contained in:
Родитель
26f5a10a63
Коммит
cb0f2694b3
|
@ -5059,14 +5059,7 @@
|
|||
# software backend
|
||||
- name: gfx.webrender.software.unaccelerated-widget.allow
|
||||
type: RelaxedAtomicBool
|
||||
value: false
|
||||
mirror: always
|
||||
|
||||
# Whether to force widgets that don't support acceleration to use WebRender
|
||||
# software backend
|
||||
- name: gfx.webrender.software.unaccelerated-widget.force
|
||||
type: RelaxedAtomicBool
|
||||
value: false
|
||||
value: @IS_EARLY_BETA_OR_EARLIER@
|
||||
mirror: always
|
||||
|
||||
# Whether to force widgets to don't support acceleration to use WebRender
|
||||
|
|
|
@ -826,10 +826,6 @@ bool nsBaseWidget::ComputeShouldAccelerate() {
|
|||
WidgetTypeSupportsAcceleration();
|
||||
}
|
||||
|
||||
bool nsBaseWidget::WidgetTypePrefersSoftwareWebRender() const {
|
||||
return StaticPrefs::gfx_webrender_software_unaccelerated_widget_force();
|
||||
}
|
||||
|
||||
bool nsBaseWidget::UseAPZ() {
|
||||
return (gfxPlatform::AsyncPanZoomEnabled() &&
|
||||
(WindowType() == eWindowType_toplevel ||
|
||||
|
@ -1226,7 +1222,9 @@ already_AddRefed<LayerManager> nsBaseWidget::CreateCompositorSession(
|
|||
StaticPrefs::gfx_webrender_unaccelerated_widget_force()) {
|
||||
enableWR = gfx::gfxVars::UseWebRender();
|
||||
enableSWWR = gfx::gfxVars::UseSoftwareWebRender();
|
||||
} else if (WidgetTypePrefersSoftwareWebRender()) {
|
||||
} else if (gfxPlatform::DoesFissionForceWebRender() ||
|
||||
StaticPrefs::
|
||||
gfx_webrender_software_unaccelerated_widget_allow()) {
|
||||
enableWR = enableSWWR = gfx::gfxVars::UseWebRender();
|
||||
} else {
|
||||
enableWR = enableSWWR = false;
|
||||
|
|
|
@ -292,7 +292,6 @@ class nsBaseWidget : public nsIWidget, public nsSupportsWeakReference {
|
|||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
bool ComputeShouldAccelerate();
|
||||
virtual bool WidgetTypePrefersSoftwareWebRender() const;
|
||||
virtual bool WidgetTypeSupportsAcceleration() { return true; }
|
||||
[[nodiscard]] virtual nsresult OnDefaultButtonLoaded(
|
||||
const LayoutDeviceIntRect& aButtonRect) override {
|
||||
|
|
|
@ -8509,12 +8509,6 @@ void nsWindow::PickerClosed() {
|
|||
}
|
||||
}
|
||||
|
||||
bool nsWindow::WidgetTypePrefersSoftwareWebRender() const {
|
||||
return (mTransparencyMode == eTransparencyTransparent &&
|
||||
StaticPrefs::gfx_webrender_software_unaccelerated_widget_allow()) ||
|
||||
nsBaseWidget::WidgetTypePrefersSoftwareWebRender();
|
||||
}
|
||||
|
||||
bool nsWindow::WidgetTypeSupportsAcceleration() {
|
||||
// We don't currently support using an accelerated layer manager with
|
||||
// transparent windows so don't even try. I'm also not sure if we even
|
||||
|
|
|
@ -294,7 +294,6 @@ class nsWindow final : public nsWindowBase {
|
|||
* Misc.
|
||||
*/
|
||||
virtual bool AutoErase(HDC dc);
|
||||
bool WidgetTypePrefersSoftwareWebRender() const override;
|
||||
bool WidgetTypeSupportsAcceleration() override;
|
||||
|
||||
void ForcePresent();
|
||||
|
|
Загрузка…
Ссылка в новой задаче