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

41286 Коммитов

Автор SHA1 Сообщение Дата
Nicolas Silva 963407d195 Bug 1717592 - Support screen raster-space in the opaque image brush. r=gfx-reviewers,lsalzman
This fixes the regressions that prevented https://phabricator.services.mozilla.com/D114954 from landing.

Differential Revision: https://phabricator.services.mozilla.com/D118370
2021-07-05 15:46:02 +00:00
Nicolas Silva 620dab6635 Bug 1717592 - Allow rendering tiles and segments with the opaque pass in more cases. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D114954
2021-07-05 15:46:02 +00:00
Hiroyuki Ikezoe 7d2d0b1c1b Bug 1705976 - A test that double tapping inside OOP iframe doesn't zoom if the top level document disallows zooming. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D119042
2021-07-05 00:48:42 +00:00
sotaro 1dbe2952b1 Bug 1718497 - Copy opaque tile instead of premultiplied blending r=lsalzman
Copy tiles data when tiles are opaque instead of blending them.

RenderCompositorLayersSWGL always blends tiles as premultiplied tiles. But it could not handle clear tiles and caused Bug 1718497. The problem does not happen with RenderCompositorSWGL. It copies tile data when tile is opaque. Then, RenderCompositorSWGL handles clear tiles correctly.

Differential Revision: https://phabricator.services.mozilla.com/D118953
2021-07-05 00:08:07 +00:00
Dzmitry Malyshau b261452e22 Bug 1716120 - Bump the compositor thread stack size to 320K r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D118840
2021-06-27 01:23:38 +00:00
Cosmin Sabou 41149697f3 Backed out changeset 26f4d57d3de5 (bug 1716120) for causing asan webgl failures. CLOSED TREE 2021-06-26 05:11:25 +03:00
Dzmitry Malyshau 8f6bb374fe Bug 1716120 - Bump the compositor thread stack size to 320K r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D118840
2021-06-25 21:56:35 +00:00
Jeff Muizelaar 416aaca8c8 Bug 1718334 - RELEASE_ASSERT the last map succeeded. r=jgilbert
The RELEASE_ASSERT below is failing so this will help
us narrow down which Map() call it might be.

Differential Revision: https://phabricator.services.mozilla.com/D118866
2021-06-25 20:56:14 +00:00
Jonathan Kew b066854b29 Bug 1561868 - Give the RebuildFontList message a raised priority, so that it is processed ahead of Vsync. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D118846
2021-06-25 20:12:14 +00:00
Jeff Gilbert afdbf9538b Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman
+ Begin to add video tests to ensure we ratchet towards correctness.
+ Test rec709 x (yuv420p, yuv420p10, gbrp) x (tv, pc) x codecs.
+ Just mark fuzziness for now. Better would be e.g. 16_127_233 'bad
  references'.

Differential Revision: https://phabricator.services.mozilla.com/D115298
2021-06-25 19:16:22 +00:00
Robert Mader 26c93593a4 Bug 1646135 - Set draw buffer after eglMakeCurrent when using desktop GL,r=gfx-reviewers,lsalzman
Original patch by Erik Kurzinger: D118304

The following is currently not well-defined by the EGL specification:

 1. Create context.
 2. Make it current with no default framebuffer (as a surface-less context, ie bind EGL_NO_SURFACE for both surfaces)
 3. Make it current with a default framebuffer (ie with some draw/read surfaces)

After Step #3 what is the current draw buffer state? is it GL_NONE or GL_BACK?

With Mesa's EGL implementation, the answer is GL_BACK, and WebRender's EGL
backend currently assumes this behavior. However with the proprietary NVIDIA
driver the answer is actually GL_NONE, meaning any rendering done after step #3
will be lost.

As a fix, Firefox can simple call glDrawBuffer after making a surface current
to set the draw buffer appropriately, either to GL_BACK for a double-buffered
surface or to GL_FRONT for single-buffered. As mentioned above, this is
redundant on Mesa, but should also be harmless.

Differential Revision: https://phabricator.services.mozilla.com/D118743
2021-06-25 15:29:29 +00:00
Brindusan Cristian 4920fc0ffd Backed out changeset 717b4a7cc264 (bug 1646135) as requested by rmader for causing a regression.
CLOSED TREE
2021-06-25 18:19:50 +03:00
Jeff Muizelaar e71c762245 Bug 1717117: Enable low-quality-pinch-zoom pref on Android Nightly. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D118224
2021-06-25 14:48:50 +00:00
Florian Quèze cd399a71a2 Bug 1717991 - Remove ifdefs around code that adds profiler markers with custom marker schemas, r=gerald.
Differential Revision: https://phabricator.services.mozilla.com/D118680
2021-06-25 13:28:01 +00:00
Robert Mader 3f85e626d8 Bug 1646135 - Set draw buffer after eglMakeCurrent on Wayland and X11,r=gfx-reviewers,lsalzman
Original patch by Erik Kurzinger: D118304

The following is currently not well-defined by the EGL specification:

 1. Create context.
 2. Make it current with no default framebuffer (as a surface-less context, ie bind EGL_NO_SURFACE for both surfaces)
 3. Make it current with a default framebuffer (ie with some draw/read surfaces)

After Step #3 what is the current draw buffer state? is it GL_NONE or GL_BACK?

With Mesa's EGL implementation, the answer is GL_BACK, and WebRender's EGL
backend currently assumes this behavior. However with the proprietary NVIDIA
driver the answer is actually GL_NONE, meaning any rendering done after step #3
will be lost.

As a fix, Firefox can simple call glDrawBuffer after making a surface current
to set the draw buffer appropriately, either to GL_BACK for a double-buffered
surface or to GL_FRONT for single-buffered. As mentioned above, this is
redundant on Mesa, but should also be harmless.

Differential Revision: https://phabricator.services.mozilla.com/D118743
2021-06-25 12:34:27 +00:00
Brindusan Cristian 3b52a2bfa1 Backed out changeset e5d0803d80dd (bug 1646135) for causing mochitest-plain crashes.
CLOSED TREE
2021-06-25 15:07:31 +03:00
Robert Mader dc15197dd2 Bug 1646135 - Set draw buffer after eglMakeCurrent on Wayland and X11,r=gfx-reviewers,lsalzman
Original patch by Erik Kurzinger: D118304

The following is currently not well-defined by the EGL specification:

 1. Create context.
 2. Make it current with no default framebuffer (as a surface-less context, ie bind EGL_NO_SURFACE for both surfaces)
 3. Make it current with a default framebuffer (ie with some draw/read surfaces)

After Step #3 what is the current draw buffer state? is it GL_NONE or GL_BACK?

With Mesa's EGL implementation, the answer is GL_BACK, and WebRender's EGL
backend currently assumes this behavior. However with the proprietary NVIDIA
driver the answer is actually GL_NONE, meaning any rendering done after step #3
will be lost.

As a fix, Firefox can simple call glDrawBuffer after making a surface current
to set the draw buffer appropriately, either to GL_BACK for a double-buffered
surface or to GL_FRONT for single-buffered. As mentioned above, this is
redundant on Mesa, but should also be harmless.

Differential Revision: https://phabricator.services.mozilla.com/D118743
2021-06-25 11:22:11 +00:00
Jonathan Kew a0abb0f180 Bug 1717595 - Ensure we check the fontgroup's validity before using it to build a textrun or otherwise access its cached font instances. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D118733
2021-06-25 10:14:17 +00:00
Glenn Watson 8a866e5314 Bug 1718166 - Ensure glyph scale quantization is >= 1 r=gfx-reviewers,jnicol
Now that picture cache tiles are raster roots, their scale is
expressed via the device-pixel scale. This means the calculated
scale can be too small when zoom factor is < 1 and a pinch-zoom
is currently active.

This is not a complete fix, it's an interim improvement until we
implement a proper fix. A complete fix will need to include the
device-pixel scale in the quantization process. However, this will
take some time to get right, since the existing code for selecting
a glyph size is quite complex due to different permutations and
how that code has evolved.

Differential Revision: https://phabricator.services.mozilla.com/D118781
2021-06-25 09:25:10 +00:00
Iulian Moraru 1a8cb02555 Backed out changeset 10a229d128c0 (bug 1459526) for causing reftest failures on short.mp4.lastframe.html. CLOSED TREE 2021-06-25 06:34:36 +03:00
Jeff Gilbert 5c14187731 Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman
+ Begin to add video tests to ensure we ratchet towards correctness.
+ Test rec709 x (yuv420p, yuv420p10, gbrp) x (tv, pc) x codecs.
+ Just mark fuzziness for now. Better would be e.g. 16_127_233 'bad
  references'.

Differential Revision: https://phabricator.services.mozilla.com/D115298
2021-06-24 23:43:31 +00:00
Emilio Cobos Álvarez 9410c0a59b Bug 1716481 - Improve ManagedPostRefreshObserver. r=smaug
Make it less sketchy.

Differential Revision: https://phabricator.services.mozilla.com/D118284
2021-06-24 22:05:12 +00:00
Glenn Watson 80fc3e4a9a Bug 1717986 - Fix raster scale update being one frame late r=gfx-reviewers,lsalzman
Updating raster_scale in post_update can mean that it is
updated one frame too late. This can cause reftest failures
in tests that set the scale factor (without an APZ) and then
capture that frame.

Differential Revision: https://phabricator.services.mozilla.com/D118672
2021-06-24 20:47:39 +00:00
dev c324fcfd9d Bug 1717945 - Use linear filter for low quality pinch-zoom with native compositor r=gfx-reviewers,jrmuizel
Less pixely while zooming.

Differential Revision: https://phabricator.services.mozilla.com/D118651
2021-06-24 19:53:48 +00:00
Glenn Watson 0691b04e66 Bug 1717944 - Use linear filter for low quality pinch-zoom with draw compositor r=gfx-reviewers,jrmuizel
Makes the zooming a bit less pixely.

Differential Revision: https://phabricator.services.mozilla.com/D118641
2021-06-24 19:29:28 +00:00
Jeff Muizelaar af3807e72a Bug 1717966 - MOZ_RELEASE_ASSERT that we succesfully have a buffer. r=mattwoodrow
If we've failed we're going to crash anyways so might as well
do it sooner and more descriptively.

Differential Revision: https://phabricator.services.mozilla.com/D118665
2021-06-24 00:39:18 +00:00
Boris Chiou 4b9b20cfc8 Bug 1716675 - Set 'display:none' with important rule for audio element without controls. r=emilio,botond
If the audio element doesn't have controls attribute, it is not exposing a
user interface, so the user agent is expected to force its display property
to compute to none, irrespective fo CSS rules.

This patch makes sure Gecko's behavior matches other browsers.

spec: https://html.spec.whatwg.org/multipage/rendering.html#embedded-content-rendering-rules

Differential Revision: https://phabricator.services.mozilla.com/D118093
2021-06-23 20:02:20 +00:00
Botond Ballo a019a450b2 Bug 1714934 - Populate the 'buttons' field for mouse events synthesized by APZ. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D118418
2021-06-23 19:36:21 +00:00
Andrew Osmond 62ca4d996b Bug 1717862 - Ship Software WebRender and WebRender to remaining Android devices. r=jnicol
Differential Revision: https://phabricator.services.mozilla.com/D118605
2021-06-23 16:55:18 +00:00
Jonathan Kew ae397ac3a1 Bug 1714754 - Always use DirectWrite to get glyph widths for variable fonts. r=lsalzman
This ensures we get the correct advances for the variation settings that are in use,
not just the font's "default" advances from the hmtx table.

(I'm sad there wasn't a testcase that detected this regression, so added one here.)

Differential Revision: https://phabricator.services.mozilla.com/D118571
2021-06-23 15:54:55 +00:00
Emilio Cobos Álvarez ef28a8b4ef Bug 1715513 - Disable the pref on a test that fails more frequently with it.
MANUAL PUSH: Orange fix CLOSED TREE
2021-06-23 16:08:46 +02:00
Andrew Osmond ffcb694790 Bug 1717803 - Run Windows ASAN tests on WebRender. r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D118574
2021-06-23 13:23:48 +00:00
Glenn Watson 87d6df1f33 Bug 1717738 - Fix low-quality pinch-zoom mode with hw-wr r=gfx-reviewers,jnicol
Fixes a case where at the end of a pinch-zoom on the Draw compositor
the tiles would be drawn incorrectly (due to the transforms not
being quite right for the local-to-surface case here, which was
affecting the occlusion calculations).

Differential Revision: https://phabricator.services.mozilla.com/D118559
2021-06-23 10:32:03 +00:00
Jeff Muizelaar 9516b71d67 Bug 1717737 - Probe mapped data to ensure it's writable. r=mattwoodrow
In bug 1717519 we're seeing access violations when writing
to the destination with SWGL. This does some early writes
to try to catch the problem earlier.

Differential Revision: https://phabricator.services.mozilla.com/D118556
2021-06-23 02:33:20 +00:00
Nika Layzell 7802bbb486 Bug 1706374 - Part 12b: Use NodeController for primary process channels, r=handyman
This extends on the changes in part 12a and consumes the new PortRef-based API
in all existing process types other than the fork server. The IPDL C++ unit
tests were already broken before this change, and were not updated.

Differential Revision: https://phabricator.services.mozilla.com/D112777
2021-06-22 18:17:23 +00:00
Nika Layzell 9ae1129462 Bug 1706374 - Part 10: Remove unnecessary IToplevelProtocol::OnChannelConnected, r=handyman,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D116665
2021-06-22 18:17:21 +00:00
Mike Hommey 744db845c6 Bug 1700534 - Coalesce RLBox wasmboxed libraries. r=firefox-build-system-reviewers,shravanrn,bholley,andi,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D116440
2021-06-22 05:31:33 +00:00
Hiroyuki Ikezoe ab1821bf93 Bug 1713547 - Use the viewport rect instead of the display port if the display port hasn't been set in the checkerboard severity check. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D116424
2021-06-22 02:00:28 +00:00
Butkovits Atila 83f57b5c69 Backed out 22 changesets (bug 1714226, bug 1706374, bug 1713148) for causing build bustages on MessageChannel.cpp. CLOSED TREE
Backed out changeset ea469eaa54ca (bug 1713148)
Backed out changeset fd8523d5126e (bug 1713148)
Backed out changeset f2e5309c914c (bug 1713148)
Backed out changeset 2da57973ed55 (bug 1713148)
Backed out changeset 677e1ee99bb2 (bug 1713148)
Backed out changeset b4c0619e79bf (bug 1706374)
Backed out changeset c02fa459e77d (bug 1706374)
Backed out changeset 72dc6537cf0b (bug 1706374)
Backed out changeset 48088463c656 (bug 1706374)
Backed out changeset b09ae4c3a94b (bug 1706374)
Backed out changeset 04422175004b (bug 1706374)
Backed out changeset 110b2384e7d1 (bug 1706374)
Backed out changeset ab2b086abbd4 (bug 1706374)
Backed out changeset ffde07f73249 (bug 1706374)
Backed out changeset c6303af17ff4 (bug 1706374)
Backed out changeset 02249671c2f9 (bug 1706374)
Backed out changeset a6a5d05b5636 (bug 1706374)
Backed out changeset e21b6defb805 (bug 1706374)
Backed out changeset c72c5be9ddb1 (bug 1706374)
Backed out changeset 23cd961575a6 (bug 1706374)
Backed out changeset b412d6e9e145 (bug 1706374)
Backed out changeset a8ec285d6472 (bug 1714226)
2021-06-22 04:03:56 +03:00
Glenn Watson 1b45654115 Bug 1655639 - Add support for transforms in the Draw compositor r=nical
This allows the draw compositor to correctly work with the low
quality pinch-zoom mode.

It also allows handling more external surfaces as compositor
surfaces, by allowing anything with a 2d scale and/or offset.

The y-flip special casing is removed since it's handled by the
general compositor transform support now.

Differential Revision: https://phabricator.services.mozilla.com/D118318
2021-06-22 00:06:10 +00:00
Nika Layzell 1d4aba6770 Bug 1706374 - Part 12b: Use NodeController for primary process channels, r=handyman
This extends on the changes in part 12a and consumes the new PortRef-based API
in all existing process types other than the fork server. The IPDL C++ unit
tests were already broken before this change, and were not updated.

Differential Revision: https://phabricator.services.mozilla.com/D112777
2021-06-21 21:53:11 +00:00
Nika Layzell 4a956a2673 Bug 1706374 - Part 10: Remove unnecessary IToplevelProtocol::OnChannelConnected, r=handyman,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D116665
2021-06-21 21:53:10 +00:00
Andrew Osmond 98f810e4e4 Bug 1715515 - Part 1. Switch Windows 32 and mingwclang tests to WebRender. r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D117287
2021-06-21 12:46:32 +00:00
Makoto Kato c114db74a9 Bug 1673511 - Use PresShell since APZ doesn't support position: fixed content. r=botond
Actually, APZ's zoomToRect doens't support position: fixed content. If so,
we use PresShell's scrollIntoView instead to scroll focused content if it
isn't visible.

Differential Revision: https://phabricator.services.mozilla.com/D117728
2021-06-21 06:32:14 +00:00
Glenn Watson 7f78f859a7 Bug 1716933 - Remove DefineClip API from WR public API r=gfx-reviewers,jrmuizel
This will allow simplifying some of the internal clip handling
during scene building.

Differential Revision: https://phabricator.services.mozilla.com/D118127
2021-06-20 22:26:54 +00:00
Glenn Watson 4f5a747e61 Bug 1716925 - Remove use of DefineClip in ClipManager r=gfx-reviewers,jrmuizel
This removes the last use of DefineClip from Gecko, which will
allow removing and simplifying a lot of the clip handing code
during scene building in WR.

Differential Revision: https://phabricator.services.mozilla.com/D118121
2021-06-20 22:26:53 +00:00
Robert Mader 5dec39058b Bug 1716006 - Clear pending callbacks when destroying a NativeSurfaceWayland, r=gfx-reviewers,gw
Unlike buffer release callbacks, which can't happen after the
corresponding buffer was destroyed, frame callbacks can apparently
arrive even if the corresponding surface was destroyed.
This kinda makes sense as frame callbacks have independent objects
which actually can get destroyed manually.

Also wait for the lock in the destructor to not unref the surface
below our feet.

Differential Revision: https://phabricator.services.mozilla.com/D118274
2021-06-20 21:05:47 +00:00
Robert Mader f572d9a8ee Bug 1716044 - Handle Y-flipped transform matrices, r=gfx-reviewers,lsalzman
This caused e.g. WebGL content to get hidden as it always fell out
of bounds. As a side effect clean up the whole custom transform math.

Differential Revision: https://phabricator.services.mozilla.com/D118288
2021-06-20 14:07:57 +00:00
Emilio Cobos Álvarez fb069248c0 Bug 1716045 - Unify font-family storage. r=mats,jfkthame
This changes font-family storage to reuse the rust types, removing a
bunch of code while at it. This allows us to, for example, use a single
static font family for -moz-bullet and clone it, rather than creating a
lot of expensive copies.

Differential Revision: https://phabricator.services.mozilla.com/D118011
2021-06-18 19:35:50 +00:00
Alexandru Michis 3477ca89c8 Backed out changeset f7016db57a2e (bug 1459526) for causing reftest failures.
CLOSED TREE
2021-06-18 07:49:06 +03:00
Jeff Gilbert 9a50679029 Bug 1715766 - [angle] Cherry-pick 3d texture respec fix. r=lsalzman,jrmuizel
+ Handle blank lines in moz.yaml.

Differential Revision: https://phabricator.services.mozilla.com/D117578
2021-06-18 00:46:52 +00:00
Brindusan Cristian 97b71ee13f Backed out 2 changesets (bug 1715515) for breaking the decision task.
CLOSED TREE

Backed out changeset 2e674ac39f8f (bug 1715515)
Backed out changeset 39580a1b4188 (bug 1715515)
2021-06-18 03:20:07 +03:00
Andrew Osmond be550ad9c9 Bug 1715515 - Part 1. Switch Windows 32 and mingwclang tests to WebRender. r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D117287
2021-06-17 23:53:39 +00:00
Jeff Gilbert 920429087b Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman
+ Begin to add video tests to ensure we ratchet towards correctness.
+ Test rec709 x (yuv420p, yuv420p10, gbrp) x (tv, pc) x codecs.
+ Just mark fuzziness for now. Better would be e.g. 16_127_233 'bad
  references'.

Differential Revision: https://phabricator.services.mozilla.com/D115298
2021-06-17 23:43:34 +00:00
Timothy Nikkel e2fec59f88 Bug 1713715. In gtest APZCGestureDetectorTester.DoubleTap make the apzc be for root content since we now redirect all double taps to root content. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D118118
2021-06-17 21:19:46 +00:00
Timothy Nikkel 1d7746a429 Bug 1713715. Add test. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D116926
2021-06-17 21:19:46 +00:00
Timothy Nikkel e6543e4998 Bug 1713715. Redirect double tap gestures to the root content apzc. r=botond
This means that double tapping on an oop iframe "works" in that we don't try (and fail) to zoom the oop iframe. But it also means it is impossible to zoom to some content inside that oop iframe. Instead the best we can do is zoom to the oop iframe itself. This is consistent with what Chrome and Safari currently do. Allowing zooming to content inside an oop iframe would be decently complicated and it doesn't seem worth it. Bug 1715179 is on file for this.

Differential Revision: https://phabricator.services.mozilla.com/D116925
2021-06-17 21:19:45 +00:00
Robert Mader 79cba7d9ea Bug 1713686 - Disbale redraw_on_invalidation in RenderCompositorSWGL on Wayland, r=lsalzman,gfx-reviewers
This was introduced in D106246. Most likely it is only necessary
on uncomposited legacy desktops. So on Linux only enable it for X11,
leaving out Wayland.

Removing it makes `RenderCompositorSWGL` behave (more) equally to
`RenderCompositorOGLSWGL`, massively reducing overpaint on certain
websites like testufo.com and improving frame rates on many low-end
devices.

Differential Revision: https://phabricator.services.mozilla.com/D118192
2021-06-17 19:50:59 +00:00
Jonathan Kew 0c5c1f4b21 Bug 1716029 - Shape numeric runs in Arabic or Hebrew with RTL buffer directionality, so that OpenType rules will process glyphs in logical order. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D117910
2021-06-17 19:11:22 +00:00
Csoregi Natalia 7543c5e82b Backed out changeset fb2f9cfe820d (bug 1716579) for valgrind bustage. CLOSED TREE 2021-06-17 19:40:08 +03:00
Jamie Nicol 801bf46280 Bug 1717028 - Fix webrender render target debug view. r=nical
Over time the render target debug view has accidentally started
displaying other texture cache textures too, and then not actually
showing render targets. This makes it show only render target textures
again, as intended.

Differential Revision: https://phabricator.services.mozilla.com/D118187
2021-06-17 15:12:47 +00:00
Jeff Muizelaar fc208a231c Bug 1712367. Avoid TexSubImage ES slow path. r=jgilbert,sotaro
Instead of drawing updates into the correct spot in the destination
DataSourceSurface we just use it as scratch space and always
draw in the top-left with stride = bpp*width.

We add a dstOffset to the upload functions to support using
a subsurface.

Differential Revision: https://phabricator.services.mozilla.com/D116501
2021-06-17 13:24:05 +00:00
Nicolas Silva 7dc5b1ba84 Bug 1716579 - Minimize memory usage of windows that haven't been rendered for a long time. r=gfx-reviewers,bradwerth
Differential Revision: https://phabricator.services.mozilla.com/D117918
2021-06-17 12:42:02 +00:00
Richal Verma 560f3f056d Bug 1713520 - Remove "else" after "return" in FindInflectionPoints r=nical
Differential Revision: https://phabricator.services.mozilla.com/D116436
2021-06-17 12:39:16 +00:00
Andi-Bogdan Postelnicu d844b7a2dd Bug 1617369 - Reformat recent rust changes with rustfmt r=necko-reviewers,webdriver-reviewers,kvark
Updated with rustfmt 1.4.36-stable (7de6968 2021-02-07)

Differential Revision: https://phabricator.services.mozilla.com/D117906
2021-06-17 11:00:22 +00:00
Andi-Bogdan Postelnicu f07c975367 Bug 1519636 - Reformat recent changes to the Google coding style. r=necko-reviewers,emilio
Updated with clang-format version 12.0.0 (taskcluster-FZRqPXamQIOU_i4hF0cAcg)

Differential Revision: https://phabricator.services.mozilla.com/D117905
2021-06-17 11:00:22 +00:00
Marian-Vasile Laza 6f84da746a Backed out 3 changesets (bug 1713715) for causing gtest failures in BlockingResourceBase.cpp
Backed out changeset 03158c35a264 (bug 1713715)
Backed out changeset a0be853c5042 (bug 1713715)
Backed out changeset 5785ea7b467a (bug 1713715)
2021-06-17 09:31:12 +03:00
Timothy Nikkel db959e6eb0 Bug 1713715. In gtest APZCGestureDetectorTester.DoubleTap make the apzc be for root content since we now redirect all double taps to root content. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D118118
2021-06-17 04:24:56 +00:00
Timothy Nikkel 5aebf369e5 Bug 1713715. Add test. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D116926
2021-06-17 04:24:55 +00:00
Timothy Nikkel 62fc5ece16 Bug 1713715. Redirect double tap gestures to the root content apzc. r=botond
This means that double tapping on an oop iframe "works" in that we don't try (and fail) to zoom the oop iframe. But it also means it is impossible to zoom to some content inside that oop iframe. Instead the best we can do is zoom to the oop iframe itself. This is consistent with what Chrome and Safari currently do. Allowing zooming to content inside an oop iframe would be decently complicated and it doesn't seem worth it. Bug 1715179 is on file for this.

Differential Revision: https://phabricator.services.mozilla.com/D116925
2021-06-17 04:24:55 +00:00
Butkovits Atila 1c6654d310 Backed out 2 changesets (bug 1713715) for causing failures at APZCGestureDetectorTester.DoubleTap. CLOSED TREE
Backed out changeset c16b427737b2 (bug 1713715)
Backed out changeset 2eec50a8d040 (bug 1713715)
2021-06-17 05:11:00 +03:00
Butkovits Atila 367d829107 Backed out changeset 318f32313091 (bug 1459526) for causing wrench bustages. CLOSED TREE 2021-06-17 04:45:11 +03:00
Jeff Gilbert 72024fcc23 Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman
+ Begin to add video tests to ensure we ratchet towards correctness.
+ Test rec709 x (yuv420p, yuv420p10, gbrp) x (tv, pc) x codecs.
+ Just mark fuzziness for now. Better would be e.g. 16_127_233 'bad
  references'.

Differential Revision: https://phabricator.services.mozilla.com/D115298
2021-06-17 01:12:18 +00:00
Timothy Nikkel 16d7003b40 Bug 1713715. Add test. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D116926
2021-06-16 23:15:38 +00:00
Timothy Nikkel a531bbe273 Bug 1713715. Redirect double tap gestures to the root content apzc. r=botond
This means that double tapping on an oop iframe "works" in that we don't try (and fail) to zoom the oop iframe. But it also means it is impossible to zoom to some content inside that oop iframe. Instead the best we can do is zoom to the oop iframe itself. This is consistent with what Chrome and Safari currently do. Allowing zooming to content inside an oop iframe would be decently complicated and it doesn't seem worth it. Bug 1715179 is on file for this.

Differential Revision: https://phabricator.services.mozilla.com/D116925
2021-06-16 23:15:37 +00:00
Jamie Nicol d42517233e Bug 1716794 - Allow partial picture cache tile invalidation on Mali-400. r=jrmuizel
Currently we prevent partial picture cache tile invalidation on all
Mali devices to workaround a driver bug. (See bug 1663355 and bug
1691955.) This driver bug affects some Mali-G and Mali-T devices, but
currently we apply the workaround for any Mali GPU.

Mali-400 may or may not be affected by the same driver bug, but since
it uses software webrender we certainly do not need to apply this
workaround.

Allowing partial invalidation should allow for smaller texture uploads.

Differential Revision: https://phabricator.services.mozilla.com/D118017
2021-06-16 15:31:27 +00:00
Glenn Watson 30f3df11fd Bug 1716695 - Add epsilon test for ScaleOffset keys in spatial node comparer r=gfx-reviewers,nical
The values in ScaleOffset keys for the spatial node comparer can
often have very small differences that are causing invalidations but
are not going to affect the rendered content in any noticeable way.

This is _probably_ mostly due to inaccuracies in the way we calculate
the results in get_relative_transform. Instead of using the fast
form parent.inverse().accumulate(child), we could instead traverse
the tree from the parent, accumulating the local transforms. This
would be slightly less efficient but could probably be cached.

There may also be other sources of floating point inaccuracy that
is introduced in the calculations, so for now we will ignore any changes
which have a scale/translation change of < 0.001.

Differential Revision: https://phabricator.services.mozilla.com/D117968
2021-06-16 08:11:27 +00:00
Glenn Watson aeec894c9d Bug 1716483 - Dynamically adjust tile raster scale for low-quality pinch zoom mode r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117735
2021-06-16 00:17:14 +00:00
Nicolas Silva 5249683cb0 Bug 1716395 - Expose depth targets memory in the profiler HUD. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117895
2021-06-15 21:25:55 +00:00
Nicolas Silva 2f02416f74 Bug 1716395 - Reorder the profile counters. r=gfx-reviewers,gw
Only a cosmetic change. There is a check during initialization that the constants match the sequential order so little room for getting it wrong.

Differential Revision: https://phabricator.services.mozilla.com/D117702
2021-06-15 21:25:55 +00:00
Nicolas Silva 6fd5f44b39 Bug 1716395 - Break texture memory down into categories in memory reports. r=gfx-reviewers,jrmuizel
Also expose the information in the profiler HUD and rename some counters to make it more apparent when specific to the atlases as opposed to other textures managed by the texture cache.

Differential Revision: https://phabricator.services.mozilla.com/D117695
2021-06-15 21:25:54 +00:00
Jeff Muizelaar a7817816b7 Bug 1716559 - Remove TextureImageEGL. r=jnicol,jgilbert
TextureImageEGL doesn't seem to provide any value beyond
BasicTextureImage. It's last usage was bug 814159.

Removing this has the side effect of using BasicTextureImage
for small images instead of always using TilingTextureImage.

Differential Revision: https://phabricator.services.mozilla.com/D117904
2021-06-15 21:10:47 +00:00
Andrew Halberstadt 7a16af4434 Bug 1700781 - Skip failing mochitest-plain tests with fission + xorigin, r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D117704
2021-06-15 18:24:18 +00:00
Sandor Molnar 0a290a2d13 Backed out changeset bd9776af79de (bug 1716029) for causing reftest failures. CLOSED TREE 2021-06-15 21:08:06 +03:00
Jonathan Kew 5820669ad6 Bug 1716117 - Build SkiaPDF with harfbuzz subsetting, and eliminate use of sfntly. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117586
2021-06-15 16:45:30 +00:00
Jonathan Kew 3050aa82c8 Bug 1716029 - Shape numeric runs in Arabic or Hebrew with RTL buffer directionality, so that OpenType rules will process glyphs in logical order. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D117910
2021-06-15 16:44:50 +00:00
Jonathan Kew 758d22f014 Bug 1716433 - Create a pref to determine whether Windows font substitutes are applied always, or only as fallback for unavailable fonts. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D117890
2021-06-15 16:44:24 +00:00
Andrew Osmond d7e8883fcb Bug 1715524 - Make FilterNodeComponentTransferSoftware::GenerateLookupTable identify table dynamic. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117542
2021-06-15 14:59:56 +00:00
Alexandru Michis 294f10eff7 Backed out 2 changesets (bug 1716395) for causing webrender bustages.
CLOSED TREE

Backed out changeset 2c22d2c47e18 (bug 1716395)
Backed out changeset d6bea50c4cce (bug 1716395)
2021-06-15 18:24:07 +03:00
Nicolas Silva 94b4094355 Bug 1716395 - Reorder the profile counters. r=gfx-reviewers,gw
Only a cosmetic change. There is a check during initialization that the constants match the sequential order so little room for getting it wrong.

Differential Revision: https://phabricator.services.mozilla.com/D117702
2021-06-15 10:06:06 +00:00
Nicolas Silva 5d4830c05e Bug 1716395 - Break texture memory down into categories in memory reports. r=gfx-reviewers,jrmuizel
Also expose the information in the profiler HUD and rename some counters to make it more apparent when specific to the atlases as opposed to other textures mamanged by the texture cache.

Differential Revision: https://phabricator.services.mozilla.com/D117695
2021-06-15 10:06:06 +00:00
dev 843237c570 Bug 1716465 - Surfaces are invalidated in low quality pinch-zoom mode if compositor scale changes. r=gfx-reviewers,lsalzman
Ensure that we only invalidate tiles if the surface scale changes
in low-quality pinch zoom mode, since it's irrelevant if the
compositor surface scale changes.

Differential Revision: https://phabricator.services.mozilla.com/D117727
2021-06-15 10:04:28 +00:00
Hiroyuki Ikezoe 3faa6fa27a Bug 1709460 - Try to initialize a displayport base for OOP iframe's root scroller with its visible rect. r=tnikkel
In the same manner what we initialize a diplayport base for top level contents.

Differential Revision: https://phabricator.services.mozilla.com/D116576
2021-06-15 01:49:32 +00:00
Lee Salzman bd25bb5370 Bug 1714511 - use vqmovun_s16 for packing pixels. r=sotaro
vqmovn_u16 is very different semantically then _mm_packus_epi16. _mm_packus_epi16 treats the input as signed 16-bit integers and narrows to unsigned 8-bit.
vqmovn_u16, however, is an unsigned to unsigned narrow. vqmovun_s16 does what we actually need here, which is to treated the input as signed 16-bit and narrow to unsigned 8-bit.

Differential Revision: https://phabricator.services.mozilla.com/D117705
2021-06-15 01:32:36 +00:00
Matt Woodrow 14a6394257 Bug 1714596 - Don't try to create a temporary DrawTarget for zero-sized blend modes. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117592
2021-06-14 23:46:59 +00:00
Matt Woodrow 6088072b46 Bug 1678102 - Store the set of pending transactions in ClientLayerManager, to ensure we clear all of them during Destroy. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D117588
2021-06-14 23:43:21 +00:00
Timothy Nikkel 5a68c238f5 Bug 1700247. Add test. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D117584
2021-06-14 22:37:35 +00:00
Timothy Nikkel 38d7ba31ed Bug 1700247. Allow pinch zooming over an oopif to work. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D109449
2021-06-14 22:37:34 +00:00
sotaro d2f29f94be Bug 1715953 - Add flush DrawTarget r=lsalzman,gfx-reviewers
Needs to call flush DrawTarget to apply pending updates.

Differential Revision: https://phabricator.services.mozilla.com/D117628
2021-06-14 22:34:49 +00:00
Noemi Erli 4ed44ac8ab Backed out 2 changesets (bug 1716395, bug 1716317) for causing webrender bustages CLOSED TREE
Backed out changeset d0526849e7c3 (bug 1716317)
Backed out changeset 0693eb0f1e49 (bug 1716395)
2021-06-15 01:26:00 +03:00
Nicolas Silva 2c5fbaa287 Bug 1716317 - Reorder the profile counters. r=gfx-reviewers,gw
Only a cosmetic change. There is a check during initialization that the constants match the sequential order so little room for getting it wrong.

Differential Revision: https://phabricator.services.mozilla.com/D117702
2021-06-14 21:30:01 +00:00
Nicolas Silva c38415f653 Bug 1716395 - Break texture memory down into categories in memory reports. r=gfx-reviewers,jrmuizel
Also expose the information in the profiler HUD and rename some counters to make it more apparent when specific to the atlases as opposed to other textures mamanged by the texture cache.

Differential Revision: https://phabricator.services.mozilla.com/D117695
2021-06-14 21:30:00 +00:00
Glenn Watson 786dd59014 Bug 1715935 - Add experimental low quality pinch-zoom mode. r=gfx-reviewers,kvark
Building on previous patches, this adds a preference to enable
a low quality pinch-zoom mode that reuses cached tiles where
possible.

It doesn't currently redraw at the higher quality scale at the
end of a pinch-zoom, and there are some sampling artifacts in some
cases. However, it should be enough to do some performance testing
on low and devices and see if it helps.

Differential Revision: https://phabricator.services.mozilla.com/D117497
2021-06-14 20:40:21 +00:00
dev 75305aaa76 Bug 1674412 - Fix intermittent rounding accuracy bug. r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D117616
2021-06-14 20:12:09 +00:00
Jonathan Kew 604ee10a9b Bug 1714762 - patch 2 - Add Noto symbol fonts to "common fallbacks" on Linux. r=lsalzman
Depends on D117666

Differential Revision: https://phabricator.services.mozilla.com/D117667
2021-06-14 17:09:21 +00:00
Jonathan Kew 04da370178 Bug 1714762 - patch 1 - Don't use asynchronous font fallback in the parent process, to avoid glitches in UI rendering. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D117666
2021-06-14 17:09:21 +00:00
Jonathan Kew 553fdd24fc Bug 1711479 - Support various metrics (not only ex-height) as the basis for font-size-adjust calculations in the gfx font implementations. r=layout-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D115211
2021-06-14 12:32:37 +00:00
Jonathan Kew 00a8f91ec3 Bug 1711479 - Implement CSS support for the optional adjustment-basis metric keywords for the font-size-adjust property (enabled on Nightly only for now). r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D115596
2021-06-14 12:32:36 +00:00
Mats Palmgren ee53823e0f Bug 1542807 part 6 - Update test expectations and fix tests that unintentionally depend on bullet ::marker font metrics. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D111696
2021-06-14 01:22:07 +00:00
Jeff Muizelaar fe448c9648 Bug 1711142. Limit the maximum size we allow for masks. r=mattwoodrow
Although blob images let us support very large images, it's easiest
avoid things getting way too big by just reusing our existing limit.

Differential Revision: https://phabricator.services.mozilla.com/D117580
2021-06-12 14:59:11 +00:00
Butkovits Atila ed3da455ae Backed out 7 changesets (bug 1542807) for causing failures at inert-retargeting-iframe.tentative.html. CLOSED TREE
Backed out changeset e9ef32fa2f2e (bug 1542807)
Backed out changeset 8fa0cb199975 (bug 1542807)
Backed out changeset 38daf64afe59 (bug 1542807)
Backed out changeset e3aee052c495 (bug 1542807)
Backed out changeset a71056d4c7cc (bug 1542807)
Backed out changeset cf91e7d0a37f (bug 1542807)
Backed out changeset eee949e5fd67 (bug 1542807)
2021-06-12 01:38:25 +03:00
Mats Palmgren 0b9e531f56 Bug 1542807 part 6 - Update test expectations and fix tests that unintentionally depend on bullet ::marker font metrics. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D111696
2021-06-11 18:10:40 +00:00
Nicolas Silva 2be01aafa4 Bug 1711648 - Move LayoutRect to the Box2D representation. r=jrmuizel.
Differential Revision: https://phabricator.services.mozilla.com/D117293
2021-06-11 13:33:10 +00:00
Nicolas Silva 8c3cb30358 Bug 1711648 - Move RasterRect to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117292
2021-06-11 13:33:09 +00:00
Nicolas Silva 2fd526f0b1 Bug 1711648 - Move TileRange to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117291
2021-06-11 13:33:09 +00:00
Nicolas Silva 4336044ca3 Bug 1711648 - Move TileRect to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117290
2021-06-11 13:33:08 +00:00
Nicolas Silva 724b80d537 Bug 1711648 - Move PictureRect to the endpoint representation. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116825
2021-06-11 13:33:08 +00:00
Nicolas Silva 1e02b75f51 Bug 1711648 - Move some space conversion utilities from rect to box. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116734
2021-06-11 13:33:07 +00:00
Andrew Osmond 805d9ce3e3 Bug 1715902 - Refuse WebRender on Linux if backed by software driver. r=jrmuizel
Reject software rasterizers on Linux (except Software WebRender) when
trying to create full WebRender, unless WebRender was force enabled.

Differential Revision: https://phabricator.services.mozilla.com/D117534
2021-06-11 13:15:17 +00:00
Dorel Luca 2190a59721 Backed out changeset c30c8b8dc0b5 (bug 1715902) on Dev's request. CLOSED TREE 2021-06-11 15:48:11 +03:00
Andrew Osmond 330727f6e8 Bug 1715902 - Refuse WebRender on Linux if backed by software driver. r=jrmuizel
When trying to create a GLContextEGL or GLContextGLX, we should check to
see what our display is backed by. If using a software driver, we should
fail to create the context for WebRender, so that it can fallback to
Software WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D117473
2021-06-11 12:16:36 +00:00
Glenn Watson 38119d0d9d Bug 1715663 - Remove fractional device offset invalidation r=gfx-reviewers,aosmond
Now that picture cache tiles establish raster roots, we can
separate the tile (compositor surface) transform from the local
transform of the tile.

This means we no longer need to check and invalidate tiles if a
fractional device space position is set (we can either round to
a device pixel in the compositor transform, or supply a fractional
translation to the compositor and allow it to handle it).

Differential Revision: https://phabricator.services.mozilla.com/D117378
2021-06-11 02:53:15 +00:00
Jonathan Kew 1783995b68 Bug 1714543 - Handle possible DWrite failures better when enumerating available fonts. r=lsalzman
I haven't been able to reproduce the issue here locally and test this directly, but according to
the reporter a build with this patch works for them.

My guess is that perhaps IDWriteLocalizedStrings::GetLocaleName has been returning a failure result,
causing us to drop the relevant font from the list altogether. We can handle that better by still
including the font, even if we're unsure which name matches the system locale.

This patch also adds a few gfxWarning() messages in places where we really don't expect things
to fail, but if they do, it might help us understand why fonts fail to appear.

Differential Revision: https://phabricator.services.mozilla.com/D117406
2021-06-10 16:21:27 +00:00
Jonathan Kew 74aef88b56 Bug 1664151 - Drop FC_CHARSET element from fontconfig patterns for TrueType/OpenType fonts, as we will read the cmap directly anyhow. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D117423
2021-06-10 16:13:39 +00:00
Robert Mader 0346222f4b Bug 1714326 - Cache more Wayland surface state, r=gfx-reviewers,aosmond
In order to avoid system compositor and wire overhead.
Also make more internals of `NativeSurfaceWayland` private.

Depends on D116675

Differential Revision: https://phabricator.services.mozilla.com/D116721
2021-06-10 15:12:55 +00:00
Robert Mader 18b6f28c4f Bug 1714326 - Cleanups and overhead reductions, r=gfx-reviewers,aosmond
Do not reorder subsurfaces if not necessary and remove some dead
code.

Depends on D116026

Differential Revision: https://phabricator.services.mozilla.com/D116675
2021-06-10 15:12:55 +00:00
Robert Mader 76692c1a43 Bug 1711244 - Integrate NativeLayerWayland with WaylandVsyncSource, r=stransky,gfx-reviewers,jrmuizel
Make the vsync source request frame callbacks from opaque native
layers. This is necessary as opaque layers may occlude the
MozContainer surface, which is normally used for frame callbacks.
Wayland compositors may (and are encouraged to) optimize away
such callbacks, so we need to make sure to request frame callbacks
from actually visible surfaces.

Callbacks are requested for all layers, but only the first callback
will trigger the vsync source.
In order to get this right concerning multiple requested callbacks,
possibly being called from different threads etc., introduce a
callback abstraction, `CallbackMultiplexHelper`, to make this simple
to handle for callers.

Differential Revision: https://phabricator.services.mozilla.com/D116026
2021-06-10 15:12:54 +00:00
Alexandru Michis b9be72a526 Backed out 6 changesets (bug 1711648) for causing crashes in FrameBuilder.
CLOSED TREE

Backed out changeset 0384828b36cc (bug 1711648)
Backed out changeset 15d8e0d681ef (bug 1711648)
Backed out changeset b27d8421ebc5 (bug 1711648)
Backed out changeset 12da58f4ac4f (bug 1711648)
Backed out changeset 1d4c0b685f0e (bug 1711648)
Backed out changeset 367235e897e3 (bug 1711648)
2021-06-10 18:28:27 +03:00
Jamie Nicol 600f6b0328 Bug 1715746 - Work around Adreno shader compilation crash. r=jrmuizel
On certain adreno devices we encountered frequent driver crashes
during glLinkProgram. The crash appears to be caused by a combination
of compiling a shader with some GLSL code the driver doesn't like,
compiling shaders concurrently in multiple threads (eg webrender's
renderer thread and Fenix's Android UI render thread), and said
threads having a certain stack address.

Specifically, the GLSL code the driver doesn't like is a vector
bitwise-and followed by a conversion to bvec, which occurs in many of
webrender's shaders.

While we have control over webrender's renderer thread, we are unable
to synchronize with or control the stack address of the UI render
thread. Fortunately, we can rewrite the GLSL code to use scalar
bitwise-ands, therefore avoiding the crash.

Differential Revision: https://phabricator.services.mozilla.com/D117427
2021-06-10 14:22:30 +00:00
Nicolas Silva 69c80ddaa7 Bug 1711648 - Move LayoutRect to the Box2D representation. r=jrmuizel.
Differential Revision: https://phabricator.services.mozilla.com/D117293
2021-06-10 13:07:34 +00:00
Nicolas Silva 8ab34fbadf Bug 1711648 - Move RasterRect to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117292
2021-06-10 13:07:33 +00:00
Nicolas Silva 0acbbeea63 Bug 1711648 - Move TileRange to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117291
2021-06-10 13:07:33 +00:00
Nicolas Silva c3737b114f Bug 1711648 - Move TileRect to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117290
2021-06-10 13:07:33 +00:00
Nicolas Silva 9584d0be6a Bug 1711648 - Move PictureRect to the endpoint representation. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116825
2021-06-10 13:07:32 +00:00
Nicolas Silva 315d86d6a0 Bug 1711648 - Move some space conversion utilities from rect to box. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116734
2021-06-10 13:07:32 +00:00
Marian-Vasile Laza 5dc1a42e67 Backed out 6 changesets (bug 1711648) for causing build bustages.
CLOSED TREE

Backed out changeset a803c960b909 (bug 1711648)
Backed out changeset d07c38d536c5 (bug 1711648)
Backed out changeset 823b75fc8c3c (bug 1711648)
Backed out changeset 602a2bcc5e29 (bug 1711648)
Backed out changeset 99ce7c7e458d (bug 1711648)
Backed out changeset bdbc65799b8a (bug 1711648)
2021-06-10 12:25:48 +03:00
Nicolas Silva 6cdbec834a Bug 1711648 - Move LayoutRect to the Box2D representation. r=jrmuizel.
Differential Revision: https://phabricator.services.mozilla.com/D117293
2021-06-10 08:08:07 +00:00
Nicolas Silva 9e22c414c2 Bug 1711648 - Move RasterRect to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117292
2021-06-10 08:08:06 +00:00
Nicolas Silva 23ed6454cf Bug 1711648 - Move TileRange to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117291
2021-06-10 08:08:06 +00:00
Nicolas Silva 32d212aa1f Bug 1711648 - Move TileRect to the Box2D representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117290
2021-06-10 08:08:06 +00:00
Nicolas Silva 46f8718626 Bug 1711648 - Move PictureRect to the endpoint representation. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116825
2021-06-10 08:08:05 +00:00
Nicolas Silva 6cf82a217d Bug 1711648 - Move some space conversion utilities from rect to box. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116734
2021-06-10 08:08:05 +00:00
Andrew Osmond 3d3e5f6c3f Bug 1715335 - Part 1. Add annotations for reftest-snapshot. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D117236
2021-06-10 02:48:39 +00:00
Glenn Watson adb325ac13 Bug 1714275 - Establish raster roots for picture cache tiles. r=gfx-reviewers,kvark
This will allow us to select either rasterizing the tiles with a
scale factor of 1.0 (for high performance mode) or at the current
scale of the pinch-zoom (for high quality mode).

Differential Revision: https://phabricator.services.mozilla.com/D116796
2021-06-09 21:41:01 +00:00
Emilio Cobos Álvarez 1d8580b535 Bug 1699837 - Use a few more typed units in CrossProcessPaint. r=mattwoodrow
This is just cleanup while I was looking at why the test still fails
sometimes locally even with my patch. It is a bit racy because
BrowserChild's visible rect is not set by the time we do the
cross-process paint, so we clip everything...

This doesn't affect users and I have some upcoming PTO though, so will
look into it when I'm back.

Differential Revision: https://phabricator.services.mozilla.com/D116924
2021-06-09 14:11:22 +00:00
Nazım Can Altınova 9c536ede95 Bug 1690624 - Replace the old profiler thread registration FFIs with the new API in webrender r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116516
2021-06-09 11:22:55 +00:00
Nazım Can Altınova 5bcc4d95af Bug 1690624 - Add profiler rust API for thread registration/unregistration r=gerald,emilio
Differential Revision: https://phabricator.services.mozilla.com/D116515
2021-06-09 11:22:55 +00:00
Jamie Nicol 4fdb81d73c Bug 1715058 - Disable annotation of draw call crashes. r=gfx-reviewers,gw
These annotations were useful for fixing crashes without known steps
to reproduce in the past, but the frequency of setting and unsetting
the annotations has a measurable impact on performance. This patch
therefore disables the annotations, but keeps the code behind a flag
so that it can easily be enabled if required for a future bug.

Differential Revision: https://phabricator.services.mozilla.com/D117152
2021-06-09 07:36:51 +00:00
Nika Layzell 1aaeb179e2 Bug 1715144 - Part 1: Stop adding /ipc/glue to LOCAL_INCLUDES when including chromium-config.mozbuild, r=ipc-reviewers,necko-reviewers,mccr8,valentin
Differential Revision: https://phabricator.services.mozilla.com/D117103
2021-06-09 04:56:48 +00:00
Glenn Watson e6042f6db1 Bug 1715194 - Fix tiled clip image masks + raster roots. r=gfx-reviewers,lsalzman
Ensure that tiled image clip masks are calculated relative to the
raster root, not world space. Add a regression test for this.

Differential Revision: https://phabricator.services.mozilla.com/D117122
2021-06-08 23:31:03 +00:00
Glenn Watson 3fdf1332fe Bug 1697558 - Fix mix-blend readbacks from raster roots. r=gfx-reviewers,lsalzman
Picture cache code was using final device-space rect instead of the
actual raster rect when determining the readback coordinates for
mix-blend-mode effects. These are equivalent in most cases, but can
be different _if_ the picture cache is also establishing a raster root.

Differential Revision: https://phabricator.services.mozilla.com/D117113
2021-06-08 22:37:29 +00:00
Andrew Osmond a58e7ef933 Bug 1715132 - Ignore the blocklist for Software WebRender on desktop. r=jrmuizel
We still need the blocklist to control rollout on Android, but on
desktop, we should be shipping Software WebRender to all users, except
those in safe mode or whom have explicitly disabled WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D117088
2021-06-08 16:07:57 +00:00
Jamie Nicol f951f07256 Bug 1712290 - Rebind VAO after VBO has been orphaned on Adreno 3xx. r=gfx-reviewers,nical
Prior to making a draw call, we orphan the instance data VBO and
upload the new instance data in to the new buffer. In cases where the
new buffer is the same size as a previous one (as is the case when
compositing picture cache tiles), the Adreno 3xx driver gets confused
an appears to use the old orphaned data for the draw call.

To work around this, manually unbind then rebind the VAO after the
instance VBO has been orphaned. This tricks the driver in to using the
new VBO.

Differential Revision: https://phabricator.services.mozilla.com/D117033
2021-06-08 09:43:43 +00:00
Nicolas Silva 2c48dba193 Bug 1711648 - Move all world rects to the endpoint representation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116733
2021-06-08 09:00:52 +00:00
Alexandru Michis aaaa86cfb3 Backed out changeset f070ec38d011 (bug 1715132) for causing valgrind bustages in webrender::renderer::upload::upload_to_texture_cache
CLOSED TREE
2021-06-08 03:29:59 +03:00
Andrew Osmond a0205e33dc Bug 1715132 - Ignore the blocklist for Software WebRender on desktop. r=jrmuizel
We still need the blocklist to control rollout on Android, but on
desktop, we should be shipping Software WebRender to all users, except
those in safe mode or whom have explicitly disabled WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D117088
2021-06-07 21:30:15 +00:00
Glenn Watson 834c030225 Bug 1713544 - Introduce CompositorTransform and store CompositeTiles in local space. r=gfx-reviewers,lsalzman
Store CompositeTile instances in local space, and add support for compositor
transforms that can map local -> raster -> device space without access to the
spatial tree.

This is prep work for supporting picture cache tiles that are scaled by the
composite step during pinch-zoom, for low-end GPUs. Follow up patches will
port the native compositor surface and external descriptors to also work
in local space, converting to raster or device space on demand as required.

Differential Revision: https://phabricator.services.mozilla.com/D116331
2021-06-07 20:54:34 +00:00
Glenn Watson b1702fb2b0 Bug 1714502 - Add regression test for get_relative_scale_offset r=gfx-reviewers,nical
This will ensure that when we re-land bug #1713544, it contains
a fix for an assertion failure that occurs when two transforms
are complex, but combined result in a 2d transform that we can
handle as a compositor surface.

Differential Revision: https://phabricator.services.mozilla.com/D116961
2021-06-07 19:59:16 +00:00
Lee Salzman 79c2eb99d9 Bug 1712047 - keep Skia temporary data surface alive. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117037
2021-06-07 18:51:33 +00:00
Noemi Erli 50fcce3ed0 Backed out changeset 9e76c07577b1 (bug 1712047) for causing bustages in DrawTargetSkia.cpp CLOSED TREE 2021-06-07 19:50:30 +03:00
Lee Salzman 49f38d60fa Bug 1712047 - keep Skia temporary data surface alive. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D117037
2021-06-07 16:36:55 +00:00
Csoregi Natalia 1fa90cf8b2 Backed out 5 changesets (bug 1711479) for multiple failures e.g. test_css-properties-db.js. CLOSED TREE
Backed out changeset f1b19a0463cd (bug 1711479)
Backed out changeset 3d1d2b4a2713 (bug 1711479)
Backed out changeset 4e689776fe5d (bug 1711479)
Backed out changeset 85b6b2648f60 (bug 1711479)
Backed out changeset a15cec1f0554 (bug 1711479)
2021-06-07 13:55:29 +03:00
Jonathan Kew ddbc4e9bed Bug 1711479 - Support various metrics (not only ex-height) as the basis for font-size-adjust calculations in the gfx font implementations. r=layout-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D115211
2021-06-07 08:58:12 +00:00
Jonathan Kew 57c18282b4 Bug 1711479 - Implement CSS support for the optional adjustment-basis metric keywords for the font-size-adjust property (enabled on Nightly only for now). r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D115596
2021-06-07 08:58:12 +00:00
Kartikaya Gupta a568fde33e Bug 1714884 - Remove unused function. r=jrmuizel
Depends on D116947

Differential Revision: https://phabricator.services.mozilla.com/D116948
2021-06-07 01:01:09 +00:00
Jonathan Kew 489fe85732 Bug 1689379 - Try to reduce the chance of an apparent shutdown hang by bailing out of potentially-expensive font-list calls if the app is shutting down. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D116740
2021-06-06 21:24:44 +00:00
Jonathan Kew 2f1aa020c3 Bug 1714282 - Handle bitmap font sizes in the shared font list on Linux. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D116874
2021-06-06 20:30:14 +00:00
Timothy Nikkel 546c57749e Bug 1710034. Choose a double tap rect for replaced elements that are not too tall that includes their full height, not just their width. r=emilio
We always attempt to zoom to the width of the element we double tap on, cutting off the top/bottom of the element if necessary. For elements that contain text that are relatively quite tall this is good. But for things like images which are not really that tall, but just happen to have a taller aspect ratio then the viewport it is not ideal.

Differential Revision: https://phabricator.services.mozilla.com/D114582
2021-06-06 04:11:29 +00:00
Jeff Muizelaar cc7145951e Bug 1712195. Use SafeIntersect. r=aosmond
This uses the new SafeIntersect function
to avoid empty rects that overflow from leaking
through.

Differential Revision: https://phabricator.services.mozilla.com/D116621
2021-06-04 12:35:42 +00:00
Timothy Nikkel 8e646afb74 Bug 1713584. Add test. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D116546
2021-06-04 11:07:03 +00:00
Timothy Nikkel 281336f2cf Bug 1713584. In calculating if a rect is zoomed in shift the rect and the composited area to a common origin. r=botond,emilio
I think I see why now the 90% check of bug 1707560 was there, to prevent situations like this. But that bug fixed a real problem so we want to make a forward fix of this issue.

The problem happens when we take a tall element and change our rect to have the same aspect ratio as the composited area. We center the new rect on the tap point, so unless the cursor is in he center of the screen the new rect will be out of the composited area. This is fine if we actually zoom, but if we are already zoomed it will just result in scrolling, which we do not want. We want to zoom out in this situation.

Since ZoomToRect performs any scrolling and zooming to zoom to the rect we can just do that scrolling ourselves and give the two rects a common origin and then decide if we are already zoomed in as far as we can for this tap point.

Differential Revision: https://phabricator.services.mozilla.com/D116367
2021-06-04 11:07:03 +00:00
Butkovits Atila f33a041df5 Backed out changeset 5452bb0b5363 (bug 1713544) as requested by Glenn. CLOSED TREE 2021-06-04 10:33:14 +03:00
Timothy Nikkel 1539d9bef8 Bug 1713908. Re-enable gfx/layers/apz/test/mochitest/browser_test_select_popup_position.js for fission. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D116797
2021-06-04 04:30:37 +00:00
Robert Mader 1dbe34f5cc Bug 1711244 - Register native layers for GDK frame callbacks,
Analogous to D102835 we need to make GDK aware of opaque surfaces
so frame callbacks get emitted for these surfaces as well. Otherwise
GDK may get stuck waiting on callbacks when used on compositors
that don't emit callbacks for occluded surfaces (which is explicitly
encouraged by the Wayland spec).

GDK runs on the main thread, so we need to dispatch these action
to the main thread as well.

Differential Revision: https://phabricator.services.mozilla.com/D116747
2021-06-03 17:42:29 +00:00
Dzmitry Malyshau e6cefd8df1 Bug 1713179 - Update wgpu to eadaa1b7d8f585761e28445904fe619b180aca0d r=jimb
Includes a number of correctness fixes.
Also, optimizes resource tracking for cases like the Animometer benchmark.

Differential Revision: https://phabricator.services.mozilla.com/D116491
2021-06-03 17:09:01 +00:00
Narcis Beleuzu 1c1dfcf888 Backed out changeset 37aeebaea4bb (bug 1711244) for clang bustages on NativeLayerWayland.cpp . CLOSED TREE 2021-06-03 20:11:32 +03:00
Robert Mader f7b6df5c89 Bug 1711244 - Register native layers for GDK frame callbacks,
Analogous to D102835 we need to make GDK aware of opaque surfaces
so frame callbacks get emitted for these surfaces as well. Otherwise
GDK may get stuck waiting on callbacks when used on compositors
that don't emit callbacks for occluded surfaces (which is explicitly
encouraged by the Wayland spec).

GDK runs on the main thread, so we need to dispatch these action
to the main thread as well.

Differential Revision: https://phabricator.services.mozilla.com/D116722
2021-06-03 14:46:48 +00:00
Jonathan Kew 0e98585b83 Bug 1711064 - Cherry-pick fix from upstream cairo to resolve missing objects in generated PDF's xref table. r=jrmuizel
See https://gitlab.freedesktop.org/cairo/cairo/-/issues/487 for details. This was merged upstream in
2edcb1ac23;

Differential Revision: https://phabricator.services.mozilla.com/D116694
2021-06-03 13:23:43 +00:00
Timothy Nikkel 632a18be52 Bug 1713589. If the double tap default zoom in pref is 1 make sure to fully disable the functionality. r=botond
And then use this to disable the default zoom in in a couple of tests. The tablecell test specifically checks that we don't zoom in on tablecells. The hscrollable test checks that we don't scroll when double tapping and it would like to zoom out.

Differential Revision: https://phabricator.services.mozilla.com/D116457
2021-06-03 09:51:51 +00:00
Timothy Nikkel d9bcfd9074 Bug 1713589. Add test. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D116371
2021-06-03 09:51:51 +00:00
Timothy Nikkel 973c15735b Bug 1713589. If double tap zoom can't find a rect to zoom in to and we are zoomed out then zoom in some small default amount. r=botond
This provides feedback to the user, otherwise nothing happens and the user doesn't know if their input was accepted or not. This matches what Chrome does.

We add a new flag for ZoomToRect that only double tap uses. We also need to add the cursor position to the ZoomTarget struct as that is what we will be zooming in on. (CalculateRectToZoomTo has a little bit of refactoring to calculate this point sooner and without an intermediate variable.)

The rest of the patch is some logic in ZoomToRect to decide when to do this, and some math to compute the zoom to rect (which is similar to the zoom out code).

Differential Revision: https://phabricator.services.mozilla.com/D116370
2021-06-03 09:51:50 +00:00
Botond Ballo b5cdb22dd5 Bug 1712726 - Part 4: Add a test to check that wheel handoff works correctly after the direction of scrolling is reversed. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D116649
2021-06-03 04:50:42 +00:00
Bas Schouten bb69df895f Bug 1712726 - Part 2: Do not end a mouse wheel transaction instantly when there is no scrollable element. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D116425
2021-06-03 03:00:20 +00:00
Brindusan Cristian 795840b700 Backed out changeset 0470fbe7cb5c (bug 1712726) for causing GTest failures.
CLOSED TREE
2021-06-03 05:49:22 +03:00
Alexandru Michis 1fb67b4c20 Backed out 3 changesets (bug 1712726) for causing mochitest plain failures in test_coalesce_mousewheel.html
CLOSED TREE

Backed out changeset 52dd9f9ddded (bug 1712726)
Backed out changeset 98052e01cacd (bug 1712726)
Backed out changeset 2a7d13d97415 (bug 1712726)
2021-06-03 03:33:06 +03:00
Botond Ballo 23d958405b Bug 1712726 - Part 4: Add a test to check that wheel handoff works correctly after the direction of scrolling is reversed. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D116649
2021-06-03 00:24:12 +00:00
Bas Schouten 17903265ec Bug 1712726 - Part 2: Do not end a mouse wheel transaction instantly when there is no scrollable element. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D116425
2021-06-02 23:42:30 +00:00
Glenn Watson 789bc7cc92 Bug 1713544 - Introduce CompositorTransform and store CompositeTiles in local space. r=gfx-reviewers,lsalzman
Store CompositeTile instances in local space, and add support for compositor
transforms that can map local -> raster -> device space without access to the
spatial tree.

This is prep work for supporting picture cache tiles that are scaled by the
composite step during pinch-zoom, for low-end GPUs. Follow up patches will
port the native compositor surface and external descriptors to also work
in local space, converting to raster or device space on demand as required.

Differential Revision: https://phabricator.services.mozilla.com/D116331
2021-06-02 21:15:03 +00:00
Brindusan Cristian 1de84dbd79 Backed out changeset 7ce1b7de9a7c (bug 1713544) for causing wrench bustages.
CLOSED TREE
2021-06-02 23:13:53 +03:00
Glenn Watson 55d8194fb2 Bug 1713544 - Introduce CompositorTransform and store CompositeTiles in local space. r=gfx-reviewers,lsalzman
Store CompositeTile instances in local space, and add support for compositor
transforms that can map local -> raster -> device space without access to the
spatial tree.

This is prep work for supporting picture cache tiles that are scaled by the
composite step during pinch-zoom, for low-end GPUs. Follow up patches will
port the native compositor surface and external descriptors to also work
in local space, converting to raster or device space on demand as required.

Differential Revision: https://phabricator.services.mozilla.com/D116331
2021-06-02 19:49:26 +00:00
Andrew Halberstadt f84d5f3016 Bug 1694824 - [ci] Annotate browser-chrome manifests for new fission failures, r=jmaher,extension-reviewers,preferences-reviewers,zombie
Differential Revision: https://phabricator.services.mozilla.com/D116276
2021-06-02 19:22:25 +00:00
Jeff Muizelaar 6648dc280c Bug 1714081 - Add SafeIntersect. r=nical
SafeIntersect handles overflow better.

Differential Revision: https://phabricator.services.mozilla.com/D116605
2021-06-02 16:02:53 +00:00
Jeff Muizelaar 6826ec4fff Bug 1713486. Fix per context swgl memory reporting. r=lsalzman
This passes the swgl context down from the renderer
instead of using the current context. This ensures
we report all of the contexts and don't double report.

Differential Revision: https://phabricator.services.mozilla.com/D116474
2021-06-02 15:40:46 +00:00
Andi-Bogdan Postelnicu 2f7a751cd0 Bug 1707096 - fix the build for `clang-trunk`. r=jfkthame
With D100581 LLVM added support for -Wunused-but-set-parameter and -Wunused-but-set-variable.
1. we shouldn't treat these warning as errors
2. for harfbuzz we apply a patch that has also been upstreamed, #2995, since pragma directives are somehow borken in clang vs gcc.

Differential Revision: https://phabricator.services.mozilla.com/D116604
2021-06-02 14:38:01 +00:00
Nicolas Silva fd03e01f61 Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116401
2021-06-02 12:47:03 +00:00
Nicolas Silva be0eb5fbfc Bug 1711648 - Update euclid to 0.22.6. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116266
2021-06-02 12:47:02 +00:00
Csoregi Natalia fb7cb8d3fc Backed out changeset 1e39147271cc (bug 1713486) for webrender bustage on webrender\src\device\gl.rs. CLOSED TREE 2021-06-02 16:08:43 +03:00
Jeff Muizelaar 028b1b87f1 Bug 1713486. Fix per context swgl memory reporting. r=lsalzman
This passes the swgl context down from the renderer
instead of using the current context. This ensures
we report all of the contexts and don't double report.

Differential Revision: https://phabricator.services.mozilla.com/D116474
2021-06-02 12:32:24 +00:00
Csoregi Natalia 511356a7c1 Backed out 3 changesets (bug 1713544, bug 1711648) for valgrind failures. CLOSED TREE
Backed out changeset 9449ea40b4fd (bug 1713544)
Backed out changeset 3d51bfaa0d8d (bug 1711648)
Backed out changeset c6c83dc97cbb (bug 1711648)
2021-06-02 10:43:16 +03:00
Timothy Nikkel 0bd0d1de0d Bug 1713586. Move the clamping of the target zoom value in AsyncPanZoomController::ZoomToRect after some code which can change it. r=botond
This is a slight behaviour change but should be more correct.

Differential Revision: https://phabricator.services.mozilla.com/D116369
2021-06-02 04:10:47 +00:00
Timothy Nikkel b98af9b7f8 Bug 1713586. Move zoom out calculation in AsyncPanZoomController::ZoomToRect after code to calculate zoom in non-zoom out case so we don't need to duplicate calling endZoomToMetrics.SetZoom and calculating sizeAfterZoom. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D116368
2021-06-02 04:10:46 +00:00
Kartikaya Gupta 96e8598f1e Bug 1706195 - Extract a getLastApzcTree helper function. r=hiro
Depends on D116532

Differential Revision: https://phabricator.services.mozilla.com/D116533
2021-06-02 01:16:43 +00:00
Kartikaya Gupta 2e825b4b24 Bug 1706195 - Drop requirePaints argument in test helper. r=hiro
Even if requirePaints is false, we still index into the APZ test
data using paints.length - 1 and use those data structures
unconditionally. Therefore the code still requires a paint either
way in order to not throw an exception.

Depends on D116531

Differential Revision: https://phabricator.services.mozilla.com/D116532
2021-06-02 01:16:43 +00:00
Kartikaya Gupta 92836b4211 Bug 1706195 - Extract a parsePoint helper function. r=hiro
The helper function will parse both (1, 2) as well as (x=1, y=2)
strings, similarly to how parseRect works.

Differential Revision: https://phabricator.services.mozilla.com/D116531
2021-06-02 01:16:43 +00:00
Glenn Watson 2958e77bf9 Bug 1713544 - Introduce CompositorTransform and store CompositeTiles in local space. r=gfx-reviewers,lsalzman
Store CompositeTile instances in local space, and add support for compositor
transforms that can map local -> raster -> device space without access to the
spatial tree.

This is prep work for supporting picture cache tiles that are scaled by the
composite step during pinch-zoom, for low-end GPUs. Follow up patches will
port the native compositor surface and external descriptors to also work
in local space, converting to raster or device space on demand as required.

Differential Revision: https://phabricator.services.mozilla.com/D116331
2021-06-02 00:46:03 +00:00
Robert Mader da50a756c0 Bug 1713468 - Support RenderCompositorEGL on X11-only builds,
Right now X11-only builds will use `RendenderCompositorOGL` with EGL,
which could lead to unexpected bugs that are hard to diagnose.

It also makes code harder to read if code in `MOZ_WAYLAND` blocks
is used by the X11 backend.

While on it, rename and reorder `PauseRemoteRenderer()` so it matches
its counterpart `MaybeResumeCompositor()` better.

Note: This revision was accepted in D116315 but some bug in lando
required a recreation.

Differential Revision: https://phabricator.services.mozilla.com/D116530
2021-06-01 23:55:28 +00:00
Nicolas Silva 2c30dfddef Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116401

Depends on D116266
2021-06-01 21:25:19 +00:00
Nicolas Silva 259f360733 Bug 1711648 - Update euclid to 0.22.6. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116266
2021-06-01 21:25:18 +00:00
Butkovits Atila 34ce52667e Backed out 2 changesets (bug 1711648) for causing wrench bustages. CLOSED TREE
Backed out changeset 7f1ae1fdd305 (bug 1711648)
Backed out changeset 71807d4e6302 (bug 1711648)
2021-06-02 01:28:29 +03:00
sotaro f8c8266fc1 Bug 1713734 - Make force-disable override gfx.webrender.all r=jrmuizel,aosmond,gfx-reviewers
force-disable was originally override other enabling prefs (gfx.webrender.enabled, gfx.webrender.all, and gfx.webrender.all.qualified). But it does not override gfx.webrender.software, since gfx.webrender.software is used for testing in CI.

Differential Revision: https://phabricator.services.mozilla.com/D116439
2021-06-01 22:03:10 +00:00
Nicolas Silva 7f7de00ea8 Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116401
2021-06-01 21:25:19 +00:00
Nicolas Silva 9ec5d6e05a Bug 1711648 - Update euclid to 0.22.6. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116266
2021-06-01 21:25:18 +00:00
Butkovits Atila 3af9a07178 Backed out 2 changesets (bug 1711648) for causing failures at grid-max-sizing-flex-002.html. CLOSED TREE
Backed out changeset 9cf4e612dbac (bug 1711648)
Backed out changeset 7d8bba559407 (bug 1711648)
2021-06-01 21:07:34 +03:00
Nicolas Silva 8aa37de340 Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116401
2021-06-01 16:30:36 +00:00
Nicolas Silva 162e431533 Bug 1711648 - Update euclid to 0.22.6. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116266
2021-06-01 16:30:35 +00:00
Hiroyuki Ikezoe ed2b8e554f Bug 1481923 - Fire a touchcancel event on contextmenu events only if our own context menu is opened on Android. r=botond
And don't fire the touchcancel event in the case where the content calls
preventDefault() for contextmenu events. This is going to be a behavior
change, but Chrome actually does fire a touchcancel event only if the Chrome's
context menu is opened, so this change will make our behavior match Chrome.

To tell whether our own context menu is opened or not, we use
mDefaultPreventedByChrome flag. Unfortunately this approach is applicable only
for Android since Android is the only one platform we call preventDefault() [1]
when opening context menu.

[1] https://searchfox.org/mozilla-central/rev/95c41d54c3fd65d51976d5188842a69b459a7589/mobile/android/actors/ContentDelegateChild.jsm#100

Differential Revision: https://phabricator.services.mozilla.com/D115964
2021-06-01 05:47:29 +00:00
Hiroyuki Ikezoe aafeee2434 Bug 1481923 - Make nsContentUtils::SendMouseEvent return the information where preventDefault() was called. r=masayuki
On a long press touch event we fire a contextmenu event and if the contextmenu
is opening, we fire a touchcancel event. Unfortunately we had been checking
the return value, nsEventStatus, from nsIWidget::DispatchInputEvent via
nsContentUtils::SendMouseEvent to tell whether the context menu is opening or
not. So, we unintentionally fire the touchcancel event if the context menu is
NOT going to be opened because of preventDefault() in a contextmenu event
listener in the content itself.

NOTE: The oparator<< for the new PreventDefaultResult enum will be used in
APZ logging code.

[1] https://searchfox.org/mozilla-central/rev/95c41d54c3fd65d51976d5188842a69b459a7589/mobile/android/actors/ContentDelegateChild.jsm#100

Differential Revision: https://phabricator.services.mozilla.com/D115963
2021-06-01 05:47:29 +00:00
Hiroyuki Ikezoe 28508f5d2c Bug 1708446 - Add a browser mochitest to make sure the jank notification works properly for popup windows in the browser process. r=boris,botond,sotaro
Differential Revision: https://phabricator.services.mozilla.com/D116186
2021-06-01 00:32:27 +00:00
sotaro 80c26656ec Bug 1708446 - Send NotifyJankedAnimations to WebRenderLayerManager in parent process r=hiro
NotifyJankedAnimations is not handled for WebRenderLayerManager in parent process.

Differential Revision: https://phabricator.services.mozilla.com/D115470
2021-06-01 00:17:17 +00:00
Kartikaya Gupta f1939bb3c0 Bug 1713485 - Remove code for completed migration. r=hiro
This is essentially dead-code removal. Since the GetNormalizedAppVersion()
now always returns 86, the value of the `migration` variable in
GetMouseWheelAnimationDurations() is always 100. And thus the function
always returns the unmodified minMS and maxMS values stored in the prefs.
We can therefore remove the function entirely and just use the pref
values directly in the callers.

Differential Revision: https://phabricator.services.mozilla.com/D116322
2021-05-31 21:36:36 +00:00
Kartikaya Gupta 2dfbd636b9 Bug 1694847 - Remove expired overshoot detector telemetry probe. r=botond
Depends on D116320

Differential Revision: https://phabricator.services.mozilla.com/D116321
2021-05-31 21:36:36 +00:00
Kartikaya Gupta 0cd36f6974 Bug 1694847 - Remove the expired SCROLL_INPUT_METHODS telemetry probe. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D116320
2021-05-31 21:36:35 +00:00
Glenn Watson cb7d6dbe9b Bug 1713542 - Build composite tiles and descriptors earlier during frame building r=gfx-reviewers,lsalzman
Follow up patches will store composite tiles and descriptors in the
local space of the tile. For that reason, we need to build them
earlier, before the local_valid_rect is cleared when the render
task(s) are created.

This patch is refactoring only, it shouldn't have any functional effect.

Differential Revision: https://phabricator.services.mozilla.com/D116327
2021-05-31 20:24:44 +00:00
Aaron Klotz 5f3a5d04d5 Bug 1681769: Set UiCompositorControllerParent's "other" pid when initializing for in-process; r=botond
If we don't set `UiCompositorControllerParent`'s other pid during in-process
initialization, we release assert when trying to log IPDL traffic via
`MOZ_IPC_MESSAGE_LOG`.

Differential Revision: https://phabricator.services.mozilla.com/D116271
2021-05-31 17:46:54 +00:00
Alexandru Michis 934da6fecd Backed out changeset 1758b632b964 (bug 1711648) for causing wrench bustages in reftests/transforms/prim-suite.yaml
CLOSED TREE
2021-05-31 14:15:32 +03:00
Nicolas Silva 9d3b368e00 Bug 1711648 - Update euclid to 0.22.5. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116266
2021-05-31 10:36:47 +00:00
Nicolas Silva e5e52ca247 Bug 1695016 - Go back to 32 bits rendder task ids. r=gw
This is to work around fuzzers repeatedly finding test cases with 2^16 clip masks or other type of render tasks. Not something we would see in real pages nor something that we would handle well at all even with 32 bits ids but at least it won't get in the way of fuzzing.

Differential Revision: https://phabricator.services.mozilla.com/D116214
2021-05-31 08:38:27 +00:00
Kartikaya Gupta 52a0fcf067 Bug 1713505 - Propagate exceptions in test utils. r=hiro
Without this, the reject calls end up throwing "undefined"
to callers which is not particularly useful.

Differential Revision: https://phabricator.services.mozilla.com/D116324
2021-05-31 02:09:28 +00:00
Glenn Watson a9018e3edc Bug 1713233 - Remove global device pixel scale from composite state and occlusion culling. r=gfx-reviewers,bradwerth
Starting to simplify which parts of the composite state will require
true world coordinates compared to those that can operate in local
(pre-compositor-transform) coordinates.

Differential Revision: https://phabricator.services.mozilla.com/D116183
2021-05-30 20:18:57 +00:00
Glenn Watson 9a4fe4ceb7 Bug 1713223 - Remove device pixel scale from spatial tree and snapping logic r=gfx-reviewers,bradwerth
It was always one (previous commits removed the public API for changing
it). The use of global_device_pixel_scale from the remaining code will be
removed in follow up patches.

Differential Revision: https://phabricator.services.mozilla.com/D116175
2021-05-30 20:18:56 +00:00
Butkovits Atila 3ecb32cefa Bug 1620096 - disable 709477-1.html on Debug_builds for frequent failures. r=intermittent-reviewers,ahal DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D115868
2021-05-30 07:26:34 +00:00
Lee Salzman 971a7f4dc7 Bug 1713409 - Always support a single update rect for SwCompositor. r=gfx-reviewers,jrmuizel
Prior to bug 1712871, when SwCompositor was instantiated, max_update_rects was always 1 for SwCompositor. Bug 1712871 inadvertently made it default to 0 on Linux, which is not what we want. This reverts the behavior for RenderCompositorSWGL so that max_update_rects is again 1.

Differential Revision: https://phabricator.services.mozilla.com/D116301
2021-05-29 02:57:04 +00:00
Andrew Osmond 236dc9845e Bug 1712491 - Avoid re-recording parts of blob images which haven't changed. r=jrmuizel
When we update a blob image recording because of a visibility change,
the invalid rect may be empty. We still need to iterate over all of the
items in the blob for merging purposes, to include their metadata (i.e.
the bounds) in the recording. We should not attempt to re-record any
elements that are not within the invalid rect because that may change
our dependencies on external images and/or fonts. This patch fixes how
transform and filter display items would be re-recorded without being
invalidated.

This could happen because of a race with factor of 2 scaling for
example. If imagelib decides to trim the old surfaces and replace them
with factor of 2 scaling variants, a re-recording might end up with a
different result than before.

Differential Revision: https://phabricator.services.mozilla.com/D116190
2021-05-29 00:01:17 +00:00
Botond Ballo 5d702b73ce Bug 1712874 - Back out bug 1704080 (ability to overscroll is non-scrollable directions). r=tnikkel
This reverts all 3 patches from bug 1704080.

Differential Revision: https://phabricator.services.mozilla.com/D116296
2021-05-28 23:54:24 +00:00
Jeff Muizelaar 62908eaa10 Bug 1713012. Only set RUSTC_BOOTSTRAP if it's not already set. r=aosmond
In bug 1670538 we started setting RUSTC_BOOTSTRAP for Rust 1.50+
Rust 1.50+ gives a warning if we set in build.rs so don't.

Differential Revision: https://phabricator.services.mozilla.com/D116131
2021-05-28 20:18:23 +00:00
sotaro 1bdf88acd8 Bug 1712890 - Use snapshotWindowWithOptions() to pass options r=hiro
browser_test_scrollbar_in_extension_popup_window.js set DRAWWINDOW_DRAW_VIEW as argument of snapshotWindow(). But it is not passed to CanvasRenderingContext2D::DrawWindow(). snapshotWindowWithOptions() could pass options to the DrawWindow().

Differential Revision: https://phabricator.services.mozilla.com/D115973
2021-05-27 08:23:32 +00:00
Botond Ballo 31aa1a8d2c Bug 1704062 - Set 'seenRcdRsf' correctly in GetCumulativeApzCallbackTransform(). r=tnikkel
The callback transform is stored as a content property, so the relevant
condition is whether we've seen a frame whose *content element* contains
the RCD-RSF callback transform.

Differential Revision: https://phabricator.services.mozilla.com/D116062
2021-05-27 04:32:10 +00:00
Botond Ballo 5ee5155358 Bug 1711633 - Avoid calling InputQueue::ReceiveInputEvent() with a null APZC. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D116060
2021-05-27 01:38:30 +00:00
Iulian Moraru a91229ec85 Backed out changeset edd0d0219eb3 (bug 1711633) for causing linux toolchains bustage on APZCTreeManager.cpp. CLOSED TREE 2021-05-27 04:27:50 +03:00
Botond Ballo 1a9c35dbc8 Bug 1711633 - Avoid calling InputQueue::ReceiveInputEvent() with a null APZC. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D116060
2021-05-27 00:42:05 +00:00
Dzmitry Malyshau cee0219fda Bug 1710679 - Implement WebGPU render bundles r=webidl,jgilbert,smaug
Differential Revision: https://phabricator.services.mozilla.com/D114878
2021-05-26 20:30:45 +00:00
Glenn Watson f459eaca0d Bug 1712871 - Move max_update_rects into CompositorCapabilities r=lsalzman,gfx-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D115954
2021-05-26 20:09:58 +00:00
Glenn Watson 0e0c887b65 Bug 1712659 - Remove unused pan APIs r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D115856
2021-05-25 21:32:26 +00:00
Glenn Watson 103f45a9b4 Bug 1712658 - Remove public API for setting global device pixel ratio r=gfx-reviewers,nical
Gecko always sets this to be 1.0 anyway, since various other parts
of the code need to handle this differently for snapping purposes.

This patch removes the public API parts, a follow up patch will
simplify the internal code by removing handling of world -> device
pixels.

Differential Revision: https://phabricator.services.mozilla.com/D115855
2021-05-25 21:32:26 +00:00
Glenn Watson 5fde547e67 Bug 1712651 - Remove unused pinch-zoom APIs r=gfx-reviewers,bradwerth
Gecko implements these via an APZ transform node in the spatial tree.

Differential Revision: https://phabricator.services.mozilla.com/D115853
2021-05-25 21:32:25 +00:00
Glenn Watson 5f557e9bd8 Bug 1712645 - Remove unused page zoom functionality. r=gfx-reviewers,bradwerth
Gecko implements zoom by changing primitives and/or using the
APZ transform node in the spatial tree.

Differential Revision: https://phabricator.services.mozilla.com/D115851
2021-05-25 21:32:25 +00:00
Robert Mader 067d78ddef Bug 1711224 - Add Wayland support for RenderCompositorNativeSWGL,
In order to do that, move buffer type specific code into
`NativeSurfaceWayland` and create subclasses for SHM and EGL
buffers.

This should help identify bugs, improve the code structure for
additional buffer types (e.g. YUV) and makes us get closer
to the CA backend.

Also includes some minor unrelated cleanups.

Differential Revision: https://phabricator.services.mozilla.com/D115938
2021-05-25 21:14:39 +00:00
Miko Mynttinen 6d31a09b81 Bug 1711900 - Replace Stringify() with ToString() in layers logging code r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D115487
2021-05-25 18:59:18 +00:00
stransky 42c1875739 Bug 1710958 [Linux] Delay DMABuf initialization when it's really needed, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D115480
2021-05-25 10:21:56 +00:00
Robert Mader de931f5505 Bug 1712472 - Reenable depth-buffer in EGL config if native compositor is used, r=jgilbert,gw
After D113532, a depth-buffer is not needed any more for the draw
compositor and it was subsequently removed from the EGL and GLX
context providers in D115216. This, however, broke the experimental
Wayland native compositor integration, which still needs it.

`SurfacePoolCA` solves this by manually attaching a depth buffer in
`CreateFramebufferForTexture`. `SurfacePoolWayland` will likely be
able to do the same eventually, however until that is the case
we need the GL context to provide it.

While on it, move the hardcoded bits into a better place below the
hard-coded values for ANGLE and remove now used code to make things
less cluttered.

Context: the `aDepth` argument was introduced in D76417 for EGL on X11
support, which used `RenderCompositorOGL`. This was changed in D108508,
making X11/EGL use `RenderCompositorEGL` instead, which uses a shared
GL singleton. This again required the color depth to be independent of
the window, so 32bit color depth was hardcoded in D109737. Therefore,
the `aDepth` and other things introduced in D76417 can be removed again.
Finally, it was found that we only need 32bit depth when used with
HW-WR, see also D114959.

Differential Revision: https://phabricator.services.mozilla.com/D115760
2021-05-25 08:03:28 +00:00