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

40693 Коммитов

Автор SHA1 Сообщение Дата
Matt Woodrow a77dc2167d Bug 1707513 - Add 'drawSnapshot' mode to reftest harness, and annotate all current failures. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D114188
2021-05-08 05:52:19 +00:00
Hiroyuki Ikezoe 59ba152141 Bug 1710013 - Hold a strong reference of OverscrollAnimation instance to avoid being derefed. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D114580
2021-05-07 22:32:21 +00:00
Botond Ballo 1fe3fda8d3 Bug 1700169 - Apply the test async properties in GetOverscrollAmount(). r=tnikkel
Depends on D114456

Differential Revision: https://phabricator.services.mozilla.com/D114457
2021-05-07 21:30:58 +00:00
Botond Ballo d1514d8853 Bug 1700169 - Squish scroll thumbs when overscrolled. r=tnikkel
Depends on D114455

Differential Revision: https://phabricator.services.mozilla.com/D114456
2021-05-07 21:30:58 +00:00
Botond Ballo 1ac1378662 Bug 1700169 - Extend ScaleThumbBy() to allow keeping the position of either the start or the end of the thumb constant. r=tnikkel
Depends on D114454

Differential Revision: https://phabricator.services.mozilla.com/D114455
2021-05-07 21:30:57 +00:00
Botond Ballo 5891621438 Bug 1700169 - Take into account the correct transform origin when scaling the thumb. r=tnikkel
The code was written assuming the transform origin is the top
of the scrollbar track, but it's actually the layer tree origin.

So far, scaling was only done for thumbs of the root scroll frame
where there is no difference, so no one noticed.

Depends on D114453

Differential Revision: https://phabricator.services.mozilla.com/D114454
2021-05-07 21:30:57 +00:00
Botond Ballo 377ba4adde Bug 1700169 - Factor out the code to scale the thumb into its own function. r=tnikkel
This includes the translation to ensure the scaling keeps the position
of the top of the thumb constant.

Differential Revision: https://phabricator.services.mozilla.com/D114453
2021-05-07 21:30:57 +00:00
Kagami Sascha Rosylight 9298d0e9e9 Bug 1706420 - Part 2: Pass tilt/twist info via WidgetTouchEvent r=aklotz,edgar
Differential Revision: https://phabricator.services.mozilla.com/D113056
2021-05-07 18:01:28 +00:00
Robert Mader 76023e93e9 Bug 1709606 - Rename CompositorWidget::AsX11() to CompositorWidget->AsGTK(), r=stransky,nical
Nowadays we often use it for Wayland, which is confusing. Also, it
has a bunch of GTK specific functions, which an alternative X11
implementation would like not have. So a explicit name is probably
deserved.

Depends on D114424

Differential Revision: https://phabricator.services.mozilla.com/D114425
2021-05-07 12:31:28 +00:00
Hiroyuki Ikezoe c99a053acb Bug 1709334 - Ensure calling SampleOverscrollAnimation for overscroll animations which are about to finish. r=botond
In cases where the overscroll amount is pretty small, the animation's
physics model considers it's finished, which exacly means it's about
to finish, so if we don't call SampleOverscrollAnimation in such cases,
the small amount of overscrolling value remains there, then we try to
create overscroll animations repeatedly even if the overscroll amount
is visually noticeablt.

Differential Revision: https://phabricator.services.mozilla.com/D114445
2021-05-07 05:24:10 +00:00
Timothy Nikkel 442aa07485 Bug 1707806. Have AsyncPanZoomController::ZoomToRect just call RequestContentRepaint instead of repeating it. r=botond
One slightly change is needed to RequestContentRepaint.

Depends on D113074

Differential Revision: https://phabricator.services.mozilla.com/D113464
2021-05-07 03:55:23 +00:00
Glenn Watson abf890dc11 Bug 1709757 - Pt 3 - Remove WR internal code and APIs for debugger feature r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D114452
2021-05-07 01:57:01 +00:00
Glenn Watson 0b92f2a90d Bug 1709757 - Pt 2 - Remove debugger feature from WR bindings and vendored crates r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D114446
2021-05-06 23:08:12 +00:00
Sandor Molnar 34b668bb94 Backed out changeset dd803536f7b7 (bug 1709334) for causing Gtest failures in APZCOverscrollTester.FlingIntoOverscroll. CLOSED TREE 2021-05-07 02:00:07 +03:00
Lee Salzman 4d26cb2ec6 Bug 1704750 - Simplify rasterizer edge termination condition. r=kvark
Floating point imprecision can cause the existing test to be unreliable. Just simplify it so it loops around till it overlaps one edge with another. This does a tiny bit more work but will have less chance of exiting earlier than it should.

Differential Revision: https://phabricator.services.mozilla.com/D114236
2021-05-06 21:55:27 +00:00
Hiroyuki Ikezoe e98f6aecf9 Bug 1709334 - Ensure calling SampleOverscrollAnimation for overscroll animations which are about to finish. r=botond
In cases where the overscroll amount is pretty small, the animation's
physics model considers it's finished, which exacly means it's about
to finish, so if we don't call SampleOverscrollAnimation in such cases,
the small amount of overscrolling value remains there, then we try to
create overscroll animations repeatedly even if the overscroll amount
is visually noticeablt.

Differential Revision: https://phabricator.services.mozilla.com/D114445
2021-05-06 21:02:10 +00:00
Glenn Watson 98934eac2e Bug 1709757 - Pt 1 - Remove debugger/ r=gfx-reviewers,nical
Remove the web debugger. Follow up patches will remove the WR
code that supports the debugger.

Differential Revision: https://phabricator.services.mozilla.com/D114444
2021-05-06 20:06:25 +00:00
Andrew Osmond 195b6f4fbd Bug 1707610 - Make GPU process restart criteria depend on rendering frames and uptime. r=jrmuizel
Originally, we would restart the GPU process a fixed number of attempts
based on the layers.gpu-process.max_restarts pref. With this patch, we
now use this pref to control how many "unstable" restarts we allow. A
restart is "stable" if and only if the process uptime exceeds the pref
layers.gpu-process.stable.min-uptime-ts and if the process renders a
total number of frames exceeding the pref
layers.gpu-process.stable.frame-threshold. This allows users to keep the
GPU process for a lot longer if they are encountering infrequent
crashes. Should the user experience the GPU process crashing quickly
and/or without rendering many frames, we will disable it as before after
a few attempts and move into the parent process.

Differential Revision: https://phabricator.services.mozilla.com/D114531
2021-05-06 19:47:38 +00:00
Jamie Nicol 927eb7620e Bug 1709408 - Avoid using GL_EXT_color_buffer_float on some PowerVR devices. r=kvark
We are seeing lots of crashes on various x86 PowerVR Rogue G6430
devices during the draw calls for GPU cache updates. The crash appears
to only affect x86 devices with this specific GPU. It seems likely
that EXT_color_buffer_float is buggy, so disable usage of it on such
devices. The GPU cache will fall back to using texture uploads instead
of scatter shader updates.

Differential Revision: https://phabricator.services.mozilla.com/D114355
2021-05-06 14:20:11 +00:00
Lee Salzman 3145b3ef03 Bug 1709493 - Don't call compositor begin_frame/end_frame unless actually rendering. r=sotaro,gfx-reviewers,gw
If we're not actually rendering a frame, calling begin_frame/end_frame on the compositor without
adding surfaces can cause us to render a blank frame. Avoid calling begin_frame/end_frame as well
in this situation so that we don't accidentally do this.

Differential Revision: https://phabricator.services.mozilla.com/D114316
2021-05-06 08:43:25 +00:00
Botond Ballo dd3568ce15 Bug 1681595 - Use promiseApzFlushedRepaints() after setting up a configuration in helper_touch_action_complex.html. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D114405
2021-05-05 23:33:04 +00:00
Nicolas Silva 141d788226 Bug 1708540 - Handle and test various NaN situations with gradients. r=gfx-reviewers,bradwerth
Differential Revision: https://phabricator.services.mozilla.com/D114366
2021-05-05 21:28:34 +00:00
Nicolas Silva fc544d4e99 Bug 1708122 - Fix the radial gradient optimization. r=gfx-reviewers,lsalzman
The bounds of a radial gradient primitive's radius have to be scaled by the end_offset parameter.

Differential Revision: https://phabricator.services.mozilla.com/D114344
2021-05-05 21:27:34 +00:00
Nicolas Silva 4b2e532f46 Bug 1708959 - Fix linear gradient clipping in the fast path. r=gfx-reviewers,gw
Some code in the gradient fast path was expecting that at a certain point we'd either have bailed out of the optimization or the primitive bounds would be tightly clipped. It was possible with a combination of parameters to have a tile repetition that would prevent the tight clipping while being opitmized away after the attempt at clipping. In that case the primitive bounds wouldn't be minimal but we proceed using it as the clip while decomposing gradients into simpler segments.

This patch reorders the optimization code so that clipping is done after sanitizing repetitions, allows the clipping to happen in more cases and as an extra safety uses the intersection of the primitive bounds and clip as the segment clip regardless of whether we achieved a minimal clip earlier.

Differential Revision: https://phabricator.services.mozilla.com/D114255
2021-05-05 21:24:15 +00:00
Jonathan Kew 374b002063 Bug 1709441 - Bail out early from _cairo_image_compute_color if image is zero-sized. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D114354
2021-05-05 16:50:23 +00:00
Timothy Nikkel f6a0ce2933 Bug 1709614. Allow the double tap heuristic to look at grand parent for table cells. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D114361
2021-05-05 15:37:51 +00:00
Andrew Osmond c46e4b35ef Bug 1709476 - Allow falling back to Software WebRender from D3D11/WebRender in release. r=jrmuizel
If a user is able to get D3D11, and Software WebRender hasn't been
forced on (either by the Fission experiment or our pref), then we prefer
D3D11 in late beta and release. This will allow users who start with
D3D11 in the GPU process, to fallback to Software WebRender in the GPU
process.

Differential Revision: https://phabricator.services.mozilla.com/D114286
2021-05-05 14:31:46 +00:00
Jamie Nicol d6c51544d5 Bug 1709548 - Don't clear backbuffer if dirty region is empty. r=nical
On Mali-G77 devices we have seen an flickering black bars appear on
pages where we are compositing with an empty dirty region. In such
cases we end up calling eglSetDamageRegion with an empty region,
followed by glClear with an empty scissor rect. Technically calling
eglSetDamageRegion with an empty dirty region is allowed, it just
means you cannot render to the backbuffer at all that frame. The
subsequent glClear call should therefore be fine since an empty
scissor rect is set, but the Mali driver does not like it.

This patch skips calling glClear altogether if the dirty region is
empty, preventing the black bars from appearing.

Differential Revision: https://phabricator.services.mozilla.com/D114346
2021-05-05 14:05:40 +00:00
Nicolas Silva 32c8731610 Bug 1709535 - Fix clear tiles. r=gfx-reviewers,jnicol
In bug 1696905 I changed how clear tiles are rendered from multiply blend to opaque, however it breaks window controls on Windows 8 (the only thing that clear tiles are used for). This patch reverts clear tiles to the previous behavior.

I'm not sure how to test this part of the code because it depends on the widget integration code having something to show behind the window.

Differential Revision: https://phabricator.services.mozilla.com/D114327
2021-05-05 09:22:48 +00:00
Mike Hommey 4178828587 Bug 1709509 - Fix clippy warnings in webrender_bindings. r=gfx-reviewers,lsalzman
Fixed the following:
- methods called `to_*` usually take self by reference; consider choosing
  a less ambiguous name (clippy::wrong_self_convention)
- an implementation of `From` is preferred since it gives you `Into<_>`
  for free where the reverse isn't true (clippy::from_over_into)
- manual implementation of `Option::map` (clippy::manual_map)
- comparing with null is better expressed by the `.is_null()` method
  (clippy::cmp_null)
- use of `unwrap_or` followed by a function call (clippy::or_fun_call)
- you don't need to add `&` to all patterns (clippy::match_ref_pats)
- writing `&PathBuf` instead of `&Path` involves a new object where a
  slice will do (clippy::ptr_arg)

Locally ignored:
- 6 bindings with single-character names in scope (clippy::many_single_char_names)

Globally ignored:
- this public function dereferences a raw pointer but is not marked
  `unsafe` (clippy::not_unsafe_ptr_arg_deref)
- unsafe function's docs miss `# Safety` section (clippy::missing_safety_doc)

Differential Revision: https://phabricator.services.mozilla.com/D114319
2021-05-05 05:50:32 +00:00
Glenn Watson b845f71b44 Bug 1709507 - Reduce allocations and memmove during scene building. r=gfx-reviewers,jrmuizel
This can make scene building up to 10% faster on some pages (such
as the youtube.com front page) that use a large number of clips.

Differential Revision: https://phabricator.services.mozilla.com/D114312
2021-05-05 03:00:28 +00:00
Timothy Nikkel 0a51e9f3e0 Bug 1708143. Fix intermittents in test_group_zoomToFocusedInput.html. r=m_kato
There are two kinds of fixes here.

The first is calling waitToClearOutAnyPotentialScrolls after anything that might cause scrolls to make sure all scrolls are done before we move on in the test (so they don't mess us up later). Calling focus on an element is one thing that causes scrolling that may not be obvious.

The second is using promiseTransformEnd to be sure the zoom to focused input animation is done.

Differential Revision: https://phabricator.services.mozilla.com/D113908
2021-05-05 00:25:16 +00:00
Jonathan Kew 5347f125e1 Bug 1708797 - Try to make font fallback code more robust against DWrite failures. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D114225
2021-05-04 14:33:51 +00:00
Iulian Moraru 360e9d9cec Backed out changeset c5b7b613ed52 (bug 1708798) for landing with wrong bug. CLOSED TREE 2021-05-04 17:12:50 +03:00
Jonathan Kew 7b1e3093a7 Bug 1708798 - Try to make font fallback code more robust against DWrite failures. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D114225
2021-05-04 13:44:23 +00:00
stransky 8ff3771ef2 Bug 1704965 [Linux] Remove display connection from nsWindow, CompositorWidgetParent and WindowSurfaceProvider, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D113643
2021-05-04 13:04:35 +00:00
Nicolas Silva 1f87bb2116 Bug 1696905 - Store composite tiles in a single array. r=gfx-reviewers,bradwerth
It used to be more convenient to store them in separate arrays but with the new occlusion culling code we don't benefit from it and have to undo it to traverse tiles from front to back.
This is a cleanup patch that should not change the behavior of the code.

Differential Revision: https://phabricator.services.mozilla.com/D113989
2021-05-04 12:54:52 +00:00
Nicolas Silva 67286e28c2 Bug 1696905 - CPU-side occlusion culling for picture cache tiles. r=gfx-reviewers,lsalzman,gw
This patch introduces a simple culling algorithm that splits compositor tiles into only their visible parts, removing the need for a depth buffer. This reduces the draw-call count as well well as the memory usage and bandwidth associated with the depth buffer.

Differential Revision: https://phabricator.services.mozilla.com/D113532
2021-05-04 12:54:52 +00:00
Glenn Watson 759e747d77 Bug 1708337 - Fix rounded clips on root iframe tile caches. r=gfx-reviewers,lsalzman
If an iframe has complex clips, we need to skip including them
in the iframe specific clip applied to the tile cache, as that
path only supports rectangle clips.

Differential Revision: https://phabricator.services.mozilla.com/D114190
2021-05-04 03:37:38 +00:00
Glenn Watson 7947bc10f1 Bug 1706824 - Remove old direct-composition example. r=gfx-reviewers,lsalzman
This was an old example / proof of concept of directly drawing
to a DirectComposition surface.

We now have the example-compositor/ project that shows how to
integrate with DirectComposition on Windows and Wayland on
Linux, in addition to a shipping implementation in Gecko for
CoreAnimation and DirectComposition.

Differential Revision: https://phabricator.services.mozilla.com/D113052
2021-05-04 00:32:41 +00:00
Glenn Watson 6bfb59cac9 Bug 1708444 - Don't create compositor surfaces inside blend containers. r=gfx-reviewers,bradwerth
If we optimize a root level blend container to be a tile cache, we
need to ensure we don't promote compositor surfaces within this slice
as it can result in incorrect blending.

Differential Revision: https://phabricator.services.mozilla.com/D114176
2021-05-04 00:02:45 +00:00
Botond Ballo edaa0e7e9b Bug 1708855 - Remove Axis::GetScaleForAxis(). r=tnikkel
It was duplicating the method GetAxisScale().

Differential Revision: https://phabricator.services.mozilla.com/D114180
2021-05-03 23:51:29 +00:00
Botond Ballo 9adeec0ae9 Bug 1708855 - Use Axis to avoid code repetition in AsyncScrollThumbTransformer. r=tnikkel
Depends on D114162

Differential Revision: https://phabricator.services.mozilla.com/D114163
2021-05-03 23:51:29 +00:00
Botond Ballo 60aef10c93 Bug 1708855 - Promote a few local variables in AsyncScrollThumbTransformer::ComputeTransform() to fields. r=tnikkel
Depends on D114161

Differential Revision: https://phabricator.services.mozilla.com/D114162
2021-05-03 23:51:28 +00:00
Botond Ballo 7bbe707700 Bug 1708855 - Give Axis a few more accessor methods. r=tnikkel
Depends on D114160

Differential Revision: https://phabricator.services.mozilla.com/D114161
2021-05-03 23:51:28 +00:00
Botond Ballo 33a931df2d Bug 1708855 - Move the implementation of ComputeTransformForScrollThumb into an instance method of a class. r=tnikkel
This allows us to factor out parts of the computation into their own
functions without having to pass too many things around as arguments.

Depends on D114159

Differential Revision: https://phabricator.services.mozilla.com/D114160
2021-05-03 23:51:28 +00:00
Botond Ballo b2057e554e Bug 1708855 - Move the implementation of ComputeTransformForScrollThumb into its own file. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D114159
2021-05-03 23:51:27 +00:00
Jeff Muizelaar 3e6d79347c Bug 1708937. Work around a gen6 shader compiler bug. r=gw
This was found through experimentation. Hopefully,
we'll get a better understanding of what's going on in the future.

Differential Revision: https://phabricator.services.mozilla.com/D114166
2021-05-03 21:35:49 +00:00
Botond Ballo 2469a96f96 Bug 1708847 - Remove ScrollSource::DOM. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D114041
2021-05-03 19:19:06 +00:00
Timothy Nikkel ad9b228b2a Bug 1702851. Allow double tap zoom to zoom to generated content. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D110741
2021-05-03 09:20:56 +00:00