Commit Graph

35955 Commits

Author SHA1 Message Date
Mike Shal
ad0c283ab2 Bug 1611326 - Default to py3_action, and add a py2 attribute to GENERATED_FILES; r=firefox-build-system-reviewers,rstewart
GENERATED_FILES now defaults to python3 unless py2=True is specified as
an argument. All existing GENERATED_FILES scripts and GeneratedFile
templates have the py2=True attribute added, so this patch should
effectively be a no-op.

Going forward, individual scripts can be converted to python3 and their
corresponding py2=True attribute can be deleted. In effect, this patch
will be backed out in pieces until all scripts run in python3, at which
point the py2 attribute itself can be removed.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 23:07:04 +00:00
Brindusan Cristian
e2fb6b8344 Backed out changeset 7fefed11f117 (bug 1611326) for build bustages at update-1.xpi.stub. CLOSED TREE 2020-02-13 23:33:34 +02:00
Brindusan Cristian
73ca873fdb Backed out changeset 3a8a36e50541 (bug 1555356) for reftest failures at pattern-big-image.html. CLOSED TREE 2020-02-13 23:16:11 +02:00
Andrew Osmond
6e53ff1703 Bug 1529260 - Match shader and CPU glyph rasterization logic for glyphs in local space. r=lsalzman
This patch makes the CPU side incorporate the raster scale when
calculating the subpixel position of a glyph. It also makes the shader
side not include the glyph scale factor when recalculating the glyph
position (since it was not known/used when determining the subpixel
position in the first place). This makes the subpixel position stable
when we transition between Screen and Local(raster_scale) spaces.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 20:40:11 +00:00
Mike Shal
e6464dd404 Bug 1611326 - Default to py3_action, and add a py2 attribute to GENERATED_FILES; r=firefox-build-system-reviewers,rstewart
GENERATED_FILES now defaults to python3 unless py2=True is specified as
an argument. All existing GENERATED_FILES scripts and GeneratedFile
templates have the py2=True attribute added, so this patch should
effectively be a no-op.

Going forward, individual scripts can be converted to python3 and their
corresponding py2=True attribute can be deleted. In effect, this patch
will be backed out in pieces until all scripts run in python3, at which
point the py2 attribute itself can be removed.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 20:31:50 +00:00
Glenn Watson
bc6823edf8 Bug 1579235 - Part 2 - Refactor some of the tile map handling code. r=nical,Bert
Simplify some of the logic related to handling multiple
compositor surfaces in future, specifically:

* Only rebuild the tiles map when the tile rect changes.
* Remove need for tiles_to_draw array.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 18:08:16 +00:00
Alexis Beingessner
33d729a0f1 Bug 1555356 - Make images inside of SVGs active. r=aosmond
This is done using a similar approach to CreateWebRenderCommands
but slightly modified. In particular the active layer check needs
to be done before we're ready to CreateWebRenderCommands, but once
we decide to activate an item, we can't let CreateWebRenderCommands
fail. Unfortunately, the need to query ImageLib for support means
we need to do basically ~all of the work of CreateWebRenderCommands
to do this check.

As such, this introduces a modified version of CreateWebRenderCommands
that SVGGeometryFrames implement with a "dry run" flag. When true,
it runs the same code but stops short of mutating the WR DL/state.

ImageLib may be encouraged to do some extra work that could be thrown
away, but I'm not sure there's any way to avoid that.

For now, only SVGImageFrame actually provides an implementation. The
bulk of the implementation is handling the on-by-default
preserveAspectRatio feature of SVG images. It was cleaner to just
reimplement that logic than reuse the existing preserveAspectRatio
code, as it was too tangled up in the particulars of how the PaintSVG
path is designed.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 18:39:27 +00:00
Andrew Osmond
9d0dcc23af Bug 1614376 - Part 1. Add support for an allowlist to GfxInfo. r=jrmuizel
The blocklist currently works by checking the current configuration
against a set of GfxDriverInfo rules. We stop searching as soon as we
find the first match, and return whatever status code that has.

This patch adds a second pass for features marked for allowing. The
current blocklisting rules will still apply as normal. However it will
then review the allowlist rules using the same logic. If we don't get
a match, then we block the feature otherwise we use the allow status
code given in the rule.

New status codes introduced as part of this patch are as follows:

DENIED - Did not match any rules on the allowlist.

ALLOW_ALWAYS - Same as STATUS_OK but passed the allowlist.

ALLOW_QUALIFIED - Same as ALLOW_ALWAYS but should be controlled by
our qualified preference for experimentation purposes.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 16:06:41 +00:00
Simon Giesecke
b50347f917 Bug 1611415 - Prefer using std::move over forget. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980

--HG--
extra : moz-landing-system : lando
2020-02-13 14:38:48 +00:00
Markus Stange
ac0687ac8b Back out bug 1592739 due to multiple regressions (bug 1599366, bug 1601183, bug 1602193). a=backout
Differential Revision: https://phabricator.services.mozilla.com/D62753

--HG--
extra : moz-landing-system : lando
2020-02-13 14:26:51 +00:00
Masatoshi Kimura
aedbf36959 Bug 1614814 - Stop using fopen in ipc/chromium/src/base/process_util.h on Windows. r=gsvelto
Differential Revision: https://phabricator.services.mozilla.com/D62507

--HG--
extra : moz-landing-system : lando
2020-02-13 12:35:40 +00:00
Csoregi Natalia
743b1f8b4b Backed out 3 changesets (bug 1614376) for assertion failures on GfxInfoBase.cpp. CLOSED TREE
Backed out changeset b239f4b49722 (bug 1614376)
Backed out changeset c5ac550f4966 (bug 1614376)
Backed out changeset e11c62eba5f1 (bug 1614376)
2020-02-13 14:35:26 +02:00
Andrew Osmond
7ae72bfac0 Bug 1614376 - Part 1. Add support for an allowlist to GfxInfo. r=jrmuizel
The blocklist currently works by checking the current configuration
against a set of GfxDriverInfo rules. We stop searching as soon as we
find the first match, and return whatever status code that has.

This patch adds a second pass for features marked for allowing. The
current blocklisting rules will still apply as normal. However it will
then review the allowlist rules using the same logic. If we don't get
a match, then we block the feature otherwise we use the allow status
code given in the rule.

New status codes introduced as part of this patch are as follows:

DENIED - Did not match any rules on the allowlist.

ALLOW_ALWAYS - Same as STATUS_OK but passed the allowlist.

ALLOW_QUALIFIED - Same as ALLOW_ALWAYS but should be controlled by
our qualified preference for experimentation purposes.

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

--HG--
extra : moz-landing-system : lando
2020-02-11 22:55:50 +00:00
Glenn Watson
27c1daea33 Bug 1579235 - Part 1 - Support prefer compositor flag in wrench. r=nical
Add support to the yaml reader and writer to be able to specify
that a primitive should set the PREFER_COMPOSITOR_SURFACE flag.

This flag is not currently used, but in future will signal the
picture caching code to promote a primitive to draw on a native
compositor surface where possible.

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

--HG--
extra : moz-landing-system : lando
2020-02-13 10:12:41 +00:00
Martin Stransky
0c0169aabe Bug 1613364 [Wayland] Update gfx code to derived WaylandDMABufSurfaceRGBA class, r=sotaro
WaylandDMABufSurface/WaylandDMABufSurfaceRGBA uses textures interface instead of EGLImages so we need
to update gfx code accordingly:

- rename CreateEGLImage() -> CreateTexture()
- rename ReleaseEGLImage() -> ReleaseTextures()
- rename GetGLTexture() -> GetTexture()
- rename WaylandDMABufSurface::CreateDMABufSurface() to WaylandDMABufSurfaceRGBA::CreateDMABufSurface()

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

--HG--
extra : moz-landing-system : lando
2020-02-12 22:35:02 +00:00
Martin Stransky
5cef4a77a7 Bug 1613364 [Wayland] Update WaylandDMABUFTextureHostOGL and WaylandDMABUFTextureClientOGL to work with NV12 format, r=sotaro
- Update WaylandDMABUFTextureClientOGL to work with WaylandDMABufSurfaceRGBA which is used for GL/WebRender compositor
  with dmabuf texture backend.
- Update WaylandDMABUFTextureHostOGL to work with both RGBA and NV12 surface formats.
- Use GLTextureSource instead of EGLImageTextureSource as we need to store more than one texture there with NV12
  and pass the textures there by CreateTextureSourceForPlane().
- Implement NV12 related function by WaylandDMABUFTextureHostOGL (color space, color range, sub-textures num).
- Add NV12 implementation to PushResourceUpdates()/PushDisplayItems() for WebRender.

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

--HG--
extra : moz-landing-system : lando
2020-02-12 22:34:59 +00:00
Martin Stransky
d0648020ef Bug 1613364 [Wayland] Update RenderWaylandDMABUFTextureHostOGL to work with NV12 texture format, r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D62003

--HG--
extra : moz-landing-system : lando
2020-02-12 22:34:42 +00:00
Martin Stransky
66d3858441 Bug 1613364 [Wayland] Update SurfaceDescriptorDMABuf to export YUV surfaces, r=sotaro
We need to export more planes in SurfaceDescriptorDMABuf and also YUV color space.

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

--HG--
extra : moz-landing-system : lando
2020-02-12 22:34:20 +00:00
Jonathan Kew
74210dcbe1 Bug 1614600 - Avoid instantiating an FT_Face for each font just to read properties during font-list initialization. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D62441

--HG--
extra : moz-landing-system : lando
2020-02-12 18:34:33 +00:00
Tim Nguyen
d0a5c12f8e Bug 1614890 - Implement conic-gradient for WebRender graphics backend. r=gw,nical,emilio
Differential Revision: https://phabricator.services.mozilla.com/D61599

--HG--
extra : moz-landing-system : lando
2020-02-12 18:08:32 +00:00
shindli
91aa0518dd Backed out changeset 0c982bc69cb3 (bug 1611415) for causing build bustages in /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCOMPtr CLOSED TREE 2020-02-12 20:13:29 +02:00
Simon Giesecke
f604a47fa5 Bug 1611415 - Applied FixItHints from mozilla-non-std-move. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980

--HG--
extra : moz-landing-system : lando
2020-02-12 17:24:41 +00:00
Mihai Alexandru Michis
2edd3953d8 Backed out changeset 8f55490fb539 (bug 1614890) for causing awsy failures. 2020-02-12 16:40:22 +02:00
Tim Nguyen
91f7b5200e 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 10:21:51 +00:00
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