summaryrefslogtreecommitdiff
path: root/mozilla-1623060.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1623060.patch')
-rw-r--r--mozilla-1623060.patch257
1 files changed, 0 insertions, 257 deletions
diff --git a/mozilla-1623060.patch b/mozilla-1623060.patch
deleted file mode 100644
index 6e2d2cd..0000000
--- a/mozilla-1623060.patch
+++ /dev/null
@@ -1,257 +0,0 @@
-diff -up firefox-75.0/modules/libpref/init/StaticPrefList.yaml.mozilla-1623060 firefox-75.0/modules/libpref/init/StaticPrefList.yaml
---- firefox-75.0/modules/libpref/init/StaticPrefList.yaml.mozilla-1623060 2020-04-03 21:34:57.000000000 +0200
-+++ firefox-75.0/modules/libpref/init/StaticPrefList.yaml 2020-04-06 23:03:37.631884410 +0200
-@@ -8600,15 +8600,6 @@
- type: RelaxedAtomicBool
- value: false
- mirror: always
--
--# Wayland basic (non-accelerated) compositor cache mode.
--# 0 = Default (everything is cached).
--# 1 = Cache only missing drawing.
--# 2 = No cache
--- name: widget.wayland-cache-mode
-- type: RelaxedAtomicInt32
-- value: 0
-- mirror: always
- #endif
-
- #---------------------------------------------------------------------------
-diff -up firefox-75.0/widget/gtk/nsWaylandDisplay.cpp.mozilla-1623060 firefox-75.0/widget/gtk/nsWaylandDisplay.cpp
---- firefox-75.0/widget/gtk/nsWaylandDisplay.cpp.mozilla-1623060 2020-04-03 21:35:43.000000000 +0200
-+++ firefox-75.0/widget/gtk/nsWaylandDisplay.cpp 2020-04-06 23:03:37.632884403 +0200
-@@ -523,9 +523,6 @@ bool nsWaylandDisplay::IsDMABufVAAPIEnab
- return IsDMABufEnabled() &&
- StaticPrefs::widget_wayland_dmabuf_vaapi_enabled();
- }
--int nsWaylandDisplay::GetRenderingCacheModePref() {
-- return StaticPrefs::widget_wayland_cache_mode();
--}
-
- void* nsGbmLib::sGbmLibHandle = nullptr;
- void* nsGbmLib::sXf86DrmLibHandle = nullptr;
-diff -up firefox-75.0/widget/gtk/nsWaylandDisplay.h.mozilla-1623060 firefox-75.0/widget/gtk/nsWaylandDisplay.h
---- firefox-75.0/widget/gtk/nsWaylandDisplay.h.mozilla-1623060 2020-04-03 21:35:39.000000000 +0200
-+++ firefox-75.0/widget/gtk/nsWaylandDisplay.h 2020-04-06 23:03:37.632884403 +0200
-@@ -93,7 +93,6 @@ class nsWaylandDisplay {
- static bool IsDMABufTexturesEnabled();
- static bool IsDMABufWebGLEnabled();
- static bool IsDMABufVAAPIEnabled();
-- static int GetRenderingCacheModePref();
-
- private:
- bool ConfigureGbm();
-diff -up firefox-75.0/widget/gtk/nsWindow.cpp.mozilla-1623060 firefox-75.0/widget/gtk/nsWindow.cpp
---- firefox-75.0/widget/gtk/nsWindow.cpp.mozilla-1623060 2020-04-06 23:03:37.627884434 +0200
-+++ firefox-75.0/widget/gtk/nsWindow.cpp 2020-04-06 23:03:37.633884397 +0200
-@@ -7925,3 +7925,15 @@ void nsWindow::SetEGLNativeWindowSize(
-
- nsWindow* nsWindow::GetFocusedWindow() { return gFocusWindow; }
- #endif
-+
-+LayoutDeviceIntRect nsWindow::GetMozContainerSize() {
-+ LayoutDeviceIntRect size(0, 0, 0, 0);
-+ if (mContainer) {
-+ GtkAllocation allocation;
-+ gtk_widget_get_allocation(GTK_WIDGET(mContainer), &allocation);
-+ int scale = GdkScaleFactor();
-+ size.width = allocation.width * scale;
-+ size.height = allocation.height * scale;
-+ }
-+ return size;
-+}
-diff -up firefox-75.0/widget/gtk/nsWindow.h.mozilla-1623060 firefox-75.0/widget/gtk/nsWindow.h
---- firefox-75.0/widget/gtk/nsWindow.h.mozilla-1623060 2020-04-03 21:35:39.000000000 +0200
-+++ firefox-75.0/widget/gtk/nsWindow.h 2020-04-06 23:03:37.632884403 +0200
-@@ -293,6 +293,7 @@ class nsWindow final : public nsBaseWidg
- int32_t aVertical) override;
-
- MozContainer* GetMozContainer() { return mContainer; }
-+ LayoutDeviceIntRect GetMozContainerSize();
- // GetMozContainerWidget returns the MozContainer even for undestroyed
- // descendant windows
- GtkWidget* GetMozContainerWidget();
-diff -up firefox-75.0/widget/gtk/WindowSurfaceWayland.cpp.mozilla-1623060 firefox-75.0/widget/gtk/WindowSurfaceWayland.cpp
---- firefox-75.0/widget/gtk/WindowSurfaceWayland.cpp.mozilla-1623060 2020-04-03 21:35:43.000000000 +0200
-+++ firefox-75.0/widget/gtk/WindowSurfaceWayland.cpp 2020-04-06 23:03:37.632884403 +0200
-@@ -527,9 +527,6 @@ WindowSurfaceWayland::WindowSurfaceWayla
- mShmBackupBuffer[i] = nullptr;
- mDMABackupBuffer[i] = nullptr;
- }
-- mRenderingCacheMode = static_cast<RenderingCacheMode>(
-- mWaylandDisplay->GetRenderingCacheModePref());
-- LOGWAYLAND(("WindowSurfaceWayland Cache mode %d\n", mRenderingCacheMode));
- }
-
- WindowSurfaceWayland::~WindowSurfaceWayland() {
-@@ -650,14 +647,13 @@ WindowBackBuffer* WindowSurfaceWayland::
- LOGWAYLAND(
- ("WindowSurfaceWayland::NewWaylandBuffer [%p] Requested buffer [%d "
- "x %d] DMABuf %d\n",
-- (void*)this, mBufferScreenRect.width, mBufferScreenRect.height,
-- aUseDMABufBackend));
-+ (void*)this, mWidgetRect.width, mWidgetRect.height, aUseDMABufBackend));
-
- mWaylandBuffer = WaylandBufferFindAvailable(
-- mBufferScreenRect.width, mBufferScreenRect.height, aUseDMABufBackend);
-+ mWidgetRect.width, mWidgetRect.height, aUseDMABufBackend);
- if (!mWaylandBuffer) {
-- mWaylandBuffer = CreateWaylandBuffer(
-- mBufferScreenRect.width, mBufferScreenRect.height, aUseDMABufBackend);
-+ mWaylandBuffer = CreateWaylandBuffer(mWidgetRect.width, mWidgetRect.height,
-+ aUseDMABufBackend);
- }
-
- return mWaylandBuffer;
-@@ -667,7 +663,7 @@ WindowBackBuffer* WindowSurfaceWayland::
- LOGWAYLAND(
- ("WindowSurfaceWayland::GetWaylandBufferRecent [%p] Requested buffer [%d "
- "x %d]\n",
-- (void*)this, mBufferScreenRect.width, mBufferScreenRect.height));
-+ (void*)this, mWidgetRect.width, mWidgetRect.height));
-
- // There's no buffer created yet, create a new one for partial screen updates.
- if (!mWaylandBuffer) {
-@@ -679,10 +675,9 @@ WindowBackBuffer* WindowSurfaceWayland::
- return nullptr;
- }
-
-- if (mWaylandBuffer->IsMatchingSize(mBufferScreenRect.width,
-- mBufferScreenRect.height)) {
-- LOGWAYLAND((" Size is ok, use the buffer [%d x %d]\n",
-- mBufferScreenRect.width, mBufferScreenRect.height));
-+ if (mWaylandBuffer->IsMatchingSize(mWidgetRect.width, mWidgetRect.height)) {
-+ LOGWAYLAND((" Size is ok, use the buffer [%d x %d]\n", mWidgetRect.width,
-+ mWidgetRect.height));
- return mWaylandBuffer;
- }
-
-@@ -697,7 +692,7 @@ WindowBackBuffer* WindowSurfaceWayland::
- LOGWAYLAND(
- ("WindowSurfaceWayland::GetWaylandBufferWithSwitch [%p] Requested buffer "
- "[%d x %d]\n",
-- (void*)this, mBufferScreenRect.width, mBufferScreenRect.height));
-+ (void*)this, mWidgetRect.width, mWidgetRect.height));
-
- // There's no buffer created yet or actual buffer is attached, get a new one.
- // Use DMABuf for fullscreen updates only.
-@@ -706,18 +701,21 @@ WindowBackBuffer* WindowSurfaceWayland::
- }
-
- // Reuse existing buffer
-- LOGWAYLAND((" Reuse buffer with resize [%d x %d]\n",
-- mBufferScreenRect.width, mBufferScreenRect.height));
-+ LOGWAYLAND((" Reuse buffer with resize [%d x %d]\n", mWidgetRect.width,
-+ mWidgetRect.height));
-
- // OOM here, just return null to skip this frame.
-- if (!mWaylandBuffer->Resize(mBufferScreenRect.width,
-- mBufferScreenRect.height)) {
-+ if (!mWaylandBuffer->Resize(mWidgetRect.width, mWidgetRect.height)) {
- return nullptr;
- }
- return mWaylandBuffer;
- }
-
- already_AddRefed<gfx::DrawTarget> WindowSurfaceWayland::LockWaylandBuffer() {
-+ // Allocated wayland buffer must match widget size, otherwise wayland
-+ // compositor is confused and may produce various rendering artifacts.
-+ mWidgetRect = mWindow->GetMozContainerSize();
-+
- // mCanSwitchWaylandBuffer set means we're getting buffer for fullscreen
- // update. We can use DMABuf and we can get a new buffer for drawing.
- WindowBackBuffer* buffer = mCanSwitchWaylandBuffer
-@@ -858,12 +856,12 @@ already_AddRefed<gfx::DrawTarget> Window
- LOGWAYLAND((" windowRedraw = %d\n", windowRedraw));
-
- #if MOZ_LOGGING
-- if (!(mBufferScreenRect == lockedScreenRect)) {
-+ if (!(mLockedScreenRect == lockedScreenRect)) {
- LOGWAYLAND((" screen size changed\n"));
- }
- #endif
-
-- if (!(mBufferScreenRect == lockedScreenRect)) {
-+ if (!(mLockedScreenRect == lockedScreenRect)) {
- // Screen (window) size changed and we still have some painting pending
- // for the last window size. That can happen when window is resized.
- // We can't commit them any more as they're for former window size, so
-@@ -878,17 +876,21 @@ already_AddRefed<gfx::DrawTarget> Window
- // as it produces artifacts.
- return nullptr;
- }
-- mBufferScreenRect = lockedScreenRect;
-+ mLockedScreenRect = lockedScreenRect;
- }
-
-- if (mRenderingCacheMode == CACHE_ALL) {
-- mDrawToWaylandBufferDirectly = windowRedraw;
-- } else if (mRenderingCacheMode == CACHE_MISSING) {
-+ LayoutDeviceIntRect size = mWindow->GetMozContainerSize();
-+
-+ // We can draw directly only when widget has the same size as wl_buffer
-+ mDrawToWaylandBufferDirectly = (size.width == mLockedScreenRect.width &&
-+ size.height == mLockedScreenRect.height);
-+
-+ // We can draw directly only when we redraw significant part of the window
-+ // to avoid flickering.
-+ if (mDrawToWaylandBufferDirectly) {
- mDrawToWaylandBufferDirectly =
- windowRedraw || (lockSize.width * 3 > lockedScreenRect.width &&
- lockSize.height * 3 > lockedScreenRect.height);
-- } else {
-- mDrawToWaylandBufferDirectly = true;
- }
-
- if (mDrawToWaylandBufferDirectly) {
-@@ -903,11 +905,6 @@ already_AddRefed<gfx::DrawTarget> Window
- }
- }
-
-- // Any caching is disabled and we don't have any back buffer available.
-- if (mRenderingCacheMode == CACHE_NONE) {
-- return nullptr;
-- }
--
- // We do indirect drawing because there isn't any front buffer available.
- // Do indirect drawing to mImageSurface which is commited to wayland
- // wl_buffer by DrawDelayedImageCommits() later.
-@@ -1151,7 +1148,7 @@ void WindowSurfaceWayland::Commit(const
- ("WindowSurfaceWayland::Commit [%p] damage size [%d, %d] -> [%d x %d]"
- "screenSize [%d x %d]\n",
- (void*)this, lockSize.x, lockSize.y, lockSize.width, lockSize.height,
-- mBufferScreenRect.width, mBufferScreenRect.height));
-+ mLockedScreenRect.width, mLockedScreenRect.height));
- LOGWAYLAND((" mDrawToWaylandBufferDirectly = %d\n",
- mDrawToWaylandBufferDirectly));
- }
-diff -up firefox-75.0/widget/gtk/WindowSurfaceWayland.h.mozilla-1623060 firefox-75.0/widget/gtk/WindowSurfaceWayland.h
---- firefox-75.0/widget/gtk/WindowSurfaceWayland.h.mozilla-1623060 2020-04-03 21:35:39.000000000 +0200
-+++ firefox-75.0/widget/gtk/WindowSurfaceWayland.h 2020-04-06 23:03:37.631884410 +0200
-@@ -261,8 +261,14 @@ class WindowSurfaceWayland : public Wind
- nsWindow* mWindow;
- // Buffer screen rects helps us understand if we operate on
- // the same window size as we're called on WindowSurfaceWayland::Lock().
-- // mBufferScreenRect is window size when our wayland buffer was allocated.
-- LayoutDeviceIntRect mBufferScreenRect;
-+ // mLockedScreenRect is window size when our wayland buffer was allocated.
-+ LayoutDeviceIntRect mLockedScreenRect;
-+
-+ // WidgetRect is an actual size of mozcontainer widget. It can be
-+ // different than mLockedScreenRect during resize when mBounds are updated
-+ // immediately but actual GtkWidget size is updated asynchronously
-+ // (see Bug 1489463).
-+ LayoutDeviceIntRect mWidgetRect;
- nsWaylandDisplay* mWaylandDisplay;
-
- // Actual buffer (backed by wl_buffer) where all drawings go into.
-@@ -327,9 +333,6 @@ class WindowSurfaceWayland : public Wind
-
- bool mIsMainThread;
-
-- // Image caching strategy, see RenderingCacheMode for details.
-- RenderingCacheMode mRenderingCacheMode;
--
- static bool UseDMABufBackend();
- static bool mUseDMABufInitialized;
- static bool mUseDMABuf;
bgstack15