Граф коммитов

36131 Коммитов

Автор SHA1 Сообщение Дата
Mihai Alexandru Michis 9e905bd7db Backed out changeset 53650b8686a6 (bug 1614890) for causing webrender failures.
CLOSED TREE
2020-02-12 11:24:25 +02:00
Tim Nguyen 02ff3004d9 Bug 1614890 - Implement conic-gradient for WebRender graphics backend. r=gw,nical
Differential Revision: https://phabricator.services.mozilla.com/D61599

--HG--
extra : moz-landing-system : lando
2020-02-12 08:50:06 +00:00
sotaro f91887c794 Bug 1595014 - Make dirty rects are invalid when old tiles were dropped r=gw
composite_simple() calculates combined dirty rect from all tile's dirty rect. But the combined dirty rect becomes invalid when there is an old tile that was dropped. The dropped tile's dirty rect is not counted in composite_simple().

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

--HG--
extra : moz-landing-system : lando
2020-02-12 05:27:12 +00:00
Glenn Watson cba3133d84 Bug 1608280 - Part 2 - Use valid rect to reduce pixel costs. r=kvark
With this patch, a minimal valid rect is calculated for each
picture cache tile. This is used to reduce the scissor rect
during tile rasterization, and the draw rect during tile
compositing, whenever there is a partial tile.

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

--HG--
extra : moz-landing-system : lando
2020-02-12 03:21:12 +00:00
Glenn Watson 31585fc1e6 Bug 1608717 - Support per-tile clip (valid) region for native compositor implementations. r=sotaro,mstange
For Draw (non-native) and CA modes, we include the per-tile
valid rect in the clip rect from the surface.

For DC (non-virtual) mode, a per-tile clip rect is set on the
visual for each tile, separate from the overall clip rect that
is set on the surface visual.

For DC (virtual) mode, the Trim API is used to remove pixels
in the virtual tile area that are outside the valid / clipped
region.

Note: Although the valid rect is now applied in the native
compositors, it's currently only based on the overall picture
cache bounding rect. Thus, with this patch there isn't any
noticeable performance improvement. Once this lands and is
working correctly, the follow up patch to calculate a smaller
valid region per-tile is a small amount of work.

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

--HG--
extra : moz-landing-system : lando
2020-02-12 04:27:15 +00:00
Timothy Nikkel f4658e4672 Bug 1613143. Don't allow an empty transaction to succeed with webrender if we haven't sent a display list to the parent. r=mattwoodrow
I think this probably only shows up with fission oop iframes, tabs probably avoid this path.

The problem occurs when we reconstruct the containing iframe for a style change, we briefly hide the child document, clearing the display list on the parent via ClearCachedResources. Then show it again, we attempt an empty transaction and this succeeds because there is nothing to stop it. (The non-wr case fails because the layer contents are missing and that causes the empty transaction to fail.)

So keep track if we have sent a display list to the parent to allow/disallow an empty transaction.

This fixes a couple webrender+fission reftest failures but it's also a general rendering bug in webrender+fission reproducible in a regular browser.

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

--HG--
extra : moz-landing-system : lando
2020-02-12 01:40:51 +00:00
Ciure Andrei 410dc434d0 Backed out changeset d46cb79a9b55 (bug 1613143)for causing reftest fission failures CLOSED TREE 2020-02-12 03:20:15 +02:00
Timothy Nikkel 68c2b57363 Bug 1613143. Don't allow an empty transaction to succeed with webrender if we haven't sent a display list to the parent. r=mattwoodrow
I think this probably only shows up with fission oop iframes, tabs probably avoid this path.

The problem occurs when we reconstruct the containing iframe for a style change, we briefly hide the child document, clearing the display list on the parent via ClearCachedResources. Then show it again, we attempt an empty transaction and this succeeds because there is nothing to stop it. (The non-wr case fails because the layer contents are missing and that causes the empty transaction to fail.)

So keep track if we have sent a display list to the parent to allow/disallow an empty transaction.

This fixes a couple webrender+fission reftest failures but it's also a general rendering bug in webrender+fission reproducible in a regular browser.

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

--HG--
extra : moz-landing-system : lando
2020-02-11 19:01:30 +00:00
Emilio Cobos Álvarez 6311bc2129 Bug 1614512 - Give mozilla::Side and mozilla::Corner a fixed underlying type. r=froydnj
So as to avoid UB. It is somewhat unfortunate/dumb the fact that we need to do
this and we can't detect when we forget to do it :(

Give it uint8_t as it's type as that's enough and consistent with LogicalSide.

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

--HG--
extra : moz-landing-system : lando
2020-02-11 14:11:06 +00:00
Brindusan Cristian 615e78b5fc Backed out changeset a91870b97f09 (bug 1611886) for xpcshell failures at test_browserid_identity.js. CLOSED TREE 2020-02-11 09:03:03 +02:00
Hiroyuki Ikezoe 1c0f15006d Bug 1599795 - Rename BrowserChild::GetRemoteDocumentRect to GetTopLevelViewportVisibleRectInBrowserCoords. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D62183

--HG--
extra : moz-landing-system : lando
2020-02-11 03:35:56 +00:00
Hiroyuki Ikezoe d4fa8f4fad Bug 1599795 - Change the remote document rect to size in gfx. r=emilio
What we really needed in the first place was the size not the rect.

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

--HG--
extra : moz-landing-system : lando
2020-02-11 03:57:14 +00:00
sotaro c3615f343f Bug 1611886 - Add VRManagerParent::Shutdown() r=nical
Differential Revision: https://phabricator.services.mozilla.com/D61144

--HG--
extra : moz-landing-system : lando
2020-02-05 09:42:37 +00:00
sotaro b23e6dbb81 Bug 1554610 - Destroy CompositorWindow if BasicCompositor is used r=nical
When BasicCompositor is used, BasicCompositor does not use CompositorWindow.

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

--HG--
extra : moz-landing-system : lando
2020-02-04 09:07:57 +00:00
Emilio Cobos Álvarez f4734a4dca Bug 1614208 - Stop including nsStyleConsts.h from WebRenderTypes.h. r=jrmuizel
This is another one which is included everywhere. If the OOL call mattered we
could move these to a different header or something, but I suspect it won't.

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

--HG--
extra : moz-landing-system : lando
2020-02-11 01:23:41 +00:00
Emilio Cobos Álvarez d7841a5f17 Bug 1614208 - Remove some include dependencies in nsStyleConsts.h. r=jfkthame,jgilbert
We include it everywhere because it's included from gfxTypes.h.

This should avoid including all the generated bindings _everywhere_.

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

--HG--
extra : moz-landing-system : lando
2020-02-11 01:23:37 +00:00
Andrew Osmond 9b47c699df Bug 1613683 - Ship WebRender on Intel/AMD devices with small screens and a battery to beta. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D62321

--HG--
extra : moz-landing-system : lando
2020-02-10 20:27:12 +00:00
Gerald Squelart fbbc5d66db Bug 1614013 - Fix RAII Profiler object scopes - r=gregtatum
In bug 1578329 I introduced two scoping mistakes:
- A marker was made to have a shorter duration.
- A label was scoped too short and so would most likely be missed during
  sampling.
This patch reverts to the original wider scope.

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

--HG--
extra : moz-landing-system : lando
2020-02-10 20:44:33 +00:00
Mihai Alexandru Michis 0044ed8301 Backed out changeset 85ffb2302070 (bug 1600793) for causing crashes regarding DeadlockDetector
CLOSED TREE
2020-02-10 22:41:38 +02:00
Sean Feng 7c81402e17 Bug 1600793 - Make the scrolling input telemetry work for WebRender r=botond,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D60046

--HG--
extra : moz-landing-system : lando
2020-02-10 17:41:45 +00:00
Bert Peers 0c4b6be182 Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Fourth iteration: improve the detail in reported tile invalidations.

The invalidation enum stores the old and new values for lightweight
types.  For a change in PrimCount, the old and new list of ItemUids is
stored (if logging is enabled); the tool can then diff the two to see
what was added and removed.  To convert that back into friendly strings,
the interning activity is used to build up a map of ItemUid to a string.

A similar special-casing of Content Descriptor will print the item
that's invalidating the tile, plus the origin and/or rectangle.

Also adding zoom and pan command line options both to fix high-DPI
issues and also to allow zooming out far enough to see out-of-viewport
cache lifetime and prefetching due to scrolling.

Also fix a bug where interning updates get lost if more than one update
happens without building a frame: switch to a vector of serialized
updatelists (one per type) instead of allowing just one string (per
type).

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

--HG--
extra : moz-landing-system : lando
2020-02-10 17:35:05 +00:00
Bert Peers 6713755841 Bug 1603274 - Move unsafe inside wr_thread_pool_new r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D61763

--HG--
extra : moz-landing-system : lando
2020-02-06 00:47:51 +00:00
Nicolas Silva 21cc009300 Bug 1612988 - Fix warning in a peek_poke test. r=jrmuizel
The test is meant to check that tupes work and a tuple of a single element needs a comma to differentiate it from just being the element.

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

--HG--
extra : moz-landing-system : lando
2020-02-10 14:10:26 +00:00
Botond Ballo 5a714b45fa Bug 1612750 - Use the main thread's visual viewport offset as the fallback scroll offset when APZ is force-disabled. r=tnikkel
This ensures that even if APZ is force-disabled, the permanent offset between
the visual and layout viewports is preserved during rendering.

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

--HG--
extra : moz-landing-system : lando
2020-02-10 15:20:08 +00:00
Botond Ballo 659489f090 Bug 1612750 - Move handling of IsApzForceDisabled() into the GetEffective*() functions where possible. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D62091

--HG--
extra : moz-landing-system : lando
2020-02-10 15:19:29 +00:00
Botond Ballo 9d2b7b80cb Bug 1612750 - Simplify a misleading calculation in AsyncPanZoomController::GetCurrentAsyncTransform(). r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D62090

--HG--
extra : moz-landing-system : lando
2020-02-10 15:19:16 +00:00
Jonathan Kew e7b074c98a Bug 1613996 - Try to avoid instantiating an FT_Face just to read the font's charmap for FindFontForChar. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D62152

--HG--
extra : moz-landing-system : lando
2020-02-09 04:18:22 +00:00
Jeff Muizelaar 3dd8739d15 Bug 1613485. Add a new COMPOSITE_SWAP_TIME metric. r=aosmond
This should help us narrow down the regression in COMPOSITE_TIME

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

--HG--
extra : moz-landing-system : lando
2020-02-06 19:49:25 +00:00
Jamie Nicol ec3f3be37b Bug 1613144 - Ensure async scroll offset is in correct coordinate space whilst async zooming. r=botond
Bug 1609002 made it so that the async scroll offset sent to webrender
is taken from only the layout component of the async transform, rather
than the combined layout and visual components. The consequence of
this is that the layout-only transform is in LayerPixel space (and
unnaffected by the async zoom) rather than ParentLayerPixel
space (which is affected by async zoom).

To convert the value to LayoutDevicePixel space, as webrender expects,
we were dividing by the pinch zoom scale, which includes the async
zoom. This was causing content to jump around whilst async panning and
zooming, as the scroll offset was incorrectly scaled. This is fixed
by instead dividing by the cumulative resolution, which does not
include the async zoom.

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

--HG--
extra : moz-landing-system : lando
2020-02-07 20:45:31 +00:00
David Major 7fc89d3fa3 Bug 1577236 - clang-10: Fix a -Wimplicit-int-float-conversion warning in ExtendInputEffectD2D1 r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D60998

--HG--
extra : moz-landing-system : lando
2020-02-07 18:06:11 +00:00
shindli 441a09145b Backed out 2 changesets (bug 1613144) for causing reftest failures CLOSED TREE
Backed out changeset 8124309e0bbe (bug 1613144)
Backed out changeset d5d9bf5b8d20 (bug 1613144)
2020-02-07 22:36:52 +02:00
Jamie Nicol 0a3b925a51 Bug 1613144 - Ensure async scroll offset is in correct coordinate space whilst async zooming. r=botond
Bug 1609002 made it so that the async scroll offset sent to webrender
is taken from only the layout component of the async transform, rather
than the combined layout and visual components. The consequence of
this is that the layout-only transform is in LayerPixel space (and
unnaffected by the async zoom) rather than ParentLayerPixel
space (which is affected by async zoom).

To convert the value to LayoutDevicePixel space, as webrender expects,
we were dividing by the pinch zoom scale, which includes the async
zoom. This was causing content to jump around whilst async panning and
zooming, as the scroll offset was incorrectly scaled. This is fixed
by instead dividing by the cumulative resolution, which does not
include the async zoom.

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

--HG--
extra : moz-landing-system : lando
2020-02-07 13:43:23 +00:00
Emilio Cobos Álvarez 61d0c10572 Bug 1613490 - Cleanup usage of ReferenceBox. r=miko
To avoid computing transform bounds over and over. It is generally just better.

Replace the various "overridebounds" thingies by using the "fallback" of the
transform-reference-box code which we need anyway.

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

--HG--
extra : moz-landing-system : lando
2020-02-07 13:34:42 +00:00
Marco Castelluccio 74dcb8afb2 Bug 1613514 - Disable gfx/layers/apz/test/mochitest/browser_test_group_fission.js on Linux coverage builds as it consistently times out. r=aryx
Differential Revision: https://phabricator.services.mozilla.com/D61993

--HG--
extra : moz-landing-system : lando
2020-02-07 11:13:46 +00:00
Glenn Watson 256e1fae96 Bug 1613316 - Fix panic in TileCache::pre_update. r=Bert
Differential Revision: https://phabricator.services.mozilla.com/D61922

--HG--
extra : moz-landing-system : lando
2020-02-06 21:44:44 +00:00
Nika Layzell c56289e054 Bug 1557739 - Be more consistent with IPC Transport APIs, r=jld
Differential Revision: https://phabricator.services.mozilla.com/D60285

--HG--
extra : moz-landing-system : lando
2020-02-06 22:41:56 +00:00
Emilio Cobos Álvarez dacbb30683 Bug 1613349 - Address one review comment I missed.
Differential Revision: https://phabricator.services.mozilla.com/D61841

--HG--
extra : moz-landing-system : lando
2020-02-06 16:11:34 +00:00
Martin Stransky 7e18aeed6a Bug 1613358 [Wayland] Implement WaylandDMABUFSurfaceImage dmabuf image, r=sotaro
Implement WaylandDMABUFSurfaceImage which is backed by dma buf memory on Wayland and it holds
decoded video images produced by ffmpeg va-api decoder.

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

--HG--
extra : moz-landing-system : lando
2020-02-06 15:15:02 +00:00
Emilio Cobos Álvarez c5c0ef9787 Bug 1613349 - Rename nsIFrame::DeleteProperty to RemoveProperty. r=dholbert
As it doesn't necessarily call delete and that may be confusing.

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

--HG--
extra : moz-landing-system : lando
2020-02-06 16:06:49 +00:00
Emilio Cobos Álvarez bf6256b1fc Bug 1613349 - Make nsIFrame::TakeProperty MOZ_MUST_USE. r=dholbert
Depends on D61756

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

--HG--
extra : moz-landing-system : lando
2020-02-06 00:39:10 +00:00
Brindusan Cristian 443b32771a Backed out changeset 6381c1f2aedc (bug 1613358) for build bustages at GLBlitHelper.cpp. CLOSED TREE 2020-02-06 16:15:27 +02:00
Martin Stransky f6d5f48d74 Bug 1613358 [Wayland] Implement WaylandDMABUFSurfaceImage dmabuf image, r=sotaro
Implement WaylandDMABUFSurfaceImage which is backed by dma buf memory on Wayland and it holds
decoded video images produced by ffmpeg va-api decoder.

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

--HG--
extra : moz-landing-system : lando
2020-02-06 12:10:57 +00:00
Andrew Osmond 52c022a178 Bug 1612589 - Improve image memory reporting even further. r=tnikkel
This patch adds reporting the surface types used by the image frame in a
bit mask (such if it is a CAPTURE including a DATA_SHARED, the mask will
be 1 << CAPTURE | 1 << DATA_SHARED), as well as an estimated size
included in the report as decoded-unknown for when we do not know if the
surface is on the heap or the non-heap specifically. This is the default
implementation for a SourceSurface as well, so we should no longer have
the case where surfaces appear empty despite being in the cache. It also
makes requests being validated as always notable for reporting purposes.

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

--HG--
extra : moz-landing-system : lando
2020-02-05 22:22:13 +00:00
Lee Salzman 4d55e5ebdb Bug 1613402 - avoid redundant adding of blob font data. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D61752

--HG--
extra : moz-landing-system : lando
2020-02-06 01:08:46 +00:00
Andrew Osmond 0173964fde Bug 1604535 - Disable OMTP on some 32-bit systems due to memory pressure. r=jrmuizel
We will no longer allow OMTP on 32-bit systems with less than 2GB of RAM
and 2 or fewer cores. These systems are unlikely to realize a benefit
from OMTP and see a higher than normal incidence of OOM crashes in the
content process due to OMTP having a higher memory footprint.

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

--HG--
extra : moz-landing-system : lando
2020-02-03 11:39:06 +00:00
shindli 0c932bb6d4 Backed out changeset f020ddf90621 (bug 1612988) for causing webrender bustage CLOSED TREE 2020-02-05 18:09:15 +02:00
Andrew Osmond 94bd8af992 Bug 1613375 - Always use reference frame origin offset in snapping transforms. r=nical
We incorporate the reference frame origin offset for non-animated
transforms, but forgot for animated transforms. Since the offset itself
is not animated, we should still incorporate it into the snapping
transform.

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

--HG--
extra : moz-landing-system : lando
2020-02-05 15:42:20 +00:00
Nicolas Silva e584e41b84 Bug 1612988 - Fix warning in a peek_poke test. r=jrmuizel
The test is meant to check that tupes work and a tuple of a single element needs a comma to differentiate it from just being the element.

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

--HG--
extra : moz-landing-system : lando
2020-02-05 15:10:16 +00:00
Nicolas Silva 2c4937a4cf Bug 1612437 - Remove ipc-channel from WebRender. r=gw
Original patch from Josh Mattews

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

--HG--
extra : moz-landing-system : lando
2020-02-05 11:09:43 +00:00
sotaro aa001195aa Bug 1612665 - Backout Bug 1596630 r=nical
SyncObjectD3D11Host::Synchronize() calling in RenderCompositorANGLE::BeginFrame() is still necessary for D3D11DXVA2Manager::CopyToImage(). Then backout Bug 1596630.

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

--HG--
extra : moz-landing-system : lando
2020-02-05 09:39:28 +00:00
Nicolas Silva 4269e36963 Bug 1613167 - Enable/Disable rayon in WebRender via pref. r=gw
We need a way to switch it on and off to compare the performance and power usage of various test cases.
The new pref is "webrender.enable-multithreading" and does not require a restart.

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

--HG--
extra : moz-landing-system : lando
2020-02-05 09:51:14 +00:00
Martin Stransky c8f1770150 Bug 1613052 [Wayland] Don't release textures at WaylandDMABUFTextureHostOGL as they're owned by texture source, r=sotaro
Depends on D61547

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

--HG--
extra : moz-landing-system : lando
2020-02-05 08:31:08 +00:00
Martin Stransky 06c955cfc2 Bug 1613052 [Wayland] Use texture handle from WaylandDMABUFSurface directly at WebRender, r=sotaro
Depends on D61546

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

--HG--
extra : moz-landing-system : lando
2020-02-05 08:31:01 +00:00
Bert Peers b2596b3344 Bug 1599327 - Use cluster scrollbar flags to select picture cache tile size. r=gw
(cherry picked from commit 348b45266ac2c2c65dcc26705dc7cf144f5e0051)

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

--HG--
extra : moz-landing-system : lando
2020-02-05 07:39:42 +00:00
Martin Stransky 849ffb22b3 Bug 1586696 [Wayland] Use wayland dmabuf as WebGL backend, r=jgilbert
- Create new SharedSurfaceType called EGLSurfaceDMABUF
- Implement EGLSurfaceDMABUF by SharedSurfaceDMABUF which is backed by WaylandDMABufSurface.
  It can be used by Wayland/EGL WebGL backend.
- It's disabled by default, can be enabled by widget.wayland_dmabuf_webgl.enabled pref.

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

--HG--
extra : moz-landing-system : lando
2020-02-05 06:32:25 +00:00
Andrew Osmond 9d3a8108a7 Bug 1613114 - Remove rounding the backdrop filter bounds during WR display list building. r=jrmuizel
No other items need to round their bounds/clips, and backdrop filters
should be no exception. They should trust scene building (and to a
lesser extent, frame building) to perform any necessary snapping. This
patch also removes the ToRoundedLayoutPoint/Rect methods as there are no
more users of the APIs, nor should there ever be.

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

--HG--
extra : moz-landing-system : lando
2020-02-04 20:24:55 +00:00
Markus Stange 19bbc2e73c Bug 1607777 - Clear areas that CARenderer repaints, so that old content doesn't accomulate in transparent areas such as the tab bar. r=jrmuizel
I consider this to be a bug in CARenderer. According to https://stackoverflow.com/questions/56150363/rendering-animated-calayer-off-screen-using-carenderer-with-mtltexture the Metal implementation has the same bug.

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

--HG--
extra : moz-landing-system : lando
2020-01-29 12:48:03 +00:00
Markus Stange 0a370169dc Bug 1607777 - Fix CARenderer invalidation when the buffer size changes. r=jrmuizel
addUpdateRect needs to be called after beginFrame, otherwise it doesn't do anything.

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

--HG--
extra : moz-landing-system : lando
2020-01-29 12:47:22 +00:00
Markus Stange 40367ae22a Bug 1607777 - When using CARenderer on HiDPI, pass device pixels to the glOrtho call and use a sublayerTransform on the root CALayer. r=jrmuizel
The CARenderer documentation does not provide any guidance on how to use CARenderer with different resolutions.
In the initial implementation I simply tried the following: Make a device-pixel sized framebuffer, call glViewport with the device pixel size, and then call glOrtho with the "point" size. And this seemed to work.
However, it doesn't always work. When hooking up profiler screenshots, I noticed that in some cases, some layers would just not be rendered. Sometimes I even saw layers show up in wrong places.
After this patch, these problems no longer appear.

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

--HG--
extra : moz-landing-system : lando
2020-01-29 12:46:44 +00:00
Andrew Osmond c3d9e31934 Bug 1611601 - Stop snapping when calculating uv rects on the CPU side. r=gw
In bug 1574493, we moved most snapping to scene building and a minority
to frame building. No snapping is done in the shader. However there was
some left over code that still tried to replicate the past behaviour and
this caused wobbling during the rendering. This patch removes the extra
snapping on the CPU side and trusts scene/frame building to do the job.

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

--HG--
extra : moz-landing-system : lando
2020-02-04 19:06:01 +00:00
Jamie Nicol dcf72a8a69 Bug 1569339 - Handle position: sticky correctly in webrender whilst zoomed. r=botond
Webrender positions sticky items relative to the viewport rect set on
their ancestor scroll frame, which it expects to be in local
space. The viewport should be set to what gecko calls the scroll
frame's "scroll port" (relative to its reference frame).

Previously we were setting this to be `composition bounds /
resolution`, which gives the correct results at the initial zoom
level, but causes sticky items to jump around when the zoom
changes. This occurs because the composition bounds of the RCD-RSF do
not change as the zoom changes, and instead remain equal to the
widget's size.

The layout viewport remains at the correct size when zoomed, but
unfortunately doesn't have the correct origin. And FrameMetrics does
not provide the constant "initial zoom" value we require to obtain the
desired viewport rect from the composition bounds. To fix this we
therefore must query the scroll port and offset directly from the
scrollable frame, meaning the value remains correct even as the zoom
changes.

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

--HG--
extra : moz-landing-system : lando
2020-02-04 16:40:48 +00:00
Lee Salzman 5b627ad6ad Bug 1612973 - allow opaque images to use the fast image shader. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D61508

--HG--
extra : moz-landing-system : lando
2020-02-04 09:14:52 +00:00
Glenn Watson adbb5ec13d Bug 1601865 - Fix scrollbar cache slices having extra primitives. r=nical
There's two potential cases handled by this patch:

(1) A scrollbar container followed by another scrollbar container.
    In this case, we need to ensure these are placed into separate
    clusters, even though the cluster flags otherwise match, to
    ensure that slice creation will see the two clusters.

(2) If a fixed position scroll root trails a scrollbar container.
    In this case, ensure that a scrollbar contains marks the
    cluster flags to create a slice straight after the scrollbar,
    to avoid other primitives with the same scroll root sneaking
    into the scrollbar container.

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

--HG--
extra : moz-landing-system : lando
2020-02-04 09:21:16 +00:00
Ting-Yu Lin 22ea8326d7 Bug 1610670 - Add AllPhysicalHalfCorners() to support range-based for loops. r=mats
This patch is generated via:
1. Manually modify gfx/2d/Types.h
2. Run the following script and clang-format.
3. Add brackets for the for loop in nsCSSRendering.cpp.

```

function rename() {
    echo "Renaming $1 to $2"
    rg -l "$1" | xargs sed -i -E -e s/"$1"/"$2"/g
}

rename "NS_FOR_CSS_HALF_CORNERS\(i\)" "for (const auto i : mozilla::AllPhysicalHalfCorners())"
rename "NS_FOR_CSS_HALF_CORNERS\(corner\)" "for (const auto corner : mozilla::AllPhysicalHalfCorners())"
```

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

--HG--
extra : moz-landing-system : lando
2020-02-04 03:28:47 +00:00
Ting-Yu Lin b19983c13e Bug 1610670 - Add AllPhysicalCorners() to support range-based for loops. r=mats
This patch is generated via:
1. Manually modify gfx/2d/Types.h
2. Run the following script and clang-format.

```

function rename() {
    echo "Renaming $1 to $2"
    rg -l "$1" | xargs sed -i -E -e s/"$1"/"$2"/g
}

rename "NS_FOR_CSS_FULL_CORNERS\(i\)" "for (const auto i : mozilla::AllPhysicalCorners())"
rename "NS_FOR_CSS_FULL_CORNERS\(corner\)" "for (const auto corner : mozilla::AllPhysicalCorners())"
```

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

--HG--
extra : moz-landing-system : lando
2020-02-04 03:28:35 +00:00
Ting-Yu Lin c81d3e5f5f Bug 1610670 - Add AllPhysicalSides() to support range-based for loops. r=mats
This patch is generated via:
1. Manually modify gfx/2d/Types.h
2. Run the following script and clang-format.

```

function rename() {
    echo "Renaming $1 to $2"
    rg -l "$1" | xargs sed -i -E -e s/"$1"/"$2"/g
}

rename "NS_FOR_CSS_SIDES\(side\)" "for (const auto side : mozilla::AllPhysicalSides())"
rename "NS_FOR_CSS_SIDES\(s\)" "for (const auto s : mozilla::AllPhysicalSides())"
rename "NS_FOR_CSS_SIDES\(i\)" "for (const auto i : mozilla::AllPhysicalSides())"
rename "NS_FOR_CSS_SIDES\(ix\)" "for (const auto ix : mozilla::AllPhysicalSides())"
```

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

--HG--
extra : moz-landing-system : lando
2020-02-04 03:28:27 +00:00
Oana Pop Rus bc5a36afbd Backed out changeset e9ec1b50f99a (bug 1506376) for devtools multiple failures in browser_animation_keyframes-graph_special-colors.js 2020-02-04 03:43:28 +02:00
Glenn Watson 9b0c2f7a0e Bug 1608280 - Part 1 - Add a valid_rect to picture cache and composite tiles. r=mstange
This patch introduces a per-tile valid rect. In the initial implementation,
this only uses the bounds of the overall picture cache bounding rect. The
next part of this patch will make use of true per-tile valid regions, to
improve performance where there are holes in a single cache slice.

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

--HG--
extra : moz-landing-system : lando
2020-02-03 23:16:54 +00:00
Olli Pettay 3cae7adb8a Bug 1506376, make DidComposite to use mediumhigh priority message r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D61083

--HG--
extra : moz-landing-system : lando
2020-02-03 21:00:01 +00:00
Jim Blandy 2436afd008 Bug 1571974: Simplify orientation handling in line decoration shaders. r=kvark
We want to use the same line decoration (dashed, dotted, wavy) shader code for
both horizontal and vertical lines, so it makes sense for them to use a
coordinate system that has been rotated (transposed, actually) so that .x always
runs parallel to the line being decorated, and .y is always perpendicular.

Before this patch, we passed the orientation enum as a vertex attribute, used a
switch to swap coordinates in the vertex shader, and then swapped them again in
the fragment shader.

This patch trades the orientation for a f32 'axis select' vertex attribute, and
uses `mix` to swap them in the vertex shader. Then no consideration is necessary
in the fragment shader: the vLocalPos varying is already in the appropriate form.

Since get_line_decoration_sizes is already thinking in terms of line-parallel
coordinates, it might seem like a good idea for decoration jobs to simply use
line-parallel coordinates throughout. However, this actually results in more
swapping and opportunities for confusion: much of the CPU work is concerned with
the rectangle the decoration's mask occupies in the texture cache, which is
axis-aligned.

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

--HG--
extra : rebase_source : 8dcd8455c664067dd25f583c944d611a35c25e79
extra : source : dfb21632ea198c1acdc6a34ee08113d516f666d5
2020-01-24 21:46:56 +00:00
Jim Blandy 3e1f7b939b Bug 1571974: Make prim_store::get_line_decoration_sizes return an oriented LayoutSize. r=kvark
Without this change, get_line_decoration_sizes returns an (inline_size,
block_size) pair, where inline_size is parallel to the line being decorated, and
block_size perpendicular. However, these values are generally used as the
dimensions of an axis-aligned bounding box for the line, not as specific
parameters to the rendering process, so it makes sense to arrange them into a
LayoutSize value in this function, since it is already taking the orientation
into account anyway.

The caller, SceneBuilder::add_line, then doesn't need to swap the components,
and the adjustment of the clipping rectangle to avoid partial dots looks a bit
more natural: widths with widths, heights with heights.

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

--HG--
extra : rebase_source : 093d572a7a35bddc6e070fc08d511f7f164a4d89
extra : source : 3549dd471446c291864822736f4587c81741cd56
2020-02-03 09:31:22 +00:00
Oana Pop Rus 96b8905f87 Backed out 2 changesets (bug 1571974) for turning bug 1518179 into perma bc failures. on a CLOSED TREE
Backed out changeset dfb21632ea19 (bug 1571974)
Backed out changeset 3549dd471446 (bug 1571974)
2020-02-03 22:00:29 +02:00
Jonathan Kew 2d4e9aeb66 Bug 1611997 - Invert the sign of the slant angle when mapping between CSS font-style and OpenType 'slnt' axis. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D61228

--HG--
extra : moz-landing-system : lando
2020-01-31 15:05:52 +00:00
Jim Blandy 279cadb72a Bug 1571974: Simplify orientation handling in line decoration shaders. r=kvark
We want to use the same line decoration (dashed, dotted, wavy) shader code for
both horizontal and vertical lines, so it makes sense for them to use a
coordinate system that has been rotated (transposed, actually) so that .x always
runs parallel to the line being decorated, and .y is always perpendicular.

Before this patch, we passed the orientation enum as a vertex attribute, used a
switch to swap coordinates in the vertex shader, and then swapped them again in
the fragment shader.

This patch trades the orientation for a f32 'axis select' vertex attribute, and
uses `mix` to swap them in the vertex shader. Then no consideration is necessary
in the fragment shader: the vLocalPos varying is already in the appropriate form.

Since get_line_decoration_sizes is already thinking in terms of line-parallel
coordinates, it might seem like a good idea for decoration jobs to simply use
line-parallel coordinates throughout. However, this actually results in more
swapping and opportunities for confusion: much of the CPU work is concerned with
the rectangle the decoration's mask occupies in the texture cache, which is
axis-aligned.

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

--HG--
extra : moz-landing-system : lando
2020-01-24 21:46:56 +00:00
Jim Blandy b524ca8410 Bug 1571974: Make prim_store::get_line_decoration_sizes return an oriented LayoutSize. r=kvark
Without this change, get_line_decoration_sizes returns an (inline_size,
block_size) pair, where inline_size is parallel to the line being decorated, and
block_size perpendicular. However, these values are generally used as the
dimensions of an axis-aligned bounding box for the line, not as specific
parameters to the rendering process, so it makes sense to arrange them into a
LayoutSize value in this function, since it is already taking the orientation
into account anyway.

The caller, SceneBuilder::add_line, then doesn't need to swap the components,
and the adjustment of the clipping rectangle to avoid partial dots looks a bit
more natural: widths with widths, heights with heights.

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

--HG--
extra : moz-landing-system : lando
2020-02-03 09:31:22 +00:00
Jonathan Kew ab65dd885f Bug 1612822 - Refactor text decoration offset/thickness computations. r=emilio
We replace SetWidthIfLength and SetOffsetIfLength with ComputeDecorationLine{Thickness,Offset} functions,
and consolidate more of the computation of the offset within this function to simplify callers.

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

--HG--
extra : moz-landing-system : lando
2020-02-03 14:38:47 +00:00
Robert Mader 829aab8587 Bug 1474281 - Remove unneeded debug print. r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D48102

--HG--
extra : moz-landing-system : lando
2020-01-31 17:17:49 +00:00
Andrew Osmond 8370ff7b34 Bug 1611193 - Allow WebRender on late beta/release for recent Windows 10 builds and NVIDIA drivers. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D61373

--HG--
extra : moz-landing-system : lando
2020-01-31 16:18:15 +00:00
sotaro 602ffd4254 Bug 1612256 - Change VRManagerChild::ShutDown() similar to CompositorBridgeChild::ShutDown() r=nical
Differential Revision: https://phabricator.services.mozilla.com/D61263

--HG--
extra : moz-landing-system : lando
2020-01-31 08:20:56 +00:00
Jamie Nicol e0d0ac8af5 Bug 1610952 - Ensure webrender's async scroll offsets are in correct coordinate space. r=botond
For zoomable APZCs, we were correctly dividing the scroll offset by
the pinch zoom scale. This is effectively equal to multiplying by the
device pixel ratio then dividing by the zoom, converting the offset
from parent layer space to layout device space.

However, for non-zoomable APZCs, we were incorrectly assuming that the
pinch zoom scale equalled 1.0. This was causing us to send incorrectly
scaled async scroll offsets to webrender, resulting in content moving
too slowly or quickly whilst asynchronously panning, then suddenly
jumping as the synchronous scroll offset caught up.

This is fixed by ensuring we always divide the asynchronous scroll
offset by the pinch zoom scale, regardless of whether the APZC is
zoomable or not.

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

--HG--
extra : moz-landing-system : lando
2020-01-31 08:52:11 +00:00
Dorel Luca 983a71b2a4 Backed out changeset 9dc9deb3ba3b (bug 1611660) for Reftest failure in layout/reftests/bugs/605138-1.html == layout/reftests/bugs/605138-1-ref.html 2020-01-31 01:44:08 +02:00
Andrew Osmond ff69c48b54 Backed out changset b371f612cd60 (Bug 1604535) for performance regressions.
Differential Revision: https://phabricator.services.mozilla.com/D61298

--HG--
extra : moz-landing-system : lando
2020-01-30 13:11:08 +00:00
Kousuke Takaki 04bba6950f Bug 1602088 - Move nsIScrollableFrame::ScrollUnit to namespace scope. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D61140

--HG--
extra : source : 69fded25adc2ac25e302b49c1128f8926e1311a3
2020-01-30 09:13:19 +00:00
Andrew Osmond de9131c720 Bug 1612207 - SourceSurfaceCapture::IsValid should validate any underlying surfaces. r=jrmuizel
SourceSurfaceCapture can contain an underlying surface instead of a set
of drawing commands. The surface has its own valid state, and must be
checked by the parent in SourceSurfaceCapture::IsValid. If we don't,
then we may end up failing silently while drawing, and images will go
missing. The underlying surface can be invalidated by a device reset if
it is a SourceSurfaceD2D1, as an example.

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

--HG--
extra : moz-landing-system : lando
2020-01-30 12:24:25 +00:00
Cosmin Sabou 5a3d320cd0 Backed out changeset 69fded25adc2 (bug 1602088) for causing several box-shadow reftest failures.
CLOSED TREE
2020-01-30 13:23:10 +02:00
Greg V 2befd54d63 Bug 1484812 - Use SwapBuffersWithDamage on EGL platforms (Wayland/Android) r=jnicol,mstange,jgilbert
EGL_KHR_swap_buffers_with_damage (or EGL_EXT_swap_buffers_with_damage)
is an EGL extension that allows the application to inform the display
server (system compositor) which areas of the window have changed.

This commit implements support for that extension in the layers compositor.
The layers compositor always renders the whole frame, so we're only getting
the benefit of not redrawing unchanged areas *in the system compositor*,
not actually doing partial invalidation/compositing,
but that makes the implementation simpler (no need to track buffer age).

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

--HG--
extra : moz-landing-system : lando
2020-01-30 10:46:54 +00:00
Botond Ballo f62b4f716b Bug 1611660 - Accept layout viewport updates from the main thread right away. r=tnikkel
Previously, we would wait until the following frame (for uncertain reasons
that date back to B2G), but this meant the layout and visual viewports would
be out of sync for a frame, causing APZ to misbehave.

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

--HG--
extra : moz-landing-system : lando
2020-01-30 10:48:34 +00:00
Glenn Watson 05a7f239ed Bug 1606251 - Fix invalidation for elements with inflation factors. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D61261

--HG--
extra : moz-landing-system : lando
2020-01-30 09:44:45 +00:00
Kousuke Takaki 9681569b70 Bug 1602088 - Move nsIScrollableFrame::ScrollUnit to namespace scope. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D61140

--HG--
extra : moz-landing-system : lando
2020-01-30 09:13:19 +00:00
Bert Peers 2143f0959d Bug 1605508 - Write new on-boarding document with rendering overview
Some updates and clarifications after Glenn's All Hands 2020 overview
talk.

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

--HG--
extra : moz-landing-system : lando
2020-01-30 08:51:03 +00:00
Nicolas Silva 2a19b8ea5d Bug 1611948 - Rename ClipScrollTree into SpatialTree. r=gw
There is nothing clipping related in there anymore.

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

--HG--
rename : gfx/wr/webrender/src/clip_scroll_tree.rs => gfx/wr/webrender/src/spatial_tree.rs
extra : moz-landing-system : lando
2020-01-29 10:43:20 +00:00
Bert Peers 123e2ce473 Bug 1605283 - Improve support for invalidation debugging and testing r=nataliaCs
Differential Revision: https://phabricator.services.mozilla.com/D61207

--HG--
extra : moz-landing-system : lando
2020-01-29 05:21:52 +00:00
sotaro 45e4405493 Bug 1611743 - Handle IDCompositionSurface::BeginDraw() error r=nical
Differential Revision: https://phabricator.services.mozilla.com/D61101

--HG--
extra : moz-landing-system : lando
2020-01-28 15:22:23 +00:00
Bert Peers 05e00eed63 Bug 1605283 - Improve support for invalidation debugging and testing r=gw a=reland CLOSED TREE
Third iteration:

Fix broken scrolling (and incorrect positioning of quad tree lines) by
serializing the SpaceMapper(-transform) from take_context, and using it
to transform the primitive rects (instead of the previous translation
based on unclipped.origin);
Note: this is done at visualization time and not at export time to
distinguish actually moving elements from merely-scrolling ones.

Serialize the entire UpdateList, so we get the data (Keys) that's being
added; add it to the overview;

Move the static CSS code into tilecache_base.css; add this and the .js
file to the binary, write them as part of output (instead of manual
copy); clean up CSS a bit;

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

--HG--
extra : source : 535ae1d4818a3f0af64d61846035135751352bd1
extra : histedit_source : bf9a8f830ec7db4c2d1fcb6deaaf72949d6b69ed
2020-01-28 20:05:38 +00:00
Csoregi Natalia 25b1fb82cf Backed out changeset 535ae1d4818a (bug 1605283) for cargo related bustage. CLOSED TREE 2020-01-28 22:56:27 +02:00
Bert Peers cd0e366e52 Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Third iteration:

Fix broken scrolling (and incorrect positioning of quad tree lines) by
serializing the SpaceMapper(-transform) from take_context, and using it
to transform the primitive rects (instead of the previous translation
based on unclipped.origin);
Note: this is done at visualization time and not at export time to
distinguish actually moving elements from merely-scrolling ones.

Serialize the entire UpdateList, so we get the data (Keys) that's being
added; add it to the overview;

Move the static CSS code into tilecache_base.css; add this and the .js
file to the binary, write them as part of output (instead of manual
copy); clean up CSS a bit;

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

--HG--
extra : moz-landing-system : lando
2020-01-28 20:05:38 +00:00
sotaro 9fbc3e628e Bug 1605777 - Clear WrappingTextureSourceYCbCrBasic::mTexture correctly r=nical
Differential Revision: https://phabricator.services.mozilla.com/D60639

--HG--
extra : moz-landing-system : lando
2020-01-23 11:11:46 +00:00
Miko Mynttinen 99dc805fb4 Bug 1558926 - Part 5: Store a reference to cached display item data in DisplayItemRef
Differential Revision: https://phabricator.services.mozilla.com/D60761

--HG--
extra : moz-landing-system : lando
2020-01-27 14:19:50 +00:00
Miko Mynttinen f2d9974935 Bug 1558926 - Part 4: Avoid display list updates for removed pipelines
Differential Revision: https://phabricator.services.mozilla.com/D60760

--HG--
extra : moz-landing-system : lando
2020-01-27 14:19:17 +00:00
Miko Mynttinen d889583615 Bug 1558926 - Part 3: Add support for additional WebRender display list data
Differential Revision: https://phabricator.services.mozilla.com/D60759

--HG--
extra : moz-landing-system : lando
2020-01-27 14:18:49 +00:00
Miko Mynttinen fba2799f7a Bug 1558926 - Part 2: Use DisplayItemCache in WebRenderCommandBuilder
Differential Revision: https://phabricator.services.mozilla.com/D60756

--HG--
extra : moz-landing-system : lando
2020-01-27 14:18:17 +00:00
Miko Mynttinen 5c231763e7 Bug 1558926 - Part 1: Add data structures and pref for display item caching r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D50221

--HG--
extra : moz-landing-system : lando
2020-01-27 14:17:43 +00:00
Jonathan Kew 4a6c3ec3f6 Bug 1611610 - Don't increase glyph advance for synthetic bold if the glyph is zero-width. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D61065

--HG--
extra : moz-landing-system : lando
2020-01-25 15:43:45 +00:00
Jonathan Kew f360407017 Bug 1611589 - Fix precedence of font-feature-settings vs disabling of ligatures due to letter-spacing. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D61060

--HG--
extra : moz-landing-system : lando
2020-01-25 12:18:00 +00:00
Hiroyuki Ikezoe 677e8ea65a Bug 1594451 - Apply `fixed margin offset` for position sticky layers/nodes depending on where it's stuck to. r=botond
We currenly only support the dynamic toolbar at bottom, so we apply the
`fixed margin offset` only if the sticky element is stuck at the bottom
of the root scroll container.

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

--HG--
extra : moz-landing-system : lando
2020-01-25 11:00:08 +00:00
Hiroyuki Ikezoe 5d9fe8f9ea Bug 1594451 - Propagate sticky position info to HitTestingNode. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D60065

--HG--
extra : moz-landing-system : lando
2020-01-25 10:25:16 +00:00
Botond Ballo 7ce6d46176 Bug 1611523 - Use the current layers id to simplify IsFixedToRootContent(). r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D61016

--HG--
extra : moz-landing-system : lando
2020-01-25 00:23:44 +00:00
Botond Ballo a20a5d30fe Bug 1611523 - Track the current layers id during the layer tree traversal in AsyncCompositionManager::ApplyAsyncContentTransformToTree(). r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D61015

--HG--
extra : moz-landing-system : lando
2020-01-25 00:23:34 +00:00
Jim Blandy c86b4ea822 Bug 1571974: Implement Debug for render_target::LineDecorationJob. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D60924

--HG--
extra : moz-landing-system : lando
2020-01-24 15:42:04 +00:00
David Major 307e4dcb5b Bug 1611476 - Silence a rule-of-three warning in nsRect r=botond
nsRect's special member functions are pretty vanilla aside from the MOZ_COUNT_{C,D}TORs, so the copy assignment doesn't need to do anything unusual, but let's state so explicitly to please the compiler.

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

--HG--
extra : moz-landing-system : lando
2020-01-24 18:58:23 +00:00
Brindusan Cristian 5ca7181fab Backed out 5 changesets (bug 1558926) for WebRender build bustages. CLOSED TREE
Backed out changeset 974bcab6b1bf (bug 1558926)
Backed out changeset 1865e6d29dcf (bug 1558926)
Backed out changeset 92b415dac733 (bug 1558926)
Backed out changeset 30481c41873a (bug 1558926)
Backed out changeset a4d9a1af297a (bug 1558926)
2020-01-24 20:42:16 +02:00
Miko Mynttinen c210c95ca3 Bug 1558926 - Part 5: Store a reference to cached display item data in DisplayItemRef
Depends on D60760

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

--HG--
extra : moz-landing-system : lando
2020-01-22 22:19:49 +00:00
Miko Mynttinen 64997c1922 Bug 1558926 - Part 4: Avoid display list updates for removed pipelines
Depends on D60759

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

--HG--
extra : moz-landing-system : lando
2020-01-22 22:19:08 +00:00
Miko Mynttinen b16cae3e0b Bug 1558926 - Part 3: Add support for additional WebRender display list data
Depends on D60756

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

--HG--
extra : moz-landing-system : lando
2020-01-22 22:43:59 +00:00
Miko Mynttinen 7a53d2c64c Bug 1558926 - Part 2: Use DisplayItemCache in WebRenderCommandBuilder
Depends on D50221

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

--HG--
extra : moz-landing-system : lando
2020-01-22 22:41:06 +00:00
Miko Mynttinen e9f5497f95 Bug 1558926 - Part 1: Add data structures and pref for display item caching r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D50221

--HG--
extra : moz-landing-system : lando
2020-01-22 22:17:18 +00:00
Dzmitry Malyshau be7fae486d Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky
Adds support for bind groups and compute pipelines
The end goal of this PR is to run the compute example.

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

--HG--
extra : moz-landing-system : lando
2020-01-24 16:27:09 +00:00
Noemi Erli 835cec6cf9 Backed out changeset 136b3044f6a6 (bug 1609175) for causing build bustages in WebGPUChild.cpp CLOSED TREE 2020-01-24 17:20:31 +02:00
Dzmitry Malyshau 73eff15f2c Bug 1609175 - WebGPU bind groups and compute pipelines r=jgilbert,webidl,smaug,bzbarsky
Adds support for bind groups and compute pipelines
The end goal of this PR is to run the compute example.

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

--HG--
extra : moz-landing-system : lando
2020-01-24 05:05:34 +00:00
Bert Peers 6ac6d71555 Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Second part: trace the updates that are sent to the DataStore, and save
at least the Insert/Remove and ItemUID as part of the wr-capture.
(We could expand this with more info, eg. the actual Keys, later).

TileView then reads them back and generates a color coded report to
overlay with the page view.  This helps to see the types and amounts of
interned primitives that lead to cache invalidations.

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

--HG--
extra : moz-landing-system : lando
2020-01-24 07:26:32 +00:00
Glenn Watson a688008906 Bug 1611331 - Tidy up rect field naming in picture cache code. r=Bert
Differential Revision: https://phabricator.services.mozilla.com/D60921

--HG--
extra : moz-landing-system : lando
2020-01-24 03:24:35 +00:00
sotaro 56b30bd8c4 Bug 1602643 - Disable WebRender compositor dinamically for async screenshot r=gw
Differential Revision: https://phabricator.services.mozilla.com/D59658

--HG--
extra : moz-landing-system : lando
2020-01-23 23:52:05 +00:00
Andreea Pavel f0fa29abdf Backed out changeset 77d7f22c81c4 (bug 1605283) for wrench build bustages on a CLOSED TREE 2020-01-24 01:19:22 +02:00
Nicolas Silva ea36628e1e Bug 1611176 - Avoid expensive memmoves when adding render tasks. r=gw
On pages with many render tasks (typically a lot of text shadows), we spend a lot of time moving RenderTask which is a fairly large struct into the render graph's buffer. This patch avoids it by using the VecHelper trick of allocaitng space before initializing the value. Some RenderTask::new_* methods which take the render task graph in parameter were modified to add the task and return the task ID to work around borrow-checking restriction.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 19:26:13 +00:00
Bert Peers 2d5981811a Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Second part: trace the updates that are sent to the DataStore, and save
at least the Insert/Remove and ItemUID as part of the wr-capture.
(We could expand this with more info, eg. the actual Keys, later).

TileView then reads them back and generates a color coded report to
overlay with the page view.  This helps to see the types and amounts of
interned primitives that lead to cache invalidations.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 22:20:47 +00:00
Nicolas Silva cca4fcdf86 Bug 1606771 - Add a reftest. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D59901

--HG--
extra : moz-landing-system : lando
2020-01-23 14:20:27 +00:00
Nicolas Silva 0f0223fc9b Bug 1606771 - Fix border image repetition computation. r=gw
The computation of the repetition depends on the aspect ratio of the segment's uv rectangle, which was previously represented by the dx/dy variables in the shader. These were mistakenly computing the ratio of the normalized uvs within the primitive's total uv rect, which was incorrect since the normalization introduces a non-uniform scale.
This patch fixes it by taking the uv size in device pixels instead of the the normalized textel rect. dx and dy are also renamed into segment_uv_size which is a more informative name.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 14:24:57 +00:00
Nicolas Silva 512f63684e Bug 1606771 - Fix the middle area of border-image nine-patches. r=gw
Unlike the border areas that only nead their own dimensions, the middle area of a border-image determines its repetition parameter based on the size of the borders. A new flag is provided for the brush_image shader to know whether to use the segment's own rect or look at the borders when computing the pattern's size.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 14:26:32 +00:00
Nicolas Silva 725d18b7cb Bug 1606771 - Implement border-image-repeat: round in WebRender. r=jrmuizel,kvark
border-image-repeat: Round is equivalent to Repeat with the pattern size adjusted to fill the area with a whole number of repetitions. This is done by adjusting the segment's stretch_size in the shader so that it fits a whole number of times in the segment's size.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 14:24:11 +00:00
Nicolas Silva 7c24851526 Bug 1608156 - Fix border-image-repeat: repeat in WebRender. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D59356

--HG--
extra : moz-landing-system : lando
2020-01-23 14:24:11 +00:00
Mihai Alexandru Michis d8a8849254 Backed out changeset f3b490c076d6 (bug 1602643) for causing bustages regarding CompositorKindChanged
CLOSED TREE
2020-01-23 16:27:33 +02:00
sotaro 7afb826ef9 Bug 1602643 - Disable WebRender compositor dinamically for async screenshot r=gw
Differential Revision: https://phabricator.services.mozilla.com/D59658

--HG--
extra : moz-landing-system : lando
2020-01-23 04:37:28 +00:00
Bob Owen 60b9eebd75 Bug 1604800 Part 2: Remove DataSourceSurfaceRecording from DrawTargetRecording. r=jrmuizel
This is done by using CreateDataSourceSurfaceWithStrideFromData to create a
DataSourceSurface and then OptimizeSourceSurface to record and optimize that.
This means that we now only have SourceSurfaceRecording using SurfaceType
RECORDING. We then rely on this to improve the test in OptimizeSourceSurface to
check that a SourceSurfaceRecording is for its recorder.

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

--HG--
extra : moz-landing-system : lando
2020-01-22 21:23:08 +00:00
Bob Owen 78557e5083 Bug 1604800 Part 1: Add a new WRAP_AND_RECORD SurfaceType for SourceSurfaceWrapAndRecord. r=jrmuizel
This is to avoid type confusion with SourceSurfaceRecording.

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

--HG--
extra : moz-landing-system : lando
2020-01-22 21:21:08 +00:00
Daniel Varga c9be72d45a Backed out changeset 7ed018d13880 (bug 1605283) for causing build bustage with could not compile `webrender` error.
CLOSED TREE
2020-01-23 08:46:54 +02:00
Bert Peers 66117dbb5f Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Second part: trace the updates that are sent to the DataStore, and save
at least the Insert/Remove and ItemUID as part of the wr-capture.
(We could expand this with more info, eg. the actual Keys, later).

TileView then reads them back and generates a color coded report to
overlay with the page view.  This helps to see the types and amounts of
interned primitives that lead to cache invalidations.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 06:22:26 +00:00
Jeff Gilbert 7760c4fddf Bug 1608235 - [ANGLE] Validate `context` before use. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D60790

--HG--
extra : moz-landing-system : lando
2020-01-23 02:59:17 +00:00
Ciure Andrei 6ee379ce4c Backed out changeset 2e04c320ad23 (bug 1605283) for causing build bustages CLOSED TREE 2020-01-23 04:28:44 +02:00
Bert Peers 583661abdb Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Second part: trace the updates that are sent to the DataStore, and save
at least the Insert/Remove and ItemUID as part of the wr-capture.
(We could expand this with more info, eg. the actual Keys, later).

TileView then reads them back and generates a color coded report to
overlay with the page view.  This helps to see the types and amounts of
interned primitives that lead to cache invalidations.

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

--HG--
extra : moz-landing-system : lando
2020-01-23 00:12:13 +00:00
Jeff Muizelaar cce8fe4d25 Bug 1610949 - Only use WS_EX_NOREDIRECTIONBITMAP when using DirectComposition. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D60744

--HG--
extra : moz-landing-system : lando
2020-01-22 21:23:35 +00:00
Boris Chiou 98e40ec294 Bug 1592822 - Replace StyleVecU8 with ipc::ByteBuf. r=emilio
We generate ByteBuf by rust bindgen, so we can drop StyleVecU8.
One potential follow-up is that we can merge this together with WrVecU8.

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

--HG--
rename : ipc/glue/ByteBuf.h => ipc/glue/ByteBufUtils.h
extra : moz-landing-system : lando
2020-01-22 20:18:40 +00:00
Boris Chiou ffa1ebad7b Bug 1592822 - Use Serde for OffsetRotate and PositionOrAuto. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D60088

--HG--
extra : moz-landing-system : lando
2020-01-22 20:18:38 +00:00
Boris Chiou 14387265a7 Bug 1592822 - Use Serde for SVGOffsetPath. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D60087

--HG--
extra : moz-landing-system : lando
2020-01-22 20:18:35 +00:00
Boris Chiou 38cc52c091 Bug 1592822 - Use Serde for Transform. r=emilio
Though this may make us use more space when serializing
StyleTransform, but we don't have to do extra conversion on the compostior
side, and this makes us easier to maintain the Rust type.

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

--HG--
extra : moz-landing-system : lando
2020-01-22 20:20:38 +00:00
Boris Chiou 7b90a66fcb Bug 1592822 - Use Serde for rotate, scale, and translate properties. r=emilio
The only drawback is: we resolve LengthPercentage value before passing
translate property through IPC, so its percentage part is redundant.
However, this makes us easier to maintain the Rust type.

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

--HG--
extra : moz-landing-system : lando
2020-01-22 20:18:31 +00:00
Boris Chiou f3dc7fa3c7 Bug 1592822 - Use macro for the implementation of ParamTraits<> on types which support Serde. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D60610

--HG--
extra : moz-landing-system : lando
2020-01-22 20:18:24 +00:00
Glenn Watson e449f34a4a Bug 1610738 - Add primitive flag to specify a compositor surface is preferred r=sotaro
This allows calling code to specify whether a primitive would prefer
to be promoted to a compositor surface and/or picture cache slice.

This is a performance hint that can be used for large external
primitives, such as videos and canvas elements.

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

--HG--
extra : moz-landing-system : lando
2020-01-22 08:31:19 +00:00
Bogdan Tara 958c34b738 Backed out 6 changesets (bug 1592822) for bustages complaining about layout/painting/nsDisplayList.cpp CLOSED TREE
Backed out changeset 90d0f2ebd310 (bug 1592822)
Backed out changeset 9890bad86a0e (bug 1592822)
Backed out changeset 43870cc90433 (bug 1592822)
Backed out changeset d80e0e3f5b87 (bug 1592822)
Backed out changeset 99be49183325 (bug 1592822)
Backed out changeset 9ce641556acc (bug 1592822)

--HG--
extra : histedit_source : fa4e4b2c899510f1d39ee3baa0374e2ce16d2815
2020-01-22 21:17:39 +02:00
Boris Chiou 4f3076794c Bug 1592822 - Replace StyleVecU8 with ipc::ByteBuf. r=emilio
We generate ByteBuf by rust bindgen, so we can drop StyleVecU8.
One potential follow-up is that we can merge this together with WrVecU8.

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

--HG--
rename : ipc/glue/ByteBuf.h => ipc/glue/ByteBufUtils.h
extra : moz-landing-system : lando
2020-01-22 18:42:54 +00:00
Boris Chiou e10013895e Bug 1592822 - Use Serde for OffsetRotate and PositionOrAuto. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D60088

--HG--
extra : moz-landing-system : lando
2020-01-22 18:40:19 +00:00
Boris Chiou 40f3cb3d65 Bug 1592822 - Use Serde for SVGOffsetPath. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D60087

--HG--
extra : moz-landing-system : lando
2020-01-22 18:40:11 +00:00
Boris Chiou 9735c2e972 Bug 1592822 - Use Serde for Transform. r=emilio
Though this may make us use more space when serializing
StyleTransform, but we don't have to do extra conversion on the compostior
side, and this makes us easier to maintain the Rust type.

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

--HG--
extra : moz-landing-system : lando
2020-01-22 18:40:09 +00:00
Boris Chiou 73f0ae66a9 Bug 1592822 - Use Serde for rotate, scale, and translate properties. r=emilio
The only drawback is: we resolve LengthPercentage value before passing
translate property through IPC, so its percentage part is redundant.
However, this makes us easier to maintain the Rust type.

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

--HG--
extra : moz-landing-system : lando
2020-01-22 18:40:07 +00:00
Boris Chiou c3faeb70ea Bug 1592822 - Use macro for the implementation of ParamTraits<> on types which support Serde. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D60610

--HG--
extra : moz-landing-system : lando
2020-01-22 18:40:05 +00:00
Aaron Klotz 9847ab1f71 Bug 1610878: Remove using namespace mozilla::java directive from AndroidAPZ.cpp; r=botond
Differential Revision: https://phabricator.services.mozilla.com/D60709

--HG--
extra : moz-landing-system : lando
2020-01-22 17:45:13 +00:00
Andrew Osmond c4d61e7193 Bug 1610814 - Fix NEON compile error with gcc and RGB unpacking. r=lsalzman
This patch makes us use the correct intrinsic for loading a uint8x16
register. It is not entirely clear why clang accepts this without
complaint but beyond the types, it should be equivalent.

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

--HG--
extra : moz-landing-system : lando
2020-01-22 15:19:20 +00:00
Andrew Osmond 0b6c7eca9d Bug 1604535 - Disable OMTP on 32-bit systems due to memory pressure. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D60058

--HG--
extra : moz-landing-system : lando
2020-01-22 13:46:59 +00:00
Dzmitry Malyshau df4fc33667 Bug 1596128 - WebGPU compute passes r=jgilbert,webidl,bzbarsky
Update third party dependencies
WebGPU command encoder creation
WebGPU CommandBuffer creation and submission
WebGPU Compute pass recording

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

--HG--
rename : gfx/wgpu/wgpu-core/src/device.rs => gfx/wgpu/wgpu-core/src/device/mod.rs
extra : moz-landing-system : lando
2020-01-22 07:31:51 +00:00
Glenn Watson 90a55d388c Bug 1608741 - Part 2 - Disable dithering on gradient primitives. r=sotaro,nical
There are a number of issues with the current gradient dithering
implementation, that cause many test failures and also fuzziness
rendering when enabling DirectComposition virtual surfaces. In
particular, the dither result is dependent on the offset of the
update rect within a render target.

For now, this patch disables gradient dithering by default. This
gives us:

 - A heap of new test PASS results (or reduced fuzziness).
 - Fixes a number of non-deterministic fuzziness bugs with DC.
 - Improves performance of gradient rendering by a reasonable amount.

We can fix gradient dithering as a follow up, and re-enable if/when
we find content that would benefit from it significantly (we may
be able to improve gradients in other ways than dithering too).

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

--HG--
extra : moz-landing-system : lando
2020-01-22 01:24:14 +00:00
Glenn Watson 4c7cd7138b Bug 1610626 - Fix wrench reftest mode incorrectly printing unexpected in some cases. r=Bert
The semantics of the inaccuracy reftest mode are that the overall
test succeeds as long as one of the multiple test images mismatches
the reference image.

However, the previous implementation would print an unexpected result
if any of the comparisons were equal (even though the overall test
result would be reported correctly).

This patch changes wrench so that it only reports an unexpected
failure for the overall test, not each individual reference.

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

--HG--
extra : moz-landing-system : lando
2020-01-22 02:22:42 +00:00
Jonathan Kew 4cd64f80ed Bug 1608100 - Distinguish (in console log messages) between failure to start font download at all vs download that fails. r=heycam
Differential Revision: https://phabricator.services.mozilla.com/D59328

--HG--
extra : moz-landing-system : lando
2020-01-21 08:40:12 +00:00
Sylvestre Ledru 187e9bafaf Bug 1519636 - Automatically reformat recent changes using clang-format r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2020-01-21 09:51:27 +00:00
Makoto Kato a94e918a29 Bug 1574307 - Part 1. Parse viewport-fit in meta element. r=smaug
For safe area insets (cutout) support, CSS Round Display Level 1 (https://drafts.csswg.org/css-round-display/#viewport-fit-descriptor) has new viewport value as `viewport-fit`.

To support safe area insets that is notch on display, CSS Environment Variables Module Level 1 (https://drafts.csswg.org/css-env-1/#safe-area-insets) adds `safearea-insets-*` (left, top, right and bottom). Also, `meta` element has `viewport-fit` enum value. (ex `<meta name="viewport" content="viewport-fit=cover>`) whether web browser window cover notch area.

`viewport-fit` has 3 enum value, `auto`, `cover` and `contain`.  GeckoView wants to expose this value to browser application such Fenix. Because Android API (https://developer.android.com/guide/topics/display-cutout) uses window root layout (It is set by Application) to cover notch on display.

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

--HG--
extra : moz-landing-system : lando
2020-01-20 08:40:05 +00:00
Eric Rahm cfd1cc461f Bug 1610388 - Remove nsAutoPtr usage from gfx/. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D60456

--HG--
extra : moz-landing-system : lando
2020-01-21 01:25:28 +00:00
Glenn Watson db33b7ce39 Bug 1608741 - Part 1 - Use nearest neighbor interpolation for DC surfaces. r=sotaro
There's no need for bilinear interpolation of DC surfaces. This
fixes a lot of the fuzziness issues when using virtual surfaces,
so it makes sense to land it now while continuing to investigate
the remaining issues.

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

--HG--
extra : moz-landing-system : lando
2020-01-20 09:51:20 +00:00
Nicolas Silva b44b6af7d4 Bug 1607836 - Preallocate picture task dependency vectors. r=gw
Unlike other types of render tasks, pictures can have hundreds of dependencies. The dependency vector is re-built every frame, leading to a lot of vector re-allocations in some pages.

Depends on D60151

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

--HG--
extra : moz-landing-system : lando
2020-01-19 19:32:11 +00:00
Nicolas Silva 3a99301ecf Bug 1607836 - use SmallVec for render task dependencies. r=gw
The majority of render tasks have 0, 1 or 2 dependencies, except for pictures that typically have dozens to hundreds of dependencies. SmallVec with 2 inline elements avoids many tiny heap allocations in pages with a lot of text shadows and other types of render tasks.

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

--HG--
extra : moz-landing-system : lando
2020-01-16 21:18:32 +00:00
Emilio Cobos Álvarez 256c124f94 Bug 1609996 - Reorder some includes affected by the previous patches. r=froydnj
This was done by:

This was done by applying:

```
diff --git a/python/mozbuild/mozbuild/code-analysis/mach_commands.py b/python/mozbuild/mozbuild/code-analysis/mach_commands.py
index 789affde7bbf..fe33c4c7d4d1 100644
--- a/python/mozbuild/mozbuild/code-analysis/mach_commands.py
+++ b/python/mozbuild/mozbuild/code-analysis/mach_commands.py
@@ -2007,7 +2007,7 @@ class StaticAnalysis(MachCommandBase):
         from subprocess import Popen, PIPE, check_output, CalledProcessError

         diff_process = Popen(self._get_clang_format_diff_command(commit), stdout=PIPE)
-        args = [sys.executable, clang_format_diff, "-p1", "-binary=%s" % clang_format]
+        args = [sys.executable, clang_format_diff, "-p1", "-binary=%s" % clang_format, '-sort-includes']

         if not output_file:
             args.append("-i")
```

Then running `./mach clang-format -c <commit-hash>`

Then undoing that patch.

Then running check_spidermonkey_style.py --fixup

Then running `./mach clang-format`

I had to fix four things:

 * I needed to move <utility> back down in GuardObjects.h because I was hitting
   obscure problems with our system include wrappers like this:

0:03.94 /usr/include/stdlib.h:550:14: error: exception specification in declaration does not match previous declaration
0:03.94 extern void *realloc (void *__ptr, size_t __size)
0:03.94              ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/malloc_decls.h:53:1: note: previous declaration is here
0:03.94 MALLOC_DECL(realloc, void*, void*, size_t)
0:03.94 ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/mozilla/mozalloc.h:22:32: note: expanded from macro 'MALLOC_DECL'
0:03.94     MOZ_MEMORY_API return_type name##_impl(__VA_ARGS__);
0:03.94                                ^
0:03.94 <scratch space>:178:1: note: expanded from here
0:03.94 realloc_impl
0:03.94 ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/mozmemory_wrap.h:142:41: note: expanded from macro 'realloc_impl'
0:03.94 #define realloc_impl mozmem_malloc_impl(realloc)

   Which I really didn't feel like digging into.

 * I had to restore the order of TrustOverrideUtils.h and related files in nss
   because the .inc files depend on TrustOverrideUtils.h being included earlier.

 * I had to add a missing include to RollingNumber.h

 * Also had to partially restore include order in JsepSessionImpl.cpp to avoid
   some -WError issues due to some static inline functions being defined in a
   header but not used in the rest of the compilation unit.

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

--HG--
extra : moz-landing-system : lando
2020-01-20 16:19:48 +00:00
Emilio Cobos Álvarez aa3a695712 Bug 1609996 - Remove mozilla/Move.h. r=froydnj
rg -l 'mozilla/Move.h' | xargs sed -i 's/#include "mozilla\/Move.h"/#include <utility>/g'

Further manual fixups and cleanups to the include order incoming.

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

--HG--
extra : moz-landing-system : lando
2020-01-20 16:18:20 +00:00
Emilio Cobos Álvarez 5cd5e6f148 Bug 1609996 - Remove mozilla::Swap in favor of std::swap. r=froydnj
Now mfbt/Move.h is empty except for that excellent comment about move
semantics... Should we put it somewhere else and delete the header as a
follow-up? Or just delete the header and carry on?

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

--HG--
extra : moz-landing-system : lando
2020-01-20 16:17:06 +00:00
Glenn Watson 9354b07e60 Bug 1609913 - Fix memory leak of native compositor surfaces. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D60379

--HG--
extra : moz-landing-system : lando
2020-01-19 22:14:58 +00:00
Jamie Nicol 8d2ae82a39 Bug 1609002 - Attach fixed-position elements to the layout viewport in webrender. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D60292

--HG--
extra : moz-landing-system : lando
2020-01-18 01:10:45 +00:00
Glenn Watson 3bf8ad7884 Bug 1609805 - Support a new reftest kind, for verifying rasterizer accuracy. r=nical,Bert
This patch introduces a new reftest (syntax ** or !* in reftest files).

This type of test renders a single input file multiple times, at a range
of different picture cache tile sizes. It then verifies that each of the
images matches (or doesn't).

This can be used to verify rasterizer accuracy when drawing primitives
with different tile sizes and/or dirty rect update strategies.

One of the included tests in this patch fails the accuracy test - the
intent is to fix this inaccuracy in a follow up patch and then be able to
mark it pixel exact.

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

--HG--
extra : moz-landing-system : lando
2020-01-19 19:45:37 +00:00
Nazım Can Altınova d8afe0647a Bug 1609708 - Rename PROFILER_TRACING to PROFILER_TRACING_MARKER. r=gerald
Depends on D60229

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

--HG--
extra : moz-landing-system : lando
2020-01-17 21:29:15 +00:00
Sylvestre Ledru cc2040bf21 Bug 1605934 - Use nested namespaces r=sg
Done with:
./mach static-analysis check --checks="-*, modernize-concat-nested-namespaces" --fix .
and then clang-format on the files

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

--HG--
extra : moz-landing-system : lando
2020-01-18 13:48:34 +00:00
Dorel Luca 506e65bcab Backed out changeset bbb39655cf71 (bug 1605934) for build bustage in widget/gtk/mozwayland/mozwayland.c 2020-01-18 15:39:55 +02:00
Sylvestre Ledru 6689a37527 Bug 1605934 - Use nested namespaces r=sg
Done with:
./mach static-analysis check --checks="-*, modernize-concat-nested-namespaces" --fix .
and then clang-format on the files

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

--HG--
extra : moz-landing-system : lando
2020-01-18 13:16:39 +00:00
Bert Peers 242db56cbf Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Optionally serialize N frames into a circular memory buffer, and save
them as part of wr-capture into tilecache/.

The new tile_view utility reads the folder and converts the frames to
svg for easier visualization, with a few extra features:
- color code each primitive based on which slice it is on;
- highlight new or moving primitives in red (brute force diff);
- print all invalidated tiles at the top and the invalidation reason;
- overlay the tile quadtree to visualize splitting & merging;
- HTML and JS wrappers for animation playback, timeline scrubbing;

Positioning of the tiles on the screen is a bit broken still; especially
during scrolling and "special" pages (like about:config).

Interning info is not used yet.

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

--HG--
extra : moz-landing-system : lando
2020-01-18 08:22:51 +00:00
Cosmin Sabou c28a24abaf Backed out changeset f36e74d8c86c (bug 1604535) for causing windows 7 reftest failures. 2020-01-17 23:09:11 +02:00
Zibi Braniecki 4fb4f2f900 Bug 1609585 - Migrate all possible uses from AppLocalesAsLangTag(s) to AppLocale(s)AsBCP47. r=marionette-reviewers,jfkthame,whimboo
Differential Revision: https://phabricator.services.mozilla.com/D60096

--HG--
extra : moz-landing-system : lando
2020-01-17 19:29:09 +00:00
Ciure Andrei df04a415d6 Backed out changeset 05c1456103ea (bug 1605283) for webrender bustages CLOSED TREE 2020-01-17 20:55:02 +02:00
Bert Peers 52377ec04a Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Optionally serialize N frames into a circular memory buffer, and save
them as part of wr-capture into tilecache/.

The new tile_view utility reads the folder and converts the frames to
svg for easier visualization, with a few extra features:
- color code each primitive based on which slice it is on;
- highlight new or moving primitives in red (brute force diff);
- print all invalidated tiles at the top and the invalidation reason;
- overlay the tile quadtree to visualize splitting & merging;
- HTML and JS wrappers for animation playback, timeline scrubbing;

Positioning of the tiles on the screen is a bit broken still; especially
during scrolling and "special" pages (like about:config).

Interning info is not used yet.

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

--HG--
extra : moz-landing-system : lando
2020-01-17 18:41:50 +00:00
Andrew Osmond f9c361fe7e Bug 1604535 - Disable OMTP on 32-bit systems due to memory pressure. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D60058

--HG--
extra : moz-landing-system : lando
2020-01-17 15:00:44 +00:00
sotaro 927d964708 Bug 1609598 - Fix stride in RendererRecordedFrame::GetSourceSurface() r=nical
Differential Revision: https://phabricator.services.mozilla.com/D60225

--HG--
extra : moz-landing-system : lando
2020-01-17 09:31:43 +00:00
Csoregi Natalia d55e0a5916 Backed out changeset 53cce741bb46 (bug 1605283) for bustage related to cargo-lock. CLOSED TREE 2020-01-17 02:42:35 +02:00
Bert Peers b6fdcb621c Bug 1605283 - Improve support for invalidation debugging and testing r=gw
Optionally serialize N frames into a circular memory buffer, and save
them as part of wr-capture into tilecache/.

The new tile_view utility reads the folder and converts the frames to
svg for easier visualization, with a few extra features:
- color code each primitive based on which slice it is on;
- highlight new or moving primitives in red (brute force diff);
- print all invalidated tiles at the top and the invalidation reason;
- overlay the tile quadtree to visualize splitting & merging;
- HTML and JS wrappers for animation playback, timeline scrubbing;

Positioning of the tiles on the screen is a bit broken still; especially
during scrolling and "special" pages (like about:config).

Interning info is not used yet.

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

--HG--
extra : moz-landing-system : lando
2020-01-17 00:21:17 +00:00
Edwin Takahashi 9f3cc061e7 Bug 1608582 - tighten reftest annotation, part 3 r=jmaher
Changes:

Tighten reftest pixel differences now that reftest has been migrated fully over to ubuntu1804.

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

--HG--
extra : moz-landing-system : lando
2020-01-11 12:32:52 +00:00
Bob Owen 76aff2ff48 Bug 1604180: Use original surface for GetDataSurface after DrawTargetRecording::OptimizeSourceSurface. r=jrmuizel
We return a SourceSurfaceRecdording from OptimizeSourceSurface to represent
the optimized surface. However, GetDataSurface might be called on this
SourceSurfaceRecdording, so we hold the original SourceSurface we optimized in
the SourceSurfaceRecdording to return its GetDataSurface.

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

--HG--
extra : moz-landing-system : lando
2020-01-16 15:53:08 +00:00
pbz 70e1dba79e Bug 1432856 - Extended focus methods in Window.webidl, Client.webidl and Element.webidl to pass CallerType. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D55811

--HG--
extra : moz-landing-system : lando
2020-01-16 14:38:40 +00:00
Andrew Osmond a1dc5db0b8 Bug 1609268 - Make WebRender debug prefs apply live without the GPU process. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D60055

--HG--
extra : moz-landing-system : lando
2020-01-15 20:22:29 +00:00
Sawyer Bergeron 83a4d63f1b Bug 1605755 Add touch acceleration r=botond
Adds exponential acceleration to touchpad pan events to improve percieved scrolling responsiveness

Platforms affected: Linux, any using PANDELTA_PAGE

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

--HG--
extra : moz-landing-system : lando
2020-01-15 17:48:41 +00:00
Jeff Muizelaar 3ccd0cbeca Bug 1593574. Create an opaque surface for fallback when possible. r=mattwoodrow
This moves the opaqueness calculation out of if (blob) condition and
changes how we calculate the size of the fallback surface depending
on whether we have a compltely opaque snapped item or now.

This change allows scrollbars to marked as opaque on Windows which reduces the
GPU utilization in the DWM with DirectComposite on from 21% to 17% at 1080p and
29% to 24% at 4k

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

--HG--
extra : moz-landing-system : lando
2020-01-14 19:37:42 +00:00
Dzmitry Malyshau 69b270f2c6 Bug 1605171 - Replace wrupdater with github-sync r=tomprince
this is an evolution of wrupdater

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

--HG--
extra : moz-landing-system : lando
2020-01-14 18:37:28 +00:00
Dzmitry Malyshau 86ec958d3b Bug 1609136 - Fix cs_border_solid attribute names r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D59876

--HG--
extra : moz-landing-system : lando
2020-01-14 17:54:56 +00:00
Nicolas Silva 40e5306b23 Bug 1609049 - Add required fileds in peek-poke Cargo.toml. r=jrmuizel
Depends on D59840

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

--HG--
extra : moz-landing-system : lando
2020-01-14 13:07:28 +00:00
Nicolas Silva 33d2c54400 Bug 1609049 - WebRender version bump. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D59840

--HG--
extra : moz-landing-system : lando
2020-01-14 13:07:05 +00:00
Martin Stransky 8df4dc66e5 Bug 1608800 [Wayland] Implement DMABUF modifiers, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D59677

--HG--
extra : moz-landing-system : lando
2020-01-14 13:13:51 +00:00
Botond Ballo a5c84444c5 Bug 1608506 - Split helper_basic_double_tap_zoom.html out into its own test group which only runs on mobile. r=hiro
This test needs mobile viewport sizing because we gate double tap zooming on that.

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

--HG--
extra : moz-landing-system : lando
2020-01-14 00:22:55 +00:00
Botond Ballo 8691f729dc Bug 1608506 - Avoid using mobile viewport sizing in test_group_zoom-2.html. r=hiro
Note, in helper_bug1280013.html, since we are now zooming to 2x, the quantities
specified in CSS pixels need to be scaled down by 2x accordingly, to maintain
the relative positions of the elements and gestures on the screen.

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

--HG--
extra : moz-landing-system : lando
2020-01-14 00:22:47 +00:00
Botond Ballo d788b28e62 Bug 1608506 - Avoid using mobile viewport sizing in test_group_touchevents-4.html. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D59588

--HG--
extra : moz-landing-system : lando
2020-01-14 00:22:43 +00:00
Botond Ballo 5d070f7e85 Bug 1608506 - Use nsIDOMWindowUtils.setResolutionAndScaleTo() rather than initial-scale to zoom in most APZ mochitests. r=hiro
The exception is the tests in test_group_minimum_scale_size.html, which are
specifically testing mobile viewport sizing behaviour.

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

--HG--
extra : moz-landing-system : lando
2020-01-14 00:22:30 +00:00
Botond Ballo 8ef8a5826a Bug 1608506 - Only force dom.meta-viewport.enabled=true for APZ subtests that actually need it. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D59586

--HG--
extra : moz-landing-system : lando
2020-01-14 00:22:20 +00:00
Andreea Pavel 0028348eab Merge mozilla-central to autoland on a CLOSED TREE 2020-01-13 23:49:50 +02:00
Andreea Pavel 9716decf81 Backed out changeset 7295ca89e880 (bug 1608280) for causing bug 1608912 and bug 1608871 a=backout 2020-01-13 22:40:49 +02:00
Glenn Watson 9e45d74b95 Bug 1608280 - Support a per-tile clip (valid) region for compositor tiles r=nical
Differential Revision: https://phabricator.services.mozilla.com/D59437

--HG--
extra : moz-landing-system : lando
2020-01-13 02:51:32 +00:00
Martin Stransky 508b813eb7 Bug 1608379 [Wayland] Don't use LOCAL_GL_TEXTURE_EXTERNAL on Wayland, r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D59480

--HG--
extra : moz-landing-system : lando
2020-01-11 17:50:20 +00:00
Jeff Muizelaar b0f0989ac5 Bug 1608131 - Remove unused native drawing filtering flags. r=aosmond
GOOD and LINEAR are basically the same and neither of them
is NEAREST.

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

--HG--
extra : moz-landing-system : lando
2020-01-09 15:40:25 +00:00
Andrew Osmond 3a7b9515de Bug 1600472 - Disable allowing sacrificing subpixel anti-aliasing for small screens. r=jrmuizel
This patch only allows sacrificing subpixel anti-aliasing when the
screen size is larger than WUXGA, and when the force disable pref is not
set. In the future, we may also add disable this for high end GPUs.

This also consolidates the WebRender debug flags to use the same
signaling infrastructure to avoid needing to store the debug flag state
and check on each transaction. Instead it now applies the debug flag
updates when the gfxVar changes.

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

--HG--
extra : moz-landing-system : lando
2020-01-10 16:57:55 +00:00
Chris Martin 795cf400a0 Bug 1604412 - Give CompositorWidgetChild more window info r=sotaro
CompositorWidgetChild is about to be responsible for creating,
destroying, and presenting a shared buffer that CompositorWidgetParent
will draw into. To do this, it will need the window handle,
transparency mode changes, window size changes, and window size mode
changes.

Its creation is also about to become fallible, so it needs a separate
initialization routine.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 18:37:38 +00:00
Nicolas Silva 82cd051b29 Bug 1607697 - Address servo-tidy complaint.
Differential Revision: https://phabricator.services.mozilla.com/D59482

--HG--
extra : moz-landing-system : lando
2020-01-10 10:59:46 +00:00
Nicolas Silva b86fbf8144 Bug 1607697 - Miscellaneous clippy lint fixes. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59118

--HG--
extra : moz-landing-system : lando
2020-01-10 10:12:53 +00:00
Nicolas Silva 7a338ae4f3 Bug 1607697 - Box the memory reports in enums. r=Gankro
Clippy warns against it being much larger than the other enum variants.

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

--HG--
extra : moz-landing-system : lando
2020-01-10 10:12:41 +00:00
Nicolas Silva dae942943d Bug 1607697 - Pass-by-value clippy lints for some small structures. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59116

--HG--
extra : moz-landing-system : lando
2020-01-10 10:12:33 +00:00
Nicolas Silva 9a61098486 Bug 1607697 - Address clippy lints about nested branches. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59115

--HG--
extra : moz-landing-system : lando
2020-01-10 10:12:16 +00:00
Nicolas Silva a5e19cec49 Bug 1607697 - Address unwrap_or_else(callback) and functions in callback clippy lints. r=Gankro
I don't think it makes much of a difference but clippy is quite vocal about it.

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

--HG--
extra : moz-landing-system : lando
2020-01-10 10:12:08 +00:00
Nicolas Silva 8dffbee87f Bug 1607697 - Allow excessive precision in debug color constants. r=Gankro
Addresses a clippy lint.

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

--HG--
extra : moz-landing-system : lando
2020-01-10 10:11:56 +00:00
Nicolas Silva b80f316e1c Bug 1607697 - Remove leading zeros in dither matrix litterals. r=Gankro
Addresses a clippy lint.

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

--HG--
extra : moz-landing-system : lando
2020-01-10 10:11:43 +00:00
Nicolas Silva fd305ea9ca Bug 1607697 - Address some clippy lints in WebRender API. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59101

--HG--
extra : moz-landing-system : lando
2020-01-10 10:11:36 +00:00
Jamie Nicol 188f4eae4e Bug 1581868 - Make webrender schedule a frame immediately on resume. r=sotaro
On webrender on android, parent-process pages (eg about:support) were not being
rendered immediately after minimising then resuming the app, resulting in a
black screen. The problem was that webrender believed the previous frame was
still valid, and therefore that it did not need to render a new
one. Content-process pages were unnaffected because we clear cached resources
when the app is minimised, so we accidentally rendered a new frame on
resumption.

To fix this we always force a new frame to be rendered immediately on
resumption. This uncovers a race condition which causes us to sometimes render
frames at the wrong size when the window size has changed (for example when
showing or hiding the keyboard), so that is also fixed.

This also fixes a bug affecting fenix, where when opening a page in a new tab
the portion of the screen where the keyboard used to be would remain black until
the page had loaded. This no longer occurs because we force a composite as soon
as the keyboard is hidden.

Additionally, this patch reverts the original attempt at fixing this
bug, as it is not necessary.

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

--HG--
extra : moz-landing-system : lando
2020-01-10 02:01:30 +00:00
Jonathan Kew 13eb9e858a Bug 1608124 - Skip hidden macOS font families in FontList::FindFamily, except when resolving system fonts. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D59358

--HG--
extra : moz-landing-system : lando
2020-01-10 08:58:47 +00:00
Narcis Beleuzu 1e5d31d0d9 Backed out changeset aea131093cd1 (bug 1608124) for assertion failures on StaticPrefList_gfx.h. CLOSED TREE 2020-01-10 03:19:43 +02:00
Jonathan Kew 976c9365de Bug 1608124 - Skip hidden macOS font families in FontList::FindFamily, except when resolving system fonts. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D59358

--HG--
extra : moz-landing-system : lando
2020-01-09 19:11:10 +00:00
Sylvestre Ledru c521758c5e Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2020-01-09 21:50:11 +00:00
Connor Brewster 865f8216ac Bug 1607746 - Part 2: Clean up passing filter mode to shader r=nical
I removed the old opacity filter path in the brush_blend shader and cleaned up the filter mode
constants in the shader so there are less magic numbers. This should help if/when we move more
filters to their own shaders.

Depends on D59610

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

--HG--
extra : moz-landing-system : lando
2020-01-13 16:05:59 +00:00
Eric Rahm 78ee6675cf Bug 1606187 - Part 2b: Update users of nsClassHashtable to handle UniquePtr differences r=KrisWright,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D59042

--HG--
extra : moz-landing-system : lando
2020-01-13 19:18:56 +00:00
Connor Brewster b4a3943712 Bug 1607746 - Part 1: Move opacity to its own shader in WebRender r=nical
Opacity is a common effect that is used and the opacit filter path is also used when a stacking
context has an opacity of < 1. The brush_blend shader is slow since it has support for a large
portion of CSS filters; however, opacity is used much more often than the rest of the filters.
This patch adds a simple shader for opacity effects which bypasses the extra overhead in the
brush_blend shader.

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

--HG--
extra : moz-landing-system : lando
2020-01-13 16:05:57 +00:00
Martin Stransky eb7719a2f0 Bug 1608380 [Wayland] Provide dmabuf config for texture and webgl backends, r=sotaro
We need to provide separated dmabuf configurations for WebGL and Texture backends
as we want to enable dmabuf for WebGL only right now.

Depends on D59487

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

--HG--
extra : moz-landing-system : lando
2020-01-13 13:30:26 +00:00
Jonathan Kew aeebaadaae Bug 1606305 - Don't forget to record the location of newline and tab characters when creating a textrun for a zero-size font. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D59608

--HG--
extra : moz-landing-system : lando
2020-01-13 12:03:56 +00:00
Chris Martin cebb0d2c6c Bug 1604412 - Clarify purpose of PlatformCompositorWidgetDelegate r=sotaro
PlatformCompositorWidgetDelegate was meant to be a pure virtual base
class for all the functions that nsWindow could call that would
either go to an in-process compositor widget or an OMTC widget.

By that definition, it does not seem like CompositorWidgetParent should
be a subclass, since nsWindow cannot directly call its methods and
currently CompositorWidgetParent has several "do nothing"
implementations of the interface methods because they don't really
belong.

This changeset remedies this by refactoring CompositorWidgetParent so
it is no longer an implementor of PlatformCompositorWidgetDelegate. Now
the only implementors are CompositorWidgetChild and InProcessWin-
CompositorWidget, which makes sense because they are both directly
called through the nsWindow delegate.

It also eliminates some of the methods that seem like they don't belong
in PlatformCompositorWidgetDelegate.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 18:36:30 +00:00
Mihai Alexandru Michis 05d3819e43 Backed out changeset ec0e9a72aebb (bug 1600472) for causing bustages in WebRenderBridgeParent.cpp
CLOSED TREE
2020-01-09 18:06:13 +02:00
shravanrn@gmail.com c723d9bc1f Bug 1606981 - Fix crash in IO redirection in wasm sandbox libs r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D58680

--HG--
extra : moz-landing-system : lando
2020-01-09 15:41:27 +00:00
Andrew Osmond 3b234b153a Bug 1600472 - Disable allowing sacrificing subpixel anti-aliasing for small screens. r=jrmuizel
This patch only allows sacrificing subpixel anti-aliasing when the
screen size is larger than WUXGA, and when the force disable pref is not
set. In the future, we may also add disable this for high end GPUs.

This also consolidates the WebRender debug flags to use the same
signaling infrastructure to avoid needing to store the debug flag state
and check on each transaction. Instead it now applies the debug flag
updates when the gfxVar changes.

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

--HG--
extra : moz-landing-system : lando
2020-01-09 15:23:38 +00:00
Jonathan Kew 1a33263ff8 Bug 1607672 - Improve font fallback for Dingbats block on macOS. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D59312

--HG--
extra : moz-landing-system : lando
2020-01-09 12:53:15 +00:00
Boris Chiou 30dd733fce Bug 1591629 - Rename mozilla::MotionPathData as mozilla::ResolvedMotionPathData. r=hiro
To avoid the ambiguous name because we also have layers::MotionPathData.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 09:02:38 +00:00
Boris Chiou 74964a38a3 Bug 1591629 - Split TransformData into 2 parts - transform data and motion path data. r=hiro
So we don't need to create motion path data if there is no offset-path style
and no animations of offset-path.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 09:02:36 +00:00
Boris Chiou 5d817ca9a4 Bug 1591629 - Keep TransformData only in the first element when passing animation data through IPC. r=hiro
The benefits are:
1. For the rest `layers::Animation`s, their `TransformData` are `Nothing()`,
   so we can avoid any posisible copy.
2. In the compositor, we move `TransformData` out of the array, and use
   `UniquePtr` to avoid including AnimationHelper.h into AnimationInfo.h,
   which causes some compilation errors because LayersMessages.h is not
   visible in AnimationInfo.h.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 09:02:28 +00:00
Botond Ballo cc40daadb6 Bug 1607764 - Protect all accesses to Axis::mVelocity with the APZC lock. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D59252

--HG--
extra : moz-landing-system : lando
2020-01-09 01:42:05 +00:00
Emilio Cobos Álvarez f04a2f9e31 Bug 1607846 - Cleanup a bit usage of MustPaintOnContentSide(). r=jrmuizel
This is a pre-requisite cleanup, as the FrameLayerBuilder code ends up calling
this unconditionally, and thus the assertion on the other patch can end up
failing. Hopefully it's dead code, though, so no big deal.

Tweak the WebRender code to avoid two virtual calls in the common path, too.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 23:30:44 +00:00
Jeff Gilbert f26e4d546b Bug 1477756 - Fix non-webgl CI tests. r=handyman
* Revert some partial webgl+oop+vr code.
* More missing FuncScope.
* Fix compile errors.
* Refactor some ifdef'd code to branch and compile on all platforms.
* -Wno-error=unused-result for GCC to allow for (void)MustUse().

Depends on D55739

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

--HG--
extra : moz-landing-system : lando
2020-01-08 22:19:26 +00:00
Jeff Gilbert 0dfd1a2a0d Bug 1477756 - Fix all webgl regression tests according to CI. r=handyman
(This is a combination of 31 commits)

* Fix Linux compilation.

* Fix mac compilation.

* CI compile fixes.

* printf's size_t is %zu. %tu would be unsigned ptrdiff_t.

* No non-ref Maybe args.

* MOZ_CRASH for noreturn

* Handle implied texture sizes, rewrite comment stripping.

* Replace e.g. WebGLProgramInner with simpler webgl::ProgramKeepAlive.

* Bounce ValidateProgram call off driver.

* Uniform name length limit, cubemap fb-attach, non-array uniforms, undersized texImage views.

* alignas for uint8_t[sizeof(float)*N] pun buffers.

* CC fixes?

* Fill attrib0Active.

* Repair max-warnings limit.

* This is basically required in order for CI's logging to not explode.

* Don't cache WebGLMemoryTracker.

* Deleted prog/shader error, no texSubImage(null), client-side fingerprint resist for exts.

* Fix GetUniformIndices and MakeRangeFromView.

* CC Traverse base class from within derived class to fix leaking the world. :(

* PauseTransformFeedback
* TexImage video fastpath
* GetFragLocation for arrays
* Forbid BindBufferRange during TF

* Mark tests and fix RBAB query and test.

* Change(!) query deletion behavior to match spec.
* Mark conformance2/query/query.html failing for now.

* Implicitly EndQuery on DeleteQuery while spec is in flux.

* Fix error code for test.

* RAII LruPosition for WebGL context limit.

* Include std::list.

* Mark CompileResult and LinkResult.pending as false when retrieved.

* Hold strong-ref to NotLostData during Run<> to prevent LoseContext=>UAF.

* Don't assume GetUniformLocation(foo+'[0]') means foo is an array.
* Don't assume !mCanvasElement means !!mOffscreenCanvas.

* Handle composition while context-lost.

* All non-value-init members must be const or have inline init.

* Mark passing tests on Linux.

Depends on D54019

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

--HG--
extra : moz-landing-system : lando
2020-01-08 22:19:23 +00:00
Jeff Gilbert e1d0fe64bb Bug 1477756 - Client-side bindings mirror for precise CC, and merge similar codepaths. r=handyman
* Context loss using RAII
* Move Program reflection Client-side

Depends on D54018

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

--HG--
extra : moz-landing-system : lando
2020-01-08 22:19:16 +00:00
David Parks 198fa063c2 Bug 1477756 - Initial out-of-process WebGL implementation. r=mccr8,handyman
Splits WebGLContext into ClientWebGLContext and HostWebGLContext.  The Client enables the JS-control of a WebGL context in a content procecss while the Host executes the WebGL graphics operations (via a WebGLContext that maintains much of the existing code) in the compositor process.  At this point, the cross-process behavior is disabled -- this series of patches is an incremental step toward that final goal.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 22:19:14 +00:00
Bert Peers 0989fa49f0 Bug 1595708 - Cargo build timings SVG output Freezes the entire browser with WebRender r=jrmuizel
Allow two independent pools of worker threads, one
for each SceneBuilder thread. Thus long running
low-priority SVG work should no longer block UI
hit-testing from running.

Previous code tried to force a yield by using
priority and affinity, to keep the constraint of
"8 worker threads at most".  Net perf is a loss,
the code is not cross platform, and we already
have many processes/threads/pools co-existing. So
this patch removes the constraint.

Talos shows a mix of mostly gains and some losses,
link in this comment:
https://bugzilla.mozilla.org/show_bug.cgi?id=1595708#c13
This trade-off seems worth a try in exchange for
better UI latency.
(the big Win32 gain is repairing an earlier loss)

Bug 1602907 - obsoleted
Bug 1604570 - this patch
Bug 1602905 - this patch

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

--HG--
extra : moz-landing-system : lando
2020-01-08 18:32:58 +00:00
Markus Stange c65601d463 Bug 1606608 - Fix mTotalPixelCount bug and do some cleanup. r=gw
This fixes RenderCompositorOGL::DestroySurface to update mTotalPixelCount as needed when there are still tiles in the surface that's getting removed.

I'm also adding a few asserts and performing some minor cleanup.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 16:30:18 +00:00
Dorel Luca 156007d527 Backed out 8 changesets (bug 1607697) for Build bustages. CLOSED TREE
Backed out changeset a3942fa2644c (bug 1607697)
Backed out changeset 6bf3305bb689 (bug 1607697)
Backed out changeset 3af5a9700d47 (bug 1607697)
Backed out changeset 6101f5e31e46 (bug 1607697)
Backed out changeset d70cc2bb33f6 (bug 1607697)
Backed out changeset 8490fa04e0ee (bug 1607697)
Backed out changeset 6c1778a36720 (bug 1607697)
Backed out changeset 9e830c9157ae (bug 1607697)
2020-01-08 18:04:19 +02:00
Nicolas Silva 9e26acd416 Bug 1607697 - Miscellaneous clippy lint fixes. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59118

--HG--
extra : moz-landing-system : lando
2020-01-08 15:41:42 +00:00
Nicolas Silva bfa259e505 Bug 1607697 - Box the memory reports in enums. r=Gankro
Clippy warns against it being much larger than the other enum variants.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 15:41:24 +00:00
Nicolas Silva 00a1d72d5c Bug 1607697 - Pass-by-value clippy lints for some small structures. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59116

--HG--
extra : moz-landing-system : lando
2020-01-08 15:41:12 +00:00
Nicolas Silva e78fd8f034 Bug 1607697 - Address clippy lints about nested branches. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D59115

--HG--
extra : moz-landing-system : lando
2020-01-08 15:40:57 +00:00
Nicolas Silva 889e5a96f2 Bug 1607697 - Address unwrap_or_else(callback) and functions in callback clippy lints. r=Gankro
I don't think it makes much of a difference but clippy is quite vocal about it.

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

--HG--
extra : moz-landing-system : lando
2020-01-08 15:40:47 +00:00