Commit Graph

32955 Commits

Author SHA1 Message Date
Imanol Fernandez
a3e06efc18 Bug 1537899 - Add neck model capability for VRPose position. r=kip
Add neck model capability for VRPose position.

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

--HG--
extra : moz-landing-system : lando
2019-03-21 19:38:18 +00:00
Miko Mynttinen
b9ba790058 Bug 1534805 - Unify FrameLayerBuilder and WR display list iterators r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D23230

--HG--
extra : moz-landing-system : lando
2019-03-21 03:15:16 +00:00
Jonathan Kew
d925caee91 Bug 1537587 - Add Noto fonts for more languages to Android version of GetCommonFallbackFonts. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D24292

--HG--
extra : moz-landing-system : lando
2019-03-21 04:41:30 +00:00
Cameron McCormack
c1e712e277 Bug 282126 - Part 1: Allow getting zero glyph width from nsFontMetrics without falling back to average glyph width. r=jfkthame
While we're here, fix the measurement of ' ' and 'x' so that we don't
measure the .notdef glyph if those glyphs aren't present.

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

--HG--
extra : moz-landing-system : lando
2019-03-21 04:50:41 +00:00
Boris Zbarsky
9c586db495 Bug 1535384 part 12. Remove MOZ_CAN_RUN_SCRIPT_BOUNDARY from FrameRequestCallback. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D23783

--HG--
extra : moz-landing-system : lando
2019-03-19 16:02:12 +00:00
Glenn Watson
8452fc14bc Bug 1536732 - Add experimental pixel-local-storage render path to WR r=kvark
Add an experimental code path that makes use of the pixel local
storage extension available on many mobile GPUs.

This code path is currently disabled by default, as the support
is not complete for all primitives and blend modes. The initial
aim is to get feature parity with the existing renderer.

Once that's complete, we can take advantage of the (minimum)
12 bytes per pixel of high speed on-tile memory to store custom
data.

Clip masks are a good use case for this, since they map 1:1 with
the position of the fragment they are clipping. Using this for
clip masks allows us to handle clipping on mobile GPUs in a much
more efficient way - we can skip (a) separate render targets,
(b) target resolve (c) sample the mask texture during rendering.

Depends on D24123

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

--HG--
extra : moz-landing-system : lando
2019-03-21 02:59:04 +00:00
Barret Rennie
36cd17958e Bug 1444434 - Bump webrender and webrender_bindings gleam dependency to 0.6.14 r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D23958

--HG--
extra : moz-landing-system : lando
2019-03-20 19:52:53 +00:00
sotaro
4649e87987 Bug 1532929 - Use SharedGL on android r=nical
RenderCompositorEGL is also used on wayland, but SharedGL is not enabled on wayalnd. Since SharedGL caused flickering, when multiple windows were opened on wayland.

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

--HG--
extra : moz-landing-system : lando
2019-03-20 11:51:33 +00:00
sotaro
830d52b3e8 Bug 1536002 - Add SharedGL check in RenderCompositorANGLE::Create() r=nical
Differential Revision: https://phabricator.services.mozilla.com/D23824

--HG--
extra : moz-landing-system : lando
2019-03-20 11:52:26 +00:00
Barret Rennie
d1cbdf8699 Bug 1536466 - Fix nsTDependentString with non-null-terminated buffer assertion r=bholley
`gecko_profiler_add_text_marker` was being passed a character pointer and a
length to construct a `nsDependentCString`. However, these values were coming
from a Rust `&str`, which is not null-terminated, causing an debug assertion to
be hit (and possible memory safety issues if mishandle the string). We now
construct an `nsDependentCSubstring` instead.

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

--HG--
extra : moz-landing-system : lando
2019-03-19 23:51:22 +00:00
Dzmitry Malyshau
7afa68dc61 Bug 1536085 - Update plane-split to 0.13.8 r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D24095

--HG--
extra : moz-landing-system : lando
2019-03-19 21:00:08 +00:00
Emilio Cobos Álvarez
0a3856aa9c Bug 1516780 - Optimize restyles when a font is loaded. r=heycam
Depends on D20729

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

--HG--
extra : moz-landing-system : lando
2019-03-19 21:10:41 +00:00
Glenn Watson
9d856b1091 Bug 1535976 - Add a fast path for common rounded rect clips to WR. r=kvark
Most rounded rect clips in real content are (a) axis aligned and
(b) have uniform radii.

When these conditions are met, we can run a fast path for clip
mask generation that uses significantly fewer ALU shader ops.

This is not typically a bottleneck on desktop GPUs, but can have
a large performance impact on mobile GPUs (and perhaps low end
integrated GPUs).

The Mali shader analyzer reports the slow path for the rounded
rect clip shader to be 94 cycles per fragment, while the fast
path is 10 cycles.

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

--HG--
extra : moz-landing-system : lando
2019-03-19 19:48:13 +00:00
Bobby Holley
c492c0fe0f Bug 1535745 - Eliminate gfx.webrender.program-binary. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D23731

--HG--
extra : moz-landing-system : lando
2019-03-16 00:31:38 +00:00
Kearwood "Kip" Gilbert
55278c6768 Bug 1532375 - Implement Matrix4x4Double and QuaternionDouble r=lsalzman
The upcoming WebXR API (Bug 1419190) requires intermediate calculations of real-world space coordinates to have more precision with larger ranges. I expect that double precision matrix and quaternions will also be useful in other graphics and layout work.

It would not be ideal to expand the existing classes to always use double precision, as it would incur a significant performance penalty on certain platforms (eg, Arm). The double-precision variants should be used only when required.

The existing gfx::Matrix4x4 and gfx::Quaternion implementation can be extended with templates to generate both single and double precision variants.

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

--HG--
extra : moz-landing-system : lando
2019-03-19 17:19:47 +00:00
Kartikaya Gupta
e4a8c5322d Bug 1469897 - Add a complex pointer-events hit-testing test. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D23910

--HG--
extra : moz-landing-system : lando
2019-03-18 23:05:59 +00:00
Jeff Muizelaar
215442f5e9 Bug 1536242. Enable WebRender on AMD Cayman (Northern Islands) chips. r=kats
We haven't seen any AMD related bugs on Nightly so I'd like to expand
our scope further.

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

--HG--
extra : moz-landing-system : lando
2019-03-19 14:22:45 +00:00
Alex Gaynor
177fb00eba Bug 1375863 - fold MOZ_CONTENT_SANDBOX and MOZ_GMP_SANDBOX into MOZ_SANDBOX; r=jld,firefox-build-system-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D22975

--HG--
extra : moz-landing-system : lando
2019-03-18 22:31:59 +00:00
Henri Sivonen
085ffa46c6 Bug 1535541 Use chrome-process TabParent focus instead of APZ focus for keyboard event routing. r=nika
Depends on D20981

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

--HG--
extra : moz-landing-system : lando
2019-03-19 13:37:22 +00:00
Jonathan Kew
95ed8b4b59 Bug 1534693 - Bail out of font-family search in GlobalFontFallback once we've found a font with an exact style match. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D23162

--HG--
extra : moz-landing-system : lando
2019-03-19 10:49:53 +00:00
sotaro
218dad8f2e Bug 1536033 - Add error value to create EGLContext failure log r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D23834

--HG--
extra : moz-landing-system : lando
2019-03-19 03:01:40 +00:00
Daniel Varga
8cfdfc2400 Merge mozilla-central to autoland. a=merge on a CLOSED TREE
--HG--
rename : dom/svg/SVGAnimatedAngle.cpp => dom/svg/DOMSVGAnimatedAngle.cpp
rename : dom/svg/SVGAnimatedAngle.h => dom/svg/DOMSVGAnimatedAngle.h
rename : dom/svg/SVGAnimatedBoolean.cpp => dom/svg/DOMSVGAnimatedBoolean.cpp
rename : dom/svg/SVGAnimatedBoolean.h => dom/svg/DOMSVGAnimatedBoolean.h
rename : dom/svg/SVGAnimatedEnumeration.cpp => dom/svg/DOMSVGAnimatedEnumeration.cpp
rename : dom/svg/SVGAnimatedEnumeration.h => dom/svg/DOMSVGAnimatedEnumeration.h
rename : dom/svg/SVGAnimatedInteger.cpp => dom/svg/DOMSVGAnimatedInteger.cpp
rename : dom/svg/SVGAnimatedInteger.h => dom/svg/DOMSVGAnimatedInteger.h
rename : dom/svg/SVGAnimatedLength.cpp => dom/svg/DOMSVGAnimatedLength.cpp
rename : dom/svg/SVGAnimatedLength.h => dom/svg/DOMSVGAnimatedLength.h
rename : dom/svg/SVGAnimatedNumber.cpp => dom/svg/DOMSVGAnimatedNumber.cpp
rename : dom/svg/SVGAnimatedNumber.h => dom/svg/DOMSVGAnimatedNumber.h
rename : dom/svg/SVGAnimatedString.cpp => dom/svg/DOMSVGAnimatedString.cpp
rename : dom/svg/SVGAnimatedString.h => dom/svg/DOMSVGAnimatedString.h
extra : rebase_source : 659cd1fcc5bf82db49df02d92bdb9b14833f06bf
2019-03-19 11:54:04 +02:00
Daniel Varga
358f816f63 Merge mozilla-inbound to mozilla-central. a=merge 2019-03-19 11:50:28 +02:00
Bogdan Tara
d8ee73369c Backed out changeset 93c9a0e2da6e (bug 1527751) for wrench bustages CLOSED TREE 2019-03-19 07:41:50 +02:00
Gurzau Raul
75e5218258 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-03-18 23:46:50 +02:00
Gurzau Raul
9db9a7e707 Merge inbound to mozilla-central. a=merge 2019-03-18 23:38:05 +02:00
Jeff Gilbert
52d58f2a74 Bug 1533527 - Forbid non-size_t calls to malloc and calloc. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D22627
2019-03-18 13:47:18 -07:00
Alexis Beingessner
e2857c55ed Bug 1527751 - properly apply transformed clips in brush shader. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D23905

--HG--
extra : moz-landing-system : lando
2019-03-18 21:05:56 +00:00
Jamie Nicol
083b51840d Bug 1511433 - Ensure address variables in fragment shaders are highp precision. r=gw
In GLES 3 GLSL, the default precision for ints is highp (32 bit) in
vertex shaders, but only mediump (16 bit) in fragment shaders.

To render linear and radial gradients the fragment shader must fetch
the gradient stops from the gpu cache, using an address variable. This
variable is a 16 bit int, so if the stops data is located at
too high an address (row 32 or greater) then this value will have
overflown and we fetch from the wrong location. This was resulting in
garbage being drawn instead of the correct gradients.

To fix this, any address used in a fragment shader must be marked as
highp. This includes the varying input which supplies the address, and
the arguments to any functions used for the fetch.

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

--HG--
extra : moz-landing-system : lando
2019-03-17 20:54:29 +00:00
Coroiu Cristina
e288f6c13d Backed out changeset 9f30fc25911a (bug 1536242) for build bustage at build/src/gfx/thebes/gfxPlatform.cpp on a CLOSED TREE 2019-03-19 11:20:55 +02:00
Jeff Muizelaar
1b07b22728 Bug 1536242. Enable WebRender on AMD Cayman (Northern Islands) chips. r=kats
We haven't seen any AMD related bugs on Nightly so I'd like to expand
our scope further.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 22:23:46 +00:00
sotaro
b360f74a7a Bug 1535807 - Fix build failure by WebRenderTextureHostWrapper.h r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D23768

--HG--
extra : moz-landing-system : lando
2019-03-16 17:03:18 +00:00
Kartikaya Gupta
6743c7ace2 Bug 1536128 - Make apz.printtree work on non-debug builds. r=botond
This eliminates the need to additionally modify gfx.logging.level on
non-debug builds to make apz.printtree output show up.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 18:42:04 +00:00
Bogdan Tara
84581c394f Backed out changeset 70440f88051f (bug 1535976) for /reftests/transform-3d/mask-layer* failures CLOSED TREE 2019-03-19 06:02:09 +02:00
Emilio Cobos Álvarez
70e3f8ffcd Bug 1535165 - Use cbindgen for touch-action. r=dholbert
And rename the constants to not be prefixed by TOUCH_ACTION_, since that's part
of the type name anyway.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 18:01:55 +00:00
Bogdan Tara
ddb22ded49 Backed out changeset c78ae1f1f538 (bug 1534693) for unexpected item fuzzy-if Android in reftest.list CLOSED TREE 2019-03-19 01:33:38 +02:00
Glenn Watson
7e08c517ab Bug 1535976 - Add a fast path for common rounded rect clips to WR. r=kvark
Most rounded rect clips in real content are (a) axis aligned and
(b) have uniform radii.

When these conditions are met, we can run a fast path for clip
mask generation that uses significantly fewer ALU shader ops.

This is not typically a bottleneck on desktop GPUs, but can have
a large performance impact on mobile GPUs (and perhaps low end
integrated GPUs).

The Mali shader analyzer reports the slow path for the rounded
rect clip shader to be 94 cycles per fragment, while the fast
path is 10 cycles.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 16:15:45 +00:00
Jonathan Kew
6746c8f733 Bug 1534693 - Bail out of font-family search in GlobalFontFallback once we've found a font with an exact style match. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D23162

--HG--
extra : moz-landing-system : lando
2019-03-18 16:28:19 +00:00
Gurzau Raul
b0e75ab0e1 Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-03-18 23:44:31 +02:00
sotaro
414520a0b9 Bug 1534557 - Implement GtkCompositorWidget::GetEGLNativeWindow() for GET_NATIVE_WINDOW_FROM_COMPOSITOR_WIDGET r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D23106

--HG--
extra : moz-landing-system : lando
2019-03-13 00:18:49 +00:00
Boris Chiou
cbef6a9f42 Bug 1425837 - Part 6: Add individual transform properties into compositor animation list. r=hiro
Now, its time to let individual transform run on the compositor thread.

Depends on D19636

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

--HG--
extra : moz-landing-system : lando
2019-03-18 18:05:00 +00:00
Boris Chiou
a64dcfdf0c Bug 1425837 - Part 5: AnimationInfo::HasTransformAnimation should check other OMTA transform-like properties r=hiro
This function was added for B2G actually, to check if the layer has OMTA for
painting high-res layer. However, It's worth to let it also check other
OMTA transform-like properties.

Depends on D22565

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

--HG--
extra : moz-landing-system : lando
2019-03-18 18:04:58 +00:00
Boris Chiou
92fcc151e4 Bug 1425837 - Part 4: Implement compositor animations on translate/rotate/scale. r=hiro,birtles
On the sender side of transactions, we have to convert the individual transforms
to the proper types in layers::Animations, and this includes SetAnimatable and
the definition in LayersMessages.

On the compositor side (i.e. received side of transactions). Basically, we
convert the list of layers::Animation into a list of `PropertyAnimationGroup`,
which is an intermediate value. And then use this list to do interpolation for
each property in `SampleAnimationForEachNode`, which will return a list of
`RefPtr<RawServoAnimationValue>`.

Depends on D23062

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

--HG--
extra : moz-landing-system : lando
2019-03-18 18:04:50 +00:00
Boris Chiou
f744b2e1ea Bug 1425837 - Part 3: Don't store AnimationArray (a.k.a. AnimationInfo::mAnimations) on the compositor thread. r=birtles
The original implementation about "setting animations" is a little bit hard
to read. In `SetAnimations()`, we create a new intermediate data,
`AnimData`, and we mutate the original animations. And then iterate this
mutated animations & intermediate data for sampling. In this bug, we are
planning to group the AnimData as a useful data structure for supporting
multiple properties transform-like animations, so it seems the structure
of original animations may be hard to use after that. Therefore,
we decide to do some reworks on this:

First, we do renames,
1. InfalliableTArray to nsTArray. (They are the same.)
2. AnimData to PropertyAnimation.
3. SetAnimations() to ExtractAnimations(), which returns
   nsTArray<PropertyAnimationGroup>. Each entry in the array is for one
   property. In this patch, there is only one entry. We will extend this
   to multiple entries in the next patch.

And then rework `ExtractAnimations()`, which stores all the necessary data
in `PropertyAnimationGroup`. For WR, we store this in
`CompositorAnimationStorage`. For non-WR, we store it in `AnimationInfo`.
So we can just use this organized data structure for supporting multiple
properties animations. (See the next patch.)

Depends on D22563

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

--HG--
extra : moz-landing-system : lando
2019-03-18 18:04:48 +00:00
Boris Chiou
2c4c5fb5f3 Bug 1425837 - Part 2: Factor out the conversion from ServoAnimationValue into Matrix4x4. r=hiro
Both layers and web-render use this function, so we factor it out.

Depends on D22562

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

--HG--
extra : moz-landing-system : lando
2019-03-18 18:04:46 +00:00
Boris Chiou
7e88a77926 Bug 1425837 - Part 1: Move ToAnimationValue into AnimationValue. r=hiro
It seems this function uses some FFIs to generate the AnimationValue,
We could move it into AnimationValue class, although what we really need is
RefPtr<ServoAnimationValue>.

Maybe we should use AnimationValue everywhere, instead of the Servo type.
This could be done by other patches.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 18:04:44 +00:00
Jonathan Kew
395cc5aeef Bug 1532868 - Use multiplication rather than left-shift to avoid potential UB in FontPropertyValue constructor. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D22999

--HG--
extra : moz-landing-system : lando
2019-03-18 16:26:56 +00:00
Brad Werth
7fc19a53b5 Bug 1501665 Part 4: Use the new function as a replacement for APZAllowZooming. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D19239

--HG--
extra : source : cf42ea4e8443cdcb5f446dfb95d92d5998f55f24
2019-03-18 14:56:55 +00:00
shindli
b7de66af4f Backed out 13 changesets (bug 1501665) for failing a11y tests in accessible/tests/mochitest/relations/test_tabbrowser.xul CLOSED TREE
Backed out changeset 2fa518cb0dfc (bug 1501665)
Backed out changeset afaf26d7df42 (bug 1501665)
Backed out changeset 5bdf0ad9dc66 (bug 1501665)
Backed out changeset 520dd24a73fc (bug 1501665)
Backed out changeset 3542bf2b89dd (bug 1501665)
Backed out changeset 088dc24eabc7 (bug 1501665)
Backed out changeset 178210eb72ba (bug 1501665)
Backed out changeset 9eebe767ef20 (bug 1501665)
Backed out changeset 6a84e97d0e62 (bug 1501665)
Backed out changeset cf42ea4e8443 (bug 1501665)
Backed out changeset 731d7ee06d86 (bug 1501665)
Backed out changeset 8e0afe4a041a (bug 1501665)
Backed out changeset be1026de486b (bug 1501665)
2019-03-18 18:08:58 +02:00
Glenn Watson
a15a5c4425 Bug 1535540 - Remove the identity transform condition while checking redundant stacking contexts. r=emilio
The only time that the ancestor spatial node index is read is
during push_stacking_context. This means that even if it was
used as an ancestor for a 3d context, we can safely collapse
it in to the parent stacking context during flattening, if it
is otherwise redundant.

This is a partial fix for picture caching heuristics failing
with the display list produced on mobile devices.

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

--HG--
extra : moz-landing-system : lando
2019-03-18 03:08:26 +00:00