Commit Graph

13693 Commits

Author SHA1 Message Date
Markus Stange
d1c4429158 Bug 1599251 - Don't leave unused surfaces in the swap chain. r=jrmuizel
When updating the layer at 60fps, the surface that we would be leaving behind
here would usually still be in use at the time this method was called.
But when some time has passed since the last update, usually all surfaces in
mSurfaces are no longer "in use" so we can "compress" the swap chain to be
double-buffered.

Differential Revision: https://phabricator.services.mozilla.com/D54860

--HG--
extra : moz-landing-system : lando
2019-12-18 20:34:28 +00:00
Botond Ballo
be4d75b35a Bug 1604956 - Avoid calling HasPaintedDisplayPort() with a null content element. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D57719

--HG--
extra : moz-landing-system : lando
2019-12-19 00:12:29 +00:00
Markus Stange
0f70058b6f Bug 1592044 - Reduce the frequency of IOSurface and framebuffer creation and destruction with the help of a surface pool. r=jgilbert
There are multiple SurfacePools: Main thread painting and the non-WebRender compositors create a new pool per window, and WebRender creates one shared pool across all windows. The non-WebRender users set the pool size limit to zero, i.e. no recycling across paints. This preserves the pre-existing behavior.
WebRender's pool size is configurable with the gfx.webrender.compositor.surface-pool-size pref.
Every window holds on to a SurfacePoolHandle. A SurfacePoolHandle has an owning reference to the pool, via a surface pool wrapper. Once all handles are gone, the surface pool goes away, too.
The SurfacePool holds on to IOSurfaces and MozFramebuffers. Both are created on demand, independently, but are associated with each other.
A given NativeLayer uses only one surface pool handle during its lifetime. The native layer no longer influences which GLContext its framebuffers are created for; the GL context is now managed by the surface pool handle.
As a result, a NativeLayer can no longer change which GLContext its framebuffers are created by.
So in the future, if we ever need to migrate a window frome one GLContext to another, we will need to recreate the NativeLayers inside it. I think that's ok.

Differential Revision: https://phabricator.services.mozilla.com/D54859

--HG--
extra : moz-landing-system : lando
2019-12-18 21:01:51 +00:00
David Parks
b6796ca47b Bug 1600032: Make GPUVideoTextureHost plugin lookup infallible r=mattwoodrow
If the D3D11TextureData backing the plugin variant of a GPUVideoTextureHost is requested, but the ImageBridge has already released or lost it then, instead of null, we now return a NullPluginTextureHost in order to avoid IPDL serialization failure down the line.  This mirrors the degenerate case of RemoteVideoDecoder behavior, indroduced to fix the same issue with that variant of GPUVideoTextureHost, in bug 1562616.

Differential Revision: https://phabricator.services.mozilla.com/D55843

--HG--
extra : moz-landing-system : lando
2019-12-16 21:57:54 +00:00
Botond Ballo
e1f64c8a8e Bug 1601568 - Only send a SetTargetAPZC notification right away if the target has a displayport and it has been painted. r=tnikkel
Merely checking for having a displayport isn't enough, because the paint to
tell APZ about the new scroll frame could still be pending.

Differential Revision: https://phabricator.services.mozilla.com/D56662

--HG--
extra : moz-landing-system : lando
2019-12-16 19:45:02 +00:00
Botond Ballo
19311b0174 Bug 1603224 - Guard against division-by-zero in AsyncPanZoomController::ScrollSnapToDestination(). r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D57179

--HG--
extra : moz-landing-system : lando
2019-12-14 00:24:31 +00:00
Botond Ballo
7a7b408666 Bug 1603280 - Guard against division-by-zero in AsyncPanZoomController::ComputePLPPI(). r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D57180

--HG--
extra : moz-landing-system : lando
2019-12-14 03:05:53 +00:00
Cosmin Sabou
bafbbf8086 Backed out changeset 1644a92ede46 (bug 1600032) for causing build bustages on ImageBridgeParent.cpp. CLOSED TREE 2019-12-12 23:27:29 +02:00
David Parks
b4d63744f2 Bug 1600032: Make GPUVideoTextureHost plugin lookup infallible r=mattwoodrow
If the D3D11TextureData backing the plugin variant of a GPUVideoTextureHost is requested, but the ImageBridge has already released or lost it then, instead of null, we now return a NullPluginTextureHost in order to avoid IPDL serialization failure down the line.  This mirrors the degenerate case of RemoteVideoDecoder behavior, introduced to fix the same issue with that variant of GPUVideoTextureHost, in bug 1562616.

Differential Revision: https://phabricator.services.mozilla.com/D55843

--HG--
extra : moz-landing-system : lando
2019-12-12 00:32:54 +00:00
Emilio Cobos Álvarez
8923c96955 Bug 1526725 - followup: Fix a test that's intermittently failing more often.
MANUAL PUSH: Intermittent orange fix.
2019-12-12 05:44:35 +01:00
Emilio Cobos Álvarez
4abc5101ed Bug 1526725 - Make wheel events passive by default on Nightly. r=smaug
This turned out to not be the root cause for that broken site, but I wrote the
code so... I enabled it on Nightly only to see if there's fallout, I don't think
we need to ship this in the near term, your call.

Depends on D56555

Differential Revision: https://phabricator.services.mozilla.com/D56556

--HG--
extra : moz-landing-system : lando
2019-12-11 22:15:15 +00:00
Dorel Luca
a431475073 Backed out 2 changesets (bug 1526725) as per dev's request
Backed out changeset 98bafb894b5d (bug 1526725)
Backed out changeset 2bbbaccb0d06 (bug 1526725)

--HG--
extra : rebase_source : c71e12cb776f5f6d56400bfb398648be803b0ac7
2019-12-10 19:37:45 +02:00
Emilio Cobos Álvarez
85117004f2 Bug 1526725 - Make wheel events passive by default on Nightly. r=smaug
This turned out to not be the root cause for that broken site, but I wrote the
code so... I enabled it on Nightly only to see if there's fallout, I don't think
we need to ship this in the near term, your call.

Differential Revision: https://phabricator.services.mozilla.com/D56556

--HG--
extra : moz-landing-system : lando
2019-12-10 16:59:34 +00:00
Emilio Cobos Álvarez
707ed5c818 Bug 1602421 - Remove some useless includes. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D56350

--HG--
extra : moz-landing-system : lando
2019-12-09 14:53:50 +00:00
Sean Feng
6db9bbdc3e Bug 1500465 - Measure touch scroll latency and connect to telemetry. r=mstange,botond
Differential Revision: https://phabricator.services.mozilla.com/D36246

--HG--
extra : moz-landing-system : lando
2019-12-07 03:57:56 +00:00
Emilio Cobos Álvarez
4a3be9604a Bug 1602317 - Switch style system to associated constants-in-body. r=heycam
This is closer to the equivalent Rust code.

Differential Revision: https://phabricator.services.mozilla.com/D56306

--HG--
extra : moz-landing-system : lando
2019-12-09 03:32:28 +00:00
Emilio Cobos Álvarez
25987bb3e9 Bug 1602317 - Remove some useless includes. r=heycam
This intended to fix some windows builds, but that didn't end up working.

This removes some unused members and such, and fixes some missing includes
that they uncover (whoops).

This was needed because some windows headers used in the sandbox redefine STRICT
(which is used by `StyleContain`) and `TRANSPARENT`, which is used by some WR
stuff.

Differential Revision: https://phabricator.services.mozilla.com/D56317

--HG--
extra : moz-landing-system : lando
2019-12-09 12:52:53 +00:00
Timothy Nikkel
1007edc182 Bug 1601527. In APZCTreeManager::ReceiveInputEvent for pinch gesture inputs adjust the target apzc to the root content. r=botond
Otherwise we hit this assert

https://searchfox.org/mozilla-central/rev/efdf9bb55789ea782ae3a431bda6be74a87b041e/gfx/layers/apz/src/AsyncPanZoomController.cpp#1209

The adjusting mentioned in that comment doesn't seem to happen on the path that macOS pinch gesture events use.

Differential Revision: https://phabricator.services.mozilla.com/D55917

--HG--
extra : moz-landing-system : lando
2019-12-07 03:19:07 +00:00
sotaro
d5a300b92b Bug 1599887 - Update frame is when WR rendering is skipped r=nical
wr::WebRenderPipelineInfo needs to be handled even when WR rendering does not happen.

Differential Revision: https://phabricator.services.mozilla.com/D55899

--HG--
extra : moz-landing-system : lando
2019-12-06 13:06:21 +00:00
Gabriele Svelto
69790bc62e Bug 1600545 - Remove useless inclusions of header files generated from IDL files in accessible/, browser/, caps/, chrome/, devtools/, docshell/, editor/, extensions/, gfx/, hal/, image/, intl/, ipc/, js/, layout/, and media/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55443

--HG--
extra : moz-landing-system : lando
2019-12-06 09:16:44 +00:00
sotaro
8cbdbb0cb2 Bug 1601531 - Tag image descriptors with PREFER_COMPOSITOR_SURFACE where appropriate r=gw
Differential Revision: https://phabricator.services.mozilla.com/D55922

--HG--
extra : moz-landing-system : lando
2019-12-06 06:53:57 +00:00
Barret Rennie
1bf300b45c Bug 1601047 - Mark composition recorder as stopped when stopping it r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D55716

--HG--
extra : moz-landing-system : lando
2019-12-03 20:37:21 +00:00
Jamie Nicol
ecf8b8f3eb Bug 1599248 - Use local raster space when animating a double tap zoom. r=botond
In bug 1531142 we made it so that when a spatial node is being pinch-zoomed we
use a local raster-space to avoid rerasterizing glyphs for every slight change
in zoom level. This makes it so that we also apply the same trick when
being asynchronously zoomed by a double-tap gesture.

Differential Revision: https://phabricator.services.mozilla.com/D55699

--HG--
extra : moz-landing-system : lando
2019-12-05 11:35:38 +00:00
Botond Ballo
a68b4de65d Bug 1591519 - Re-enable test_group_touchevents on android. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D55905

--HG--
extra : moz-landing-system : lando
2019-12-05 06:48:42 +00:00
Botond Ballo
c456ac6d8c Bug 1476893 - Split helper_bug1280013.html into its own test group. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D55904

--HG--
extra : moz-landing-system : lando
2019-12-05 06:34:37 +00:00
sotaro
c9b4baab9c Bug 1597861 - Pause compositor during hiding Wayland window r=stransky
Differential Revision: https://phabricator.services.mozilla.com/D53906

--HG--
extra : moz-landing-system : lando
2019-12-02 06:56:27 +00:00
sotaro
0c611d19d9 Bug 1599653 - Support CanvasContextType::ImageBitmap with WebRender r=nical
Differential Revision: https://phabricator.services.mozilla.com/D54890

--HG--
extra : moz-landing-system : lando
2019-11-28 16:50:43 +00:00
Botond Ballo
3ea796c95f Bug 1600567 - Avoid accessing APZCTreeManager::mRootNode without mTreeLock held in SendSubtreeTransformsToChromeMainThread(). r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D55473

--HG--
extra : moz-landing-system : lando
2019-12-02 20:06:12 +00:00
Timothy Nikkel
df4a65de6c Bug 1586843. Pass SideBits for fixed position content to webrender so it can pass it back via the HitTest api. r=botond
We add the SideBits to the data we store in the FixedPosScrollTargetTracker. nsDisplayCompositorHitTestInfo then passes the side bits when it sets hit test info. We then pack the side bits into the hit test info bits; luckily they were only using 12 of 16 bits. The wr HitTest api then extracts the side bits from the hit test info bits and passes them back.

Differential Revision: https://phabricator.services.mozilla.com/D54404

--HG--
extra : moz-landing-system : lando
2019-11-29 23:06:59 +00:00
Timothy Nikkel
51f49f02a6 Bug 1583380. Collect fixed position info on APZCTreeManager and use that to provide transforms to webrender via SampleForWebRender. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D54403

--HG--
extra : moz-landing-system : lando
2019-11-29 23:06:41 +00:00
Timothy Nikkel
fb46cff121 Bug 1583380. Plumb SideBits from the display list to WebRenderScrollDataWrapper. r=botond
The plumbing from there to the HitTestingTreeNode is already in place for the non-webrender case.

Differential Revision: https://phabricator.services.mozilla.com/D54402

--HG--
extra : moz-landing-system : lando
2019-11-29 23:06:34 +00:00
Timothy Nikkel
5d06f93d9e Bug 1583380. Protect APZCTreeManager::mFixedLayerMargins by mMapLock instead of mTreeLock. r=botond
We do this because we will need to access it in APZCTreeManager::SampleForWebRender which can't hold mTreeLock.

Differential Revision: https://phabricator.services.mozilla.com/D54400

--HG--
extra : moz-landing-system : lando
2019-11-29 23:06:24 +00:00
Timothy Nikkel
297e2538f7 Bug 1583380. Plumb a fixed position webrender animation id from the display list to the HitTestingTreeNode. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D54399

--HG--
extra : moz-landing-system : lando
2019-11-29 23:11:18 +00:00
Timothy Nikkel
465d77cae5 Bug 1600198. Make sure all uses of APZCTreeManager::mGeckoFixedLayerMargins are protected by mTreelock. r=botond,hiro
Differential Revision: https://phabricator.services.mozilla.com/D55206

--HG--
extra : moz-landing-system : lando
2019-11-29 23:11:18 +00:00
Dan Glastonbury
e811ef447a Bug 1597681: Remove debug assertion for AddRef on main thread. r=mattwoodrow
gfx::SourceSurface supports atomic ref counting, so is safe to call
AddRef/Release from any thread.  With the move to remote decoding in different
processes, access to Image happens on IPDL actor thread.

Retain the Release behavior of only releasing on the main thread.

Differential Revision: https://phabricator.services.mozilla.com/D55049

--HG--
extra : moz-landing-system : lando
2019-11-28 00:52:49 +00:00
Kris Taeleman
38b7d1873f Bug 1594145 - Add gfx telemetry scalars to geckoview_streaming. r=Dexter,jnicol
* Fix mochitest browser_Troubleshoot.js schema failure
* Fix mochitest browser_Troubleshoot.js schema failure on windows with
multiple adapters

Differential Revision: https://phabricator.services.mozilla.com/D52941

--HG--
extra : moz-landing-system : lando
2019-11-26 19:42:06 +00:00
Sylvestre Ledru
e94f355d96 Bug 1596911 - Add missing license headers on the new managed extensions r=Gijs,MattN
Depends on D53267

Differential Revision: https://phabricator.services.mozilla.com/D53269

--HG--
extra : moz-landing-system : lando
2019-11-26 15:00:00 +00:00
Sylvestre Ledru
8d2f0d1b1f Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D54686

--HG--
extra : moz-landing-system : lando
2019-11-26 14:35:02 +00:00
Martin Stransky
a731b16af1 Bug 1599016 [Wayland] Don't use GL_TEXTURE_EXTERNAL_OES textures with DMA BUF backend, r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D54690

--HG--
extra : moz-landing-system : lando
2019-11-26 11:15:48 +00:00
Coroiu Cristina
074f577ac7 Backed out changeset 91f3048cc58e (bug 1594145) for browser-chrome failures at toolkit/modules/tests/browser/browser_Troubleshoot.js on a CLOSED TREE 2019-11-26 04:49:17 +02:00
Kris Taeleman
92eb33ee8b Bug 1594145 - Add gfx telemetry scalars to geckoview_streaming. r=Dexter,jnicol
* Fix mochitest browser_Troubleshoot.js schema failure

Differential Revision: https://phabricator.services.mozilla.com/D52941

--HG--
extra : moz-landing-system : lando
2019-11-25 20:50:33 +00:00
David Parks
15a6427d74 Bug 1598680: Check that D3D device exists in async plugin rendering r=haik
If the compositor has lost the D3D device, we cannot complete async plugin surface creation/blitting.

Differential Revision: https://phabricator.services.mozilla.com/D54633

--HG--
extra : moz-landing-system : lando
2019-11-25 23:40:54 +00:00
Markus Stange
27710815d4 Bug 1596955 - Add opaqueness tinting to NativeLayerCA. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D53289

--HG--
extra : moz-landing-system : lando
2019-11-25 19:06:16 +00:00
Mihai Alexandru Michis
a033171524 Backed out changeset 270e007adcd2 (bug 1594145) for causing browser-chrome failures in browser_Troubleshoot.js 2019-11-25 14:51:07 +02:00
Kris Taeleman
25c223ac03 Bug 1594145 - Add gfx telemetry scalars to geckoview_streaming. r=Dexter,jnicol
Differential Revision: https://phabricator.services.mozilla.com/D52941

--HG--
extra : moz-landing-system : lando
2019-11-23 00:18:27 +00:00
Razvan Maries
b908c8b469 Backed out changeset 0ae41aa8997b (bug 1594145) for build bustages on GfxInfo.cpp. CLOSED TREE 2019-11-22 14:52:04 +02:00
Kris Taeleman
90c12ab5c4 Bug 1594145 - Add gfx telemetry scalars to geckoview_streaming. r=Dexter,jnicol
Differential Revision: https://phabricator.services.mozilla.com/D52941

--HG--
extra : moz-landing-system : lando
2019-11-21 21:09:33 +00:00
Markus Stange
32299e9f70 Bug 1597585 - Remove GLManager, which is now unused. r=mattwoodrow
Depends on D53772

Differential Revision: https://phabricator.services.mozilla.com/D53773

--HG--
extra : moz-landing-system : lando
2019-11-20 23:22:20 +00:00
Markus Stange
df49f517a5 Bug 1597585 - Make LayerManagerComposite use mGL to pass the GL context to PreRender, just like WebRender. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D53772

--HG--
extra : moz-landing-system : lando
2019-11-20 23:22:58 +00:00
Markus Stange
d582a45148 Bug 1597585 - Remove WidgetRenderingContext's unused field mCompositor. r=mattwoodrow
The only use of this was inside Android's nsWindow::PreRender.
That method was removed in changeset 81de9d1439b0e352729142f6aa2914674073da03 (bug 1335895).

Differential Revision: https://phabricator.services.mozilla.com/D53771

--HG--
extra : moz-landing-system : lando
2019-11-20 23:22:18 +00:00