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

41522 Коммитов

Автор SHA1 Сообщение Дата
Matt Woodrow 12aab272c2 Bug 1727488 - Remove ShadowLayerForwarder. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123594
2021-08-26 00:25:20 +00:00
Jeff Muizelaar f7e040a8b1 Bug 1727639 - Remove PushGroupAndCopyBackground. r=mstange
We can also remove sDontUseAsSourceKey because
PushGroupAndCopyBackground was the only user.

Differential Revision: https://phabricator.services.mozilla.com/D123685
2021-08-25 22:34:45 +00:00
Jeff Muizelaar cc52015310 Bug 1727634 - Remove RotatedBuffer. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D123683
2021-08-25 22:34:19 +00:00
Glenn Watson 7401f9f93e Bug 1726708 - Add stable key for spatial nodes r=gfx-reviewers,kvark
Add an interface (and update Gecko to provide) a stable unique
identifier for each spatial node that is consistent across
display lists.

Although this patch doesn't _do_ anything useful with this yet,
we'll use this in future to allow interning, persisting and caching
a lot more information related to primitives and clips.

For now, it just asserts that the calling code never supplies a
duplicate unique identifier - which will be useful to have running
in nightly for a couple of weeks before starting to make use of
these identifiers.

Differential Revision: https://phabricator.services.mozilla.com/D123177
2021-08-25 21:52:13 +00:00
Jeff Muizelaar 7117a31cb2 Bug 1727623 - Remove ContentClient. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D123677
2021-08-25 21:13:03 +00:00
Matt Woodrow b8eef01e83 Bug 1708403 - Make resetting of scroll position for drawSnapshot opt-in. r=mstange,kmag
Differential Revision: https://phabricator.services.mozilla.com/D117613
2021-08-25 20:49:18 +00:00
Andrew Osmond aa22206ca2 Bug 1727603 - Remove gfxVars::UseOMTP. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123676
2021-08-25 19:56:01 +00:00
Andrew Osmond 50d789dd6a Bug 1724936 - Remove XRender support. r=jrmuizel
This has been deprecated for a long time, and it doesn't work in
conjuction with WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D122368
2021-08-25 19:35:23 +00:00
Butkovits Atila 073981c0e2 Backed out changeset f767bc7e5cd8 (bug 1724936) for causing build bustages on nsLookAndFeel.cpp. CLOSED TREE 2021-08-25 21:21:59 +03:00
Andrew Osmond ec43a845c8 Bug 1724936 - Remove XRender support. r=jrmuizel
This has been deprecated for a long time, and it doesn't work in
conjuction with WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D122368
2021-08-25 17:45:04 +00:00
Iulian Moraru 8dd046d72c Backed out changeset caf7cc8417e8 (bug 1727488) for causing bp-hybrid bustages. CLOSED TREE 2021-08-25 18:17:37 +03:00
Matt Woodrow 69af86dd8e Bug 1727488 - Remove ShadowLayerForwarder. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123594
2021-08-25 13:57:04 +00:00
Andi-Bogdan Postelnicu 2fc4f70e9b Bug 1725145 - Preparation for the hybrid build env. r=necko-reviewers,firefox-build-system-reviewers,valentin,glandium
Automatically generated path that adds flag `REQUIRES_UNIFIED_BUILD = True` to `moz.build`
when the module governed by the build config file is not buildable outside on the unified environment.

This needs to be done in order to have a hybrid build system that adds the possibility of combing
unified build components with ones that are built outside of the unified eco system.

Differential Revision: https://phabricator.services.mozilla.com/D122345
2021-08-25 10:46:17 +00:00
Andi-Bogdan Postelnicu 1add60ee56 Bug 1725145 - Explicit instantiate templates r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D123454
2021-08-25 10:46:16 +00:00
Andi-Bogdan Postelnicu 96dca2ad5b Bug 1725145 - fixes in gfx for win in non unified env. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D123603
2021-08-25 10:46:15 +00:00
Matt Woodrow 7755c29fd8 Bug 1727423 - Remove BasicLayerManager. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123555
2021-08-25 07:35:17 +00:00
Matt Woodrow 15827952f9 Bug 1727423 - Convert some usage of LayerManager to WindowRenderer in image/. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123554
2021-08-25 07:35:17 +00:00
Jeff Muizelaar 179512798b Bug 1727435 - Remove some remnants of ClientLayerManager. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D123558
2021-08-25 03:56:46 +00:00
criss 16e50a39dd Backed out changeset 41b40872b77a (bug 1727435)for causing clang non unified build bustages. CLOSED TREE 2021-08-25 04:49:17 +03:00
criss 58591696b7 Backed out 2 changesets (bug 1727423) for causing build bustages
Backed out changeset 9b2ca95a6527 (bug 1727423)
Backed out changeset 1f01fcbd46a8 (bug 1727423)
2021-08-25 04:41:35 +03:00
Matt Woodrow 59e71b6c78 Bug 1727423 - Remove BasicLayerManager. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123555
2021-08-25 01:04:26 +00:00
Matt Woodrow 2aa361b420 Bug 1727423 - Convert some usage of LayerManager to WindowRenderer in image/. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123554
2021-08-25 01:04:25 +00:00
criss bccf559d4b Backed out changeset 8868fe82dafd (bug 1708403) for causing failures on test_drawSnapshot_fixed.html. CLOSED TREE 2021-08-25 04:08:24 +03:00
Jeff Muizelaar b67775d96a Bug 1727435 - Remove some remnants of ClientLayerManager. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D123558
2021-08-25 00:45:45 +00:00
Matt Woodrow bb02f9029f Bug 1708403 - Make resetting of scroll position for drawSnapshot opt-in. r=mstange,kmag
Differential Revision: https://phabricator.services.mozilla.com/D117613
2021-08-25 00:21:01 +00:00
Jeff Muizelaar b0ee594702 Bug 1727430 - Remove unused LayerSorter. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D123550
2021-08-24 23:12:25 +00:00
Jon Bauman 6155249a72 Bug 1696045 - Add AVIF telemetry for unimplemented features and performance. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D123378
2021-08-24 22:34:32 +00:00
Jeff Muizelaar 8c1b1dcb3d Bug 1727398 - Remove ClientLayerManager. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D123525
2021-08-24 19:44:27 +00:00
Michelle Goossens 8d70b6f5d9 Bug 1723315 - Disable browser_test_scrollbar_in_extension_popup_window.js for intermittent failures on Windows 10 x64 2004 r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D123508
2021-08-24 18:41:02 +00:00
Sandor Molnar bb9a848857 Backed out changeset d0f659f7ea9b (bug 1696045) for causing gtest failures in image/decoders/nsAVIFDecoder. CLOSED TREE 2021-08-24 21:27:20 +03:00
Jeff Muizelaar e8908dd3bd Bug 1727360 - Remove WindowRenderer::AsShadowForwarder() r=aosmond
We shouldn't ever be hitting this path.

Differential Revision: https://phabricator.services.mozilla.com/D123495
2021-08-24 17:58:46 +00:00
Jon Bauman fc5f21743a Bug 1696045 - Add AVIF telemetry for unimplemented features and performance. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D123378
2021-08-24 17:20:02 +00:00
Ting-Yu Lin 4613910b3e Bug 1726620 Part 2 - Add structs representing strong-type app units coordinates. r=botond
The motivation of introducing the structs is to use 64-bit integer
arithmetic to prevent 32-bit integer overflow. One application is to fix
the integer overflow when resolving flex item's main size in Bug 1469649.

The structs can be a start point to add more useful methods to explore
saturation arithmetic.

Differential Revision: https://phabricator.services.mozilla.com/D123266
2021-08-24 17:19:21 +00:00
Ting-Yu Lin 8035e9dde5 Bug 1726620 Part 1 - Generalize IntCoordTyped template to take a parameter as the underlying type. r=botond
This shouldn't change the behavior, but it allows us to define 64-bit
`IntCoordTyped` in Part 2.

Differential Revision: https://phabricator.services.mozilla.com/D123265
2021-08-24 17:19:21 +00:00
Jeff Muizelaar ebfed4b7a4 Bug 1727351 - Remove mVsyncEnabledLock. r=aosmond
Just make mVsyncEnabled an Atomic<bool>

Differential Revision: https://phabricator.services.mozilla.com/D123488
2021-08-24 16:02:46 +00:00
Jeff Muizelaar 4e0c60c99c Bug 1727324 - Remove WindowRenderer::AsClientLayerManager. r=aosmond
A step down the path of removing ClientLayerManager.

Differential Revision: https://phabricator.services.mozilla.com/D123451
2021-08-24 15:07:56 +00:00
Matt Woodrow 56768f11a4 Bug 1726562 - Remove option to disable software webrender for popups. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123159
2021-08-24 04:06:34 +00:00
Glenn Watson 3999ffe70d Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-24 02:18:51 +00:00
Jeff Gilbert 0d6f7f1c2b Bug 1726863 - Cache/elide GLContext::BindFramebuffer calls. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D123275
2021-08-23 23:59:26 +00:00
Csoregi Natalia 8d7a78b944 Backed out changeset fd92f897de07 (bug 1726863) for causing assertion failures on ContentCompositorBridgeParent.cpp. CLOSED TREE 2021-08-24 01:34:22 +03:00
Jeff Gilbert 16b629d8de Bug 1726863 - Cache/elide GLContext::BindFramebuffer calls. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D123275
2021-08-23 21:54:29 +00:00
Markus Stange 975565c019 Bug 1726836 - Add a mac-only pref gfx.webrender.debug.dump-native-layer-tree-to-file, which, when set, causes each composite to create an HTML file with the layer tree contents at $HOME/Destop/nativelayerdumps-PID/frame-ID.html. r=bradwerth
Differential Revision: https://phabricator.services.mozilla.com/D123261
2021-08-23 17:09:38 +00:00
Michelle Goossens c7d34da2f9 Bug 1723574 - Enable mochitest-browser-chrome tests that no longer fail r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D123247
2021-08-23 12:45:31 +00:00
Andi-Bogdan Postelnicu 92603d5088 Bug 1617369 - Reformat recent rust changes with rustfmt r=emilio,webdriver-reviewers,necko-reviewers,valentin
Updated with rustfmt 1.4.37-stable (a178d03 2021-07-26)

Differential Revision: https://phabricator.services.mozilla.com/D122815
2021-08-23 09:30:24 +00:00
Andi-Bogdan Postelnicu 9945b94835 Bug 1519636 - Reformat recent changes to the Google coding style. r=emilio
Updated with clang-format version 12.0.1 (taskcluster-dNZqCRqWRTqa6cZxPKxh7Q)

Differential Revision: https://phabricator.services.mozilla.com/D122814
2021-08-23 09:30:23 +00:00
Emilio Cobos Álvarez dcedd925dc Bug 1726515 - Workaround GCC-calling-into-LLVM ABI issue by making GenericFontFamily larger. r=hiro
This enum being a bit larger doesn't cause many common data structures
to grow, so this should be fine.

Differential Revision: https://phabricator.services.mozilla.com/D123146
2021-08-23 09:18:49 +00:00
Matt Woodrow 0ee96e3fa5 Bug 1726291 - Remove FrameLayerBuilder. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D122930
2021-08-23 03:07:31 +00:00
Iulian Moraru 87787e85e2 Backed out changeset d93e8a61d529 (bug 1724846) for causing reftest failures on downscale-moz-icon-1.html. CLOSED TREE 2021-08-23 07:11:37 +03:00
Hiroyuki Ikezoe f548cc63dc Bug 1724358 - Don't apply overscroll-behavior properties on non scrollable APZCs for scrolling handoff. r=botond
This behavior is not compliant with the CSS overscroll behavior spec.

The spec clearly explains that overscroll-behavior applies to scroll
container elements. But overflow: hidden elements can be scroll container
elements, thus the property should be respected in terms of the spec
definitions. That said, Chrome has been doing this behavior since 2017 [1],


[1] https://bugs.chromium.org/p/chromium/issues/detail?id=759209
[2] https://github.com/w3c/csswg-drafts/issues/6523

Differential Revision: https://phabricator.services.mozilla.com/D122199
2021-08-22 21:35:19 +00:00
Glenn Watson fa6eeae54b Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-22 20:54:07 +00:00
Andi-Bogdan Postelnicu 250fa0d795 Bug 1725145 - header files fixes in the hybrid build env. r=valentin
Differential Revision: https://phabricator.services.mozilla.com/D122343
2021-08-22 10:21:55 +00:00
Andi-Bogdan Postelnicu ee0c1c4213 Bug 1725139 - Fix gtest suite in gfx to be buildable outside unified. r=hiro,emilio
Differential Revision: https://phabricator.services.mozilla.com/D122340
2021-08-22 10:21:55 +00:00
Robert Mader 68c6005874 Bug 1726807 - Avoid crashes caused by floating point errors, r=gfx-reviewers,lsalzman
We always expect integer values here, even with fractional scaling,
and if floating point errors cause `bufferClip.x` or `bufferClip.y` to
fall slightly below `0`, this will cause a protocol error.
We can savely avoid this by simply rounding the rect.

Differential Revision: https://phabricator.services.mozilla.com/D123289
2021-08-22 08:44:48 +00:00
Alexandru Michis 27cbe35110 Backed out changeset 6df43bd2a7bc (bug 1724358) for causing gv-junit failures in testOverscrollBehaviorNoneAuto 2021-08-22 03:15:08 +03:00
Hiroyuki Ikezoe 8f7a2ef029 Bug 1724358 - Don't apply overscroll-behavior properties on non scrollable APZCs for scrolling handoff. r=botond
This behavior is not compliant with the CSS overscroll behavior spec.

The spec clearly explains that overscroll-behavior applies to scroll
container elements. But overflow: hidden elements can be scroll container
elements, thus the property should be respected in terms of the spec
definitions. That said, Chrome has been doing this behavior since 2017 [1],


[1] https://bugs.chromium.org/p/chromium/issues/detail?id=759209
[2] https://github.com/w3c/csswg-drafts/issues/6523

Differential Revision: https://phabricator.services.mozilla.com/D122199
2021-08-21 23:40:44 +00:00
Robert Mader 5787ce04bc Bug 1726807 - Assert on valid wp_viewport values, r=gfx-reviewers,mstange
Submitting invalid values to the Wayland compositor will trigger a
protocol error, which in turn will trigger an unhandled crash.
In order to create crash reports in such cases, assert on valid
values in such cases.

In the long run we can replace this with a general Wayland protocol
error handler.

Differential Revision: https://phabricator.services.mozilla.com/D123286
2021-08-21 15:43:44 +00:00
Csoregi Natalia a3124addd1 Backed out changeset ef1d6ccf8d61 (bug 1726863) for causing assertion failures on CompositorBridgeParent.cpp. CLOSED TREE 2021-08-21 09:15:08 +03:00
Jeff Gilbert aa8340500e Bug 1726863 - Cache/elide GLContext::BindFramebuffer calls. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D123275
2021-08-21 02:08:23 +00:00
Hiroyuki Ikezoe f0a0d672a3 Bug 1726638 - Introduce nsIDOMWindowUtils.toScreenRect. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D123175
2021-08-21 00:31:13 +00:00
Hiroyuki Ikezoe f252e47c82 Bug 1726638 - Rename nsIDOMWindowUtils.toScreenRect to ToScreenRectInCSSUnits. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D123174
2021-08-21 00:31:13 +00:00
Butkovits Atila 477919f37c Backed out changeset a4a346ecefd7 (bug 1726265) for causing failures at test_2_conformance2__extensions__oes-draw-buffers-indexed.html. CLOSED TREE 2021-08-21 01:46:52 +03:00
Jeff Gilbert 28e862be2d Bug 1726265 - Prototype webgl draft ext OES_draw_buffers_indexed. r=lsalzman,emilio
Differential Revision: https://phabricator.services.mozilla.com/D122916
2021-08-20 20:59:54 +00:00
Michelle Goossens d192833f8d Bug 1723574 - Migrate Windows 10 mochitest-browser-chrome suite from AWS to Azure r=jmaher,preferences-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D122511
2021-08-20 20:55:02 +00:00
Jamie Nicol b1e2f230c0 Bug 1725508 - Don't use BGRA with glTexStorage on Android Intel BayTrail devices. r=gfx-reviewers,jrmuizel
Intel BayTrail devices claim to support GL_EXT_texture_format_BGRA8888
as well as GL_EXT_texture_storage, which means we should be able to
use glTexStorage along with a BGRA internal format. However, doing so
does not work, resulting in black squares being rendered rather than
images.

Instead, use RGBA as the internal format and rely on texture swizzling
during sampling.

Differential Revision: https://phabricator.services.mozilla.com/D123246
2021-08-20 18:22:21 +00:00
Jeff Muizelaar bc83bb5886 Bug 1726672 - Remove PaintThread. r=mattwoodrow
Basically just rm PaintThread.cpp and get things to build.

Differential Revision: https://phabricator.services.mozilla.com/D123170
2021-08-20 13:20:44 +00:00
Hiroyuki Ikezoe aa28314d5e Bug 1724149 - Run the test in test_interrupted_reflow.html in a new tab. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D123178
2021-08-20 09:48:15 +00:00
Cosmin Sabou b53abb88e7 Backed out changeset e111894317cc (bug 1726291) for causing assertion failures on WebRenderCommandBuilder.cpp. CLOSED TREE 2021-08-20 06:22:40 +03:00
Matt Woodrow 94015526e1 Bug 1726291 - Remove FrameLayerBuilder. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D122930
2021-08-20 02:20:39 +00:00
Cosmin Sabou 135d55cd7e Backed out changeset 24e0d3aa4ada (bug 1726265) for causing non-unified build bustage. CLOSED TREE 2021-08-20 04:29:04 +03:00
Jeff Gilbert df78036187 Bug 1726265 - Prototype webgl draft ext OES_draw_buffers_indexed. r=lsalzman,emilio
Differential Revision: https://phabricator.services.mozilla.com/D122916
2021-08-20 00:05:06 +00:00
Botond Ballo 967edc9a03 Bug 1723200 - Give a deferred transform its own WebRenderLayerScrollData node when processing a scroll info layer item. r=tnikkel
Depends on D123036

Differential Revision: https://phabricator.services.mozilla.com/D123037
2021-08-19 18:31:08 +00:00
Botond Ballo 748e509a86 Bug 1723200 - Revise ancestor transform assertion in WebRenderLayerScrollData::Initialize(). r=tnikkel
What we want to assert is that, apart from a couple of edge cases,
aAncestorTransformId is represented in mScrollIds.

The previous approach assumed that mScrollIds was populated entirely
in the loop above, but in fact it can also be populated via
AppendScrollMetadata().

Differential Revision: https://phabricator.services.mozilla.com/D123036
2021-08-19 18:31:07 +00:00
Jeff Muizelaar 84d6f5a30c Bug 1726594 - Add some documentation about the purpose of VsyncIOThread. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D123136
2021-08-19 16:35:32 +00:00
Jeff Muizelaar 1916934834 Bug 1725742. Validate tag offsets upfront to avoid weird overflow situations later on. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D122856
2021-08-19 16:33:03 +00:00
Hiroyuki Ikezoe 9e78018010 Bug 1725540 - Use nsIDOMWindowUtils.toScreenRect to get positions in the screen coords to avoid accessing window.top directly. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D122560
2021-08-19 07:51:28 +00:00
Hiroyuki Ikezoe 77ade58a2b Bug 1725540 - Get top level window's resolution via SpecialPowers.spawn. r=tnikkel
Thus a bunch of relevant functions need to be async.

Differential Revision: https://phabricator.services.mozilla.com/D122559
2021-08-19 07:51:27 +00:00
Hiroyuki Ikezoe f1f2923a0c Bug 1725540 - Rewrite helper_touch_action_regions.html to make it work with some async utility functions. r=tnikkel
The test function in helper_touch_action_regions.html needs to run as a
generator function, which means it doesn't work with async/await manners, so
once after we make some utility functions as async, it won't work as expected.
To avoid it, getting the scroller position in the screen coords part needs to
be split out from the generator since the part will be async in the next commit,
and nsIDOMWindowUtils.sendNativeTouchPoint needs to be used directly instead of
using synthesizeNativeTouch since synthesizeNativeTouch will also be async.

Differential Revision: https://phabricator.services.mozilla.com/D122558
2021-08-19 07:51:27 +00:00
Hiroyuki Ikezoe faa5cb9019 Bug 1725540 - Drop getTargetOrigin. r=tnikkel
It's not used.

Differential Revision: https://phabricator.services.mozilla.com/D122557
2021-08-19 07:51:26 +00:00
Botond Ballo c6e24a791e Bug 1726450 - Upgrade the 'two layers that scroll together' assertion to MOZ_ASSERT again. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D123016
2021-08-19 02:25:49 +00:00
Dzmitry Malyshau 1da5651ba2 Bug 1622846 - Update WebGPU API to latest and wgpu-core to 0.9 r=webidl,jgilbert,jimb,emilio
This *mostly* gets us the latest WebIDL API of WebGPU. There is a few limits we are missing, and maybe some things I didn't notice.
But it gets us the new `GPUCanvasContext`, `GPUSupportedLimits`, and `GPUVertexStepMode`.

Differential Revision: https://phabricator.services.mozilla.com/D120764
2021-08-18 14:11:21 +00:00
Brindusan Cristian 1cdd46e3ba Backed out changeset e34f15d5e74d (bug 1622846) for causing linux toolchain build bustages.
CLOSED TREE
2021-08-18 07:58:38 +03:00
Timothy Nikkel a288ba0b52 Bug 1724901. Add test. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D122927
2021-08-18 03:44:56 +00:00
Timothy Nikkel 2bb375920d Bug 1724901. Use the scale from ancestor documents in other processes in the StackingContextHelper. r=jrmuizel
This ensures images and svg content and anything else rasterized in the content process has the right scale.

Differential Revision: https://phabricator.services.mozilla.com/D122540
2021-08-18 03:44:56 +00:00
Narcis Beleuzu de6255c9b1 Backed out 2 changesets (bug 1723665, bug 1724846) as per gw`s request
Backed out changeset 5f2aff372a24 (bug 1724846)
Backed out changeset 0cc8e08b6937 (bug 1723665)
2021-08-18 03:17:33 +03:00
Matt Woodrow 2cd0480476 Bug 1726063 - Remove support for non-WR compositor initialization. r=jrmuizel,aosmond
Depends on D122796

Differential Revision: https://phabricator.services.mozilla.com/D122798
2021-08-17 23:19:44 +00:00
Dzmitry Malyshau 6d7cfc6c90 Bug 1622846 - Update WebGPU API to latest and wgpu-core to 0.9 r=webidl,jgilbert,jimb,emilio
This *mostly* gets us the latest WebIDL API of WebGPU. There is a few limits we are missing, and maybe some things I didn't notice.
But it gets us the new `GPUCanvasContext`, `GPUSupportedLimits`, and `GPUVertexStepMode`.

Differential Revision: https://phabricator.services.mozilla.com/D120764
2021-08-17 15:22:45 +00:00
Jon Bauman bacfba2091 Bug 1725056 - qcms: avoid undefined behavior when handling CICP values. r=jrmuizel,tsmith
Differential Revision: https://phabricator.services.mozilla.com/D122318
2021-08-16 23:13:36 +00:00
Hiroyuki Ikezoe 10263485a1 Bug 1691358 - Add a test to make sure nsIDOMWindowUtils.setResolutionAndScaleTo properly delivered to OOP iframes. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D122661
2021-08-16 21:52:05 +00:00
Jonathan Kew f1d0b4bbe4 Bug 1725940 - patch 2 - Move nsFontCache from the device context to the prescontext. r=emilio
To look up/instantiate platform fonts based on CSS font properties, we create a gfxFontGroup from an nsFont and other attributes; this is currently cached in an nsFontCache attached to the nsDeviceContext.

However, this assumes that the mapping to platform fonts will be the same for all documents using the given device context. In a world where visibility of platform fonts to the page may be restricted, and may depend on the individual document (e.g. if the user disables tracking protection for a particular site), the mapping represented by nsFontCache may vary, and determining how to resolve a given font request will need access to the requesting document in order to know what visibility it is allowed.

To support this, this patch moves the nsFontCache from nsDeviceContext to nsPresContext. In itself, this should cause no visible change in behavior, but it provides a basis for the patches that will follow in bug 1715501.

It's likely that this will have some effects on individual performance tests, depending on the exact content and sequencing of page loads, because of changed caching behavior. E.g. having a per-presContext cache may sometimes mean that we no longer take advantage of a cached gfxFontGroup that a previously-loaded page created; but on the other hand the caches will tend to be smaller and have faster lookups.

My testing so far suggests that we will see some apparent regressions, alongside some improvements, but that overall there should be little change. I'd like to get this change landed separately, before any of the actual font-visibility behavior changes, so that we can more clearly see and isolate any unexpected effects.

Differential Revision: https://phabricator.services.mozilla.com/D122715
2021-08-16 13:58:03 +00:00
Jonathan Kew 6ab15bd8a1 Bug 1725940 - patch 1 - Extract nsFontCache from nsDeviceContext.cpp to its own file. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D122714
2021-08-16 13:58:03 +00:00
Butkovits Atila 5d19838121 Backed out 2 changesets (bug 1692609) for causing failures at test_getUserMedia_addTrackRemoveTrack. CLOSED TREE
Backed out changeset ce4b4f786c4d (bug 1692609)
Backed out changeset d36f5f4ece1e (bug 1692609)
2021-08-16 07:53:47 +03:00
Jeff Gilbert dbf7829bd5 Bug 1692609 - Force 60hz for RFP and use that as the time-atom r=tjr
Differential Revision: https://phabricator.services.mozilla.com/D122045
2021-08-16 03:39:25 +00:00
Glenn Watson 2ae662cff6 Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-15 20:44:03 +00:00
Jeff Gilbert 16e47c00fa Bug 1725714 - Load glTexSubImage3DOES for texture_3D. r=gfx-reviewers,jrmuizel
Also drop support for the 1996 ext EXT_texture3D, particularly since
GLFeature::texture_3D is core in GL1.2.

Differential Revision: https://phabricator.services.mozilla.com/D122644
2021-08-14 00:07:19 +00:00
Markus Stange 193a8de121 Bug 1724433 - Remove special CG text drawing code from DrawTargetSkia. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D122399
2021-08-13 23:08:02 +00:00
Glenn Watson c4ae6a4095 Bug 1723665 - Move coordinate mapping and snapping from scene building to display list building r=aosmond,gfx-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D121591
2021-08-12 23:44:55 +00:00
Andrew Osmond ddabc1b810 Bug 1725388 - Remove pref/envvars that can disable WebRender. r=jrmuizel
MOZ_WEBRENDER=0 now does nothing -- you will either get HW-WR or SW-WR
depending on the platform configuration. The pref
gfx.webrender.force-legacy-layers is removed. This leaves no
configuration option to disable WebRender.

MOZ_WEBRENDER=1 will continue to force WR on, which will ensure in CI we
get HW-WR unless gfx.webrender.software is true.

Differential Revision: https://phabricator.services.mozilla.com/D122474
2021-08-12 20:28:53 +00:00
Iulian Moraru 68dacf122d Backed out 2 changesets (bug 1725388) for causing multiple failures. CLOSED TREE
Backed out changeset cb961c255c8c (bug 1725388)
Backed out changeset 4ee9abeebd43 (bug 1725388)
2021-08-12 19:21:05 +03:00
Andrew Osmond 43a2a6d05e Bug 1725388 - Remove pref/envvars that can disable WebRender. r=jrmuizel
MOZ_WEBRENDER=0 now does nothing -- you will either get HW-WR or SW-WR
depending on the platform configuration. The pref
gfx.webrender.force-legacy-layers is removed. This leaves no
configuration option to disable WebRender.

MOZ_WEBRENDER=1 will continue to force WR on, which will ensure in CI we
get HW-WR unless gfx.webrender.software is true.

Differential Revision: https://phabricator.services.mozilla.com/D122474
2021-08-12 13:54:25 +00:00
Nicolas Silva 2966ad7b5b Bug 1724968 - Make WR profiler less confusing when there was no sample for a while. r=gfx-reviewers,kvark
Before this patch the embedded profiler would show the last avg/max values for a profile counter if it hasn't had samples for a long time. After this patch the counter shows 0 if there was no sample.

For example when no glyphs are rasterized there are no 'Rasterized glyphs' samples. If no glyphs are rasterized for multiple seconds then we are currently still showing the average and max number of rasterized glyphs from seconds ago which makes it look like we are constantly rasterizing glyphs. With this patch the counter goes back to zero after half a second of not rasterizing glyphs.

Differential Revision: https://phabricator.services.mozilla.com/D122263
2021-08-12 12:09:50 +00:00
Lee Salzman 8f08c21f09 Bug 1725304 - Fix tracking of late surfaces for debug overlays in SW-WR. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D122410
2021-08-12 03:37:06 +00:00
Jeff Gilbert 1ab2048d63 Bug 1657189 - Avoid GetFragDataLocation('gl_*') on Mesa. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D122406
2021-08-12 01:35:15 +00:00
Mike Hommey 0b4372e828 Bug 1721968 - Remove support for lucetc for rlbox. r=firefox-build-system-reviewers,shravanrn,mhentges
Differential Revision: https://phabricator.services.mozilla.com/D120700
2021-08-11 21:58:52 +00:00
Andrew Osmond 4a288852e3 Bug 1724794 - Remove Software WebRender allow/blocklist plumbing. r=gfx-reviewers,jrmuizel
We don't use this anymore for anything.

Differential Revision: https://phabricator.services.mozilla.com/D122254
2021-08-11 14:07:02 +00:00
stransky e9207013f4 Bug 1722450 [Wayland] Pause compositor when screen scale changes and content is not updated yet, r=sotaro
We need to track window compositor state in various cases, when compositor is paused after window creation,
when compositor is paused for hidden window (EGLSurface is missing) and paused compositor when layout is not updated yet
and drawing will lead to incorrect / obsoleted window content.

In this patch we track compositor state by WindowCompositorState atomic enum (because it can be accessed from Compositor thread)
and two private methods (PauseCompositorHiddenWindow and ResumeCompositorHiddenWindow) and two public ones (PauseCompositor() and ResumeCompositor).

Private interface is used by nsWindow when EGLSurface is missing so we can't render to window - it's initial compositor pause and
pause when window is hidden.

Public interface is used by nsWindow and WebRender compositor to disable/enable rendering when window content is updated.
When compositor is disabled by public interface it will be enabled automatically after a timeout (1s) or when content layout is updated.

Changes in the patch:

- Implement GtkCompositorWidget::RemoteLayoutSizeUpdated() to notify GtkCompositorWidget widget about layout size update in content process.
- Track nsWindow compositor state by WindowCompositorState
- Implement nsWindow::PauseCompositorHiddenWindow() and ResumeCompositorHiddenWindow() to handle internal nsWindow states.
- Implement nsWindow::PauseCompositor() and nsWindow::ResumeCompositor() to allow compositor pause/resume during content layout updates.
- Use timeout to resume compositor paused by public interface as a fallback when content is not updated or it takes too long.

Differential Revision: https://phabricator.services.mozilla.com/D121650
2021-08-11 07:48:53 +00:00
Butkovits Atila 538569c63f Backed out changeset 97813b0b7f35 (bug 1723665) as requested by dev. CLOSED TREE 2021-08-10 23:04:10 +03:00
Bob Owen 537f72decb Bug 1723214: If BorrowDrawTarget fails in GetTextureClient just return the current front buffer. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D122261
2021-08-10 17:19:29 +00:00
Emilio Cobos Álvarez 59692ca913 Bug 1724907 - Don't use system-ui as a fallback generic. r=jfkthame
As it's usually not very useful. I don't know how easily we can add a
reliable test for this, let me know if you come up with an idea to do
that.

Differential Revision: https://phabricator.services.mozilla.com/D122222
2021-08-10 14:19:04 +00:00
Jamie Nicol 0537af1fe9 Bug 1719345 - Don't invalidate render targets after use on PowerVR. r=gfx-reviewers,jrmuizel
On PowerVR devices we have seen reports of red lines and shapes
appearing randomly on the screen. What is happening is that clip masks
are being rendered in to the RGBA8 texture atlases that were the
previous pass' target, rather than the current R8 render target. Red
shapes therefore appear on top of the cached items in the RGBA texture
atlases, and parts of these subsequently get rendered to picture cache
tiles then the screen.

This appears to be due a bug with glInvalidateFramebuffer. We call
this function once we have finished using a render target for the
frame (ie we have rendered all items which need a clip mask). But
presumably, due to the asynchronicity of OpenGL, the draw calls to
render the clip masks to the render target are in fact still pending
at this point. Perhaps the driver incorrectly recycles the render
target's memory too early, and as a result the masks get written to
the wrong texture.

This patch therefore omits the calls to glInvalidateFramebuffer on
PowerVR devices. While this bug has been hard to reproduce reliably,
it appears to solve the issue.

Differential Revision: https://phabricator.services.mozilla.com/D122221
2021-08-10 13:52:21 +00:00
Jonathan Kew 1f7af5607b Bug 1724795 - Fix leak in cairo-cff-subset (patch from https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/192, already merged upstream). r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D122201
2021-08-10 13:41:34 +00:00
Matt Woodrow 47d3ec0f72 Bug 1724839 - Add 2d matrix equivalents for transform snapping functions. r=jrmuizel
Depends on D122174

Differential Revision: https://phabricator.services.mozilla.com/D122175
2021-08-10 03:38:42 +00:00
Matt Woodrow 16361eebae Bug 1724839 - Move transform snapping code into gfxUtils. r=jrmuizel
Depends on D122173

Differential Revision: https://phabricator.services.mozilla.com/D122174
2021-08-10 03:38:41 +00:00
Glenn Watson 75728e5f1e Bug 1723665 - Move coordinate mapping and snapping from scene building to display list building r=aosmond,gfx-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D121591
2021-08-10 01:18:52 +00:00
Matt Woodrow ec9b5dd838 Bug 1720152 - Recurse into replay for dependencies, rather than using a temp surface. r=jrmuizel,bobowen,emilio
Differential Revision: https://phabricator.services.mozilla.com/D120050
2021-08-09 22:07:36 +00:00
Mats Palmgren 14c9063444 Bug 1706080 - [css-fonts] Implement 'font-synthesis: small-caps'. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D114313
2021-08-09 21:41:34 +00:00
Glenn Watson af10111513 Bug 1724344 - Split DL cache data into separate payload vec r=gfx-reviewers,kvark
Move the extra_data to be a specific cache_data separate vec in
the display list payload.

This shouldn't change any functionality, but serves as a proof
of concept for future changes which will introduce several other
separated payload vectors.

Differential Revision: https://phabricator.services.mozilla.com/D121937
2021-08-09 21:15:20 +00:00
Gabriele Svelto 559377e821 Bug 1723934 - Remove useless nsExceptionHandler.h inclusions and crash reporter service definitions r=necko-reviewers,dragana
Differential Revision: https://phabricator.services.mozilla.com/D121708
2021-08-09 20:08:17 +00:00
Lee Salzman b164800498 Bug 1711553 - Avoid use of GetRecommendedRenderingMode in Skia. r=jrmuizel
This attempts to emulate the behavior of GetRecommendedRenderingMode without
actually calling it. In addition, it allows some Gecko-specific behavior
like overriding the render mode explicitly that allows some simplification
of the decision-making.

Inside GetRecommendedRenderingMode, natural is only allowed if <= 20 size.
This allows us to thus decide mostly based on whether the size is > 20 or
if an explicit mode was specified. In the remaining case where we need
to check a GASP table if available, we defer to the symmetric flag. If
there is no GASP, we assume natural.

Differential Revision: https://phabricator.services.mozilla.com/D122025
2021-08-09 19:16:16 +00:00
Jonathan Kew 55e3fc6f6e Bug 1723787 - Apply cairo quartz font/surface changes from Andrea Canciani's quartz-colored-glyphs branch at https://gitlab.freedesktop.org/ranma42/cairo/-/commits/quartz-colored-glyphs. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D121909
2021-08-09 14:28:42 +00:00
Brindusan Cristian 29dbbeca6a Backed out changeset b97f1ccfbb1f (bug 1720169) as requested on irc by jnicol for causing performance regressions (Bug 1724678, Bug 1724216).
CLOSED TREE
2021-08-09 13:35:15 +03:00
Nicolas Silva 936f9d9458 Bug 1723076 - Allow larger items in the color cache textures. r=gfx-reviewers,jrmuizel
Before this patch any item that is wider or taller than 512 pixels goes into its own standalone texture. However we often generate linear gradient tasks with a height of 1 pixels and a width between 512 and 1024. Having them in standalone textures wastes a lot of memory and breaks batches. 1024 pixels fits exactly in the linear color cache texture.

Differential Revision: https://phabricator.services.mozilla.com/D121362
2021-08-09 09:23:07 +00:00
Timothy Nikkel 5014725e77 Bug 1678771. Add test. r=hiro
We implement a new nsIDOMWindowUtils function sendNativeTouchpadPan to do this. It is only implemented on Windows here.

Depends on D122048

Differential Revision: https://phabricator.services.mozilla.com/D122049
2021-08-08 22:04:18 +00:00
Ben Hearsum 6f022eadd9 Bug 1714200: skip failing reftests on M1 machines. r=jmaher
Differential Revision: https://phabricator.services.mozilla.com/D121219
2021-08-06 19:16:53 +00:00
Lee Salzman 12a2833e45 Bug 1722054 - Restructure SwCompositeThread synchronization to not rely on job count. r=jrmuizel
This patch aims to address a worst-case theoretical possibility where the job count might for
some reason get out of sync, causing either the SwComposite thread or the main thread to deadlock
waiting on jobs that may never become available.

To this end, we get rid of the job count tracking entirely, and instead just track whether,
first, the SwComposite thread has completed all the jobs that have been queued for it, and,
second, that the main thread, having completed all jobs that were available, is waiting for
jobs to be available or completed such that the SwComposite thread would need to wake it up.
The main thread does not need to wait if it knows the SwComposite thread completed all jobs,
and the SwComposite thread does not need to signal if it knows the main thread is not waiting.

Otherwise stated, so long as both the main and SwComposite threads know there are no more
available jobs, then there is no way compositing can advance any further, and so compositing
must be finished. This avoids relying on having a job count that is always accurate to track
termination.

Differential Revision: https://phabricator.services.mozilla.com/D121821
2021-08-06 16:07:10 +00:00
Jonathan Kew da11a216cc Bug 1724421 - Use template argument deduction to simplify callsites when checking the standard font-family visibility lists. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D122003
2021-08-06 14:06:53 +00:00
Jonathan Kew e9124763a1 Bug 1723874 - Update the list of standard macOS fonts to be current/correct. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D121997
2021-08-06 13:08:15 +00:00
Hiroyuki Ikezoe a0acfbf244 Bug 1724327 - Replace nsLayoutUtils::GetCrossDocParentFrame in CreateAnimationData with nsLayoutUtils::GetCrossDocParentFrameInProcess. r=boris
It's non WebRender specific, so it will not be a problem on Fission,
additionally it's not used on non WebRender with retained display stuff
either.

Differential Revision: https://phabricator.services.mozilla.com/D121929
2021-08-06 00:00:50 +00:00
Jon Bauman 1fbcf87b11 Bug 1634741 - AVIF (AV1 Image File Format): proper color space support. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D121764
2021-08-05 15:47:59 +00:00
Bob Owen d22dd863d9 Bug 1698946 p4: Remove remaining old ClearType parameters code. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D120599
2021-08-05 09:13:11 +00:00
Bob Owen b18cd4ec5a Bug 1698946 p3: Change existing code to use DWriteSettings. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D120598
2021-08-05 09:13:11 +00:00
Bob Owen 700da072c4 Bug 1698946 p2: Add DWriteSettings to be used to retrieve font settings. r=jfkthame
This provides settings, which are populated from gfxVars retrieved in the
parent, so that they can be used in all processes.
IDWriteRenderingParams are created lazily, so that we don't try and create them
in processes that have win32k locked down where the API calls will fail.

Differential Revision: https://phabricator.services.mozilla.com/D120597
2021-08-05 09:13:10 +00:00
Bob Owen b81850a8d7 Bug 1698946 p1: Add and maintain ClearType parameters gfxVars. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D120596
2021-08-05 09:13:09 +00:00
Timothy Nikkel 2ed45b7d85 Bug 1724138. Enable apz mochitests on fission + xorigin that are no longer failing. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D121824
2021-08-05 07:42:54 +00:00
Matt Woodrow 4b6db2ad05 Bug 1722258 - Convert more LayerManager usage to use WindowRenderer. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D120920
2021-08-05 06:48:34 +00:00
Timothy Nikkel 86ce161043 Bug 1583955. Re-enable helper_overscroll_behavior_bug1425573.html. r=hiro
It no longer seems to be leaking.

Differential Revision: https://phabricator.services.mozilla.com/D121825
2021-08-05 05:44:58 +00:00
Jon Bauman ad9d5759ea Bug 1723253 - qcms: Add CICP (Coding-independent code points) support. r=jrmuizel
Add CICP-specific functionality

Differential Revision: https://phabricator.services.mozilla.com/D121452
2021-08-05 05:10:37 +00:00
Jon Bauman bbd6119d94 Bug 1723253 - qcms: Clippy/costmetic changes. r=jrmuizel
Clippy/costmetic changes

Differential Revision: https://phabricator.services.mozilla.com/D121458
2021-08-05 05:10:37 +00:00
Robert Mader 02ec3a3ab0 Bug 1702546 - Update GLConsts.h, r=jgilbert
This is required for D110604

Differential Revision: https://phabricator.services.mozilla.com/D121704
2021-08-04 17:46:57 +00:00
Bob Owen f8a38951a3 Bug 1711545 p2: Don't uninitialize COM in gfxWindowsPlatform when win32k is locked down. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D121730
2021-08-04 15:02:42 +00:00
Bob Owen a231e1bc6d Bug 1711545: Don't attempt to initialize COM in gfxWindowsPlatform when win32k is locked down. r=jrmuizel
This also stops registering GPU memory reporters, because they should no longer
be relevant with win32k locked down.

Differential Revision: https://phabricator.services.mozilla.com/D121721
2021-08-04 14:04:04 +00:00
Jonathan Kew 0ca7fbff51 Bug 1721127 - Apply win32 printing surface fix from https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/228. r=jrmuizel
(Updated patch following discussion with @psychon/@ajohnson in the upstream cairo MR.)

Differential Revision: https://phabricator.services.mozilla.com/D121602
2021-08-04 12:56:48 +00:00
Jonathan Kew 9c97d0c7bc Bug 1722300 - patch 4 - Implement internal destinations when generating PDF output through cairo. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D120960
2021-08-04 12:52:38 +00:00
Jonathan Kew aec1a8ca85 Bug 1722300 - patch 3 - Add basic support for internal named destinations when generating PDF output via cairo-quartz-surface. r=jrmuizel
Like the earlier support for the Link tag, this is a minimal version
that just implements the features we actually use.

Differential Revision: https://phabricator.services.mozilla.com/D121240
2021-08-04 12:52:37 +00:00
Jonathan Kew c8767e7306 Bug 1722300 - patch 2 - Pull in cairo MR "pdf links: fix forward references to dest names with 'internal' flag". r=jrmuizel
This is https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/220, required so that
we can use the 'internal' attribute when generating link destinations.

Differential Revision: https://phabricator.services.mozilla.com/D121239
2021-08-04 12:52:37 +00:00
Jonathan Kew c0b0f4fc91 Bug 1722300 - patch 1 - Pull recent PDF fixes/enhancements from upstream cairo (master branch). r=jrmuizel
In particular this includes the changes from cairo MRs

  https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/197 (pdf-object-streams)
  https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/213 (floating-point glyph widths)

The object-stream support gives us significantly more compact PDF output.

Differential Revision: https://phabricator.services.mozilla.com/D121238
2021-08-04 12:52:36 +00:00
Robert Mader 7aea8e97e7 Bug 1720375 - Restructure surface pool into a buffer pool,r=stransky,gfx-reviewers,lsalzman
Note: Sorry in advance that this patch is so big. Unfortunately
splitting it up would create lots of redundant changes.
This should be the last big refactoring for the Wayland compositor
backend for now.

Up until now SurfacePoolWayland was a pool of actual `wl_surface`s,
as before bug 1718569 we had no direct access to `wl_buffer`s when
using EGL. However, the way `SurfacePoolCA` manages native surfaces
is closer to what in Wayland terminology would be a buffer pool:
buffers are heavy-weight and expansive to allocate, while
`wl_surface` objects are cheap to recreate.

So instead of having a pool of surfaces, each of them having its
own pool of buffers, make `wl_surface`s part of tiles and make
`SurfacePoolWayland` manage `wl_buffer`s (in the form of SHM- or
DMABuf buffers). This will allow us to share buffers (especially
depth buffers) more efficiently, reducing VRAM usage and allocation
times.
Apart from that it will also simplify our tile management logic.
Most importantly, we'll need to reorder `wl_surface`s less often and
less complex (no `place_below` the parent surface) and can also drop
reattaching subsurfaces to compositors. Especially the former will
likely decrease CPU time in compositors.

Overall this patch makes `NativeLayerWayland` behave more like
`NativeLayerCA` while taking in lessons learned from
`WindowSurfaceWaylandMB`.

Differential Revision: https://phabricator.services.mozilla.com/D119993
2021-08-04 12:43:21 +00:00
Marian-Vasile Laza e954091acf Backed out 2 changesets (bug 1720965) for causing bustages on nsContentUtils.cpp. CLOSED TREE
Backed out changeset 2ed56ddce45a (bug 1720965)
Backed out changeset 3531708ab54e (bug 1720965)
2021-08-04 03:14:29 +03:00
Glenn Watson e8dde5e24e Bug 1723429 - Remove snapping from shadow primitive offsets r=aosmond,gfx-reviewers
The pending primitives have already been snapped, so this only
has an effect if the shadow offset is fractional. If that's the
case, it's probably reasonable to either (a) not snap at all,
or (b) round the shadow offset earlier.

Differential Revision: https://phabricator.services.mozilla.com/D121500
2021-08-03 20:36:04 +00:00
Jeff Gilbert fba93f87af Bug 1720965 - Give up on move semantics for Shmem for now. r=nika
Don't pretend that it's not a copy, as this causes readers to get the
wrong impression of how it behaves.

Differential Revision: https://phabricator.services.mozilla.com/D120124
2021-08-03 20:06:55 +00:00
Jamie Nicol e9869b1c8f Bug 1720169 - Pack instance data for multiple draw calls in to large fixed-size VBOs. r=gfx-reviewers,nical
Currently each VAO owns its own VBO for per-instance array data. Prior
to submitting each draw call that instance buffer is orphaned and a
new one allocated at exactly the right size to contain the batch's
data. This frequent reallocation appears to cause a rendering glitch
on some Adreno 4xx devices, likely due to a bug in the driver's
internal allocation/recycling code. It can also be expensive on some
devices, as the drivers struggle with the overheads of allocating many
small buffers much more than the cost of actually transferring the
data.

This patch makes it so that the VAOs no longer own an instance buffer
each. Instead, they share a pool of buffers. This pool always
allocates buffers large enough to hold the largest batch we
allow. update_vao_instances() now writes data to the pool's current
buffer until that buffer is full, and then either an old one will be
recycled or a new one allocated. After writing to the buffer it must
be bound to the VAO at the correct offset, and then the draw call is
submitted.

By manually managing the buffer lifecycles ourselves we avoid the
glitches on Adreno 4xx, and also improve performance on some devices.

Differential Revision: https://phabricator.services.mozilla.com/D121104
2021-08-03 15:47:35 +00:00
Dorel Luca 585240571a Backed out 2 changesets (bug 1717151) for Crashtest failures in dom/media/gmp/GMPServiceParent.cpp. CLOSED TREE
Backed out changeset adc225dcc004 (bug 1717151)
Backed out changeset 0ca0354e2a44 (bug 1717151)
2021-08-03 01:56:11 +03:00
Jeff Gilbert 002654edda Bug 1717151 - Move EGL_EXT_device_query from device exts to client exts. r=lsalzman
This moved due to a fix in ANGLE 56663dbfa78 on 2020-nov-19.

Differential Revision: https://phabricator.services.mozilla.com/D121561
2021-08-02 19:10:37 +00:00
Jeff Gilbert 6c765664f2 Bug 1717151 - Update ANGLE to chromium/4515. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D121560
2021-08-02 19:10:33 +00:00
Jonathan Kew c899d04fbf Bug 1721223 - Ensure platform font fallback can find the macOS system font, even though it is omitted from the shared font list. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D120458
2021-08-02 12:43:46 +00:00
Alexandru Michis 326297bd47 Backed out changeset e41bfdf79fb8 (bug 1665476) for causing windows mochitest failures in test_windowminmaxsize.xhtml
CLOSED TREE
2021-08-02 02:14:52 +03:00
Emilio Cobos Álvarez 275707a51b Bug 1665476 - Remove nsRootBoxFrame to unify background propagation between XUL and non-XUL documents. r=layout-reviewers,mats
It's unused on mozilla-central, and Thunderbird can just use the canvas
frame as regular (X)HTML documents, so just use a canvas frame instead
of an nsRootBoxFrame for XUL as well.

nsRootBoxFrame was needed because of various XUL-specific things like
tooltips and so on lived there. But with the move away from XUL, that
functionality has been added to nsCanvasFrame already, behind a
principal check instead.

This also allows simplifying our background propagation setup, which was
only half-working for XUL documents (this bug is a consequence of that).

With this, most of the callers of nsCSSRendering::IsCanvasFrame can go.
They're only two of the frames that would return true for that that
actually paint backgrounds (nsCanvasFrame and nsRootBoxFrame), so the
codepaths in display list building and painting can just check
frame->IsCanvasFrame() instead.

The remaining caller to that function is
nsContainerFrame::SyncWindowProperties, and the change is also legit, in
the sense that the only thing SyncWindowProperties() really cares about
is propagating the max/min-width constraints from the root element's
style to the view/widget, and the only frame that would return true from
IsCanvasFrame and have a view is the viewport frame which is the root of
the frame tree.

Differential Revision: https://phabricator.services.mozilla.com/D90846
2021-08-01 21:57:28 +00:00
Jonathan Kew 4e4c5fe35f Bug 1722689 - Don't clamp minimum font size on macOS to 1 pixel; allow really tiny sizes (which may subsequently be scaled). r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D121456
2021-08-01 20:06:38 +00:00
Lee Salzman 368b3baa4c Bug 1719232 - Simplify check for empty valid rect. r=jrmuizel
We know from testing that the device valid rect itself can sometimes
be empty which produces the symptom that the compositor valid rect
is empty after quantization to i32. So it is sufficient to just check
if that device rect is empty, rather than having to use get_surface_rect
to reproduce the math downstream that produces the compositor valid
rect.

Differential Revision: https://phabricator.services.mozilla.com/D121453
2021-07-31 13:27:24 +00:00
Kashav Madan f090aabc96 Bug 1718761 - Move {Start,Stop}ApzAutoscroll to CanonicalBrowsingContext, r=Gijs,hiro
This accomplishes 2 things:

1. Allows us to directly fetch the layersId of the process that is
   autoscrolling, which avoids having to fetch it in AutoScrollChild and pass it
   around. This fixes autoscrolling out-of-process frames with Fission enabled.
2. Makes it easier to handle autoscrolling of in-process documents, since that
   can't happen through PBrowser.

Differential Revision: https://phabricator.services.mozilla.com/D120766
2021-07-31 01:39:09 +00:00
Sandor Molnar ca94997814 Backed out changeset 4593c3d66951 (bug 1718761) for causing clang build bustages. CLOSED TREE 2021-07-31 03:44:56 +03:00
Kashav Madan c84c4eb9d7 Bug 1718761 - Move {Start,Stop}ApzAutoscroll to CanonicalBrowsingContext, r=Gijs,hiro
This accomplishes 2 things:

1. Allows us to directly fetch the layersId of the process that is
   autoscrolling, which avoids having to fetch it in AutoScrollChild and pass it
   around. This fixes autoscrolling out-of-process frames with Fission enabled.
2. Makes it easier to handle autoscrolling of in-process documents, since that
   can't happen through PBrowser.

Differential Revision: https://phabricator.services.mozilla.com/D120766
2021-07-30 23:39:32 +00:00
Lee Salzman a0e4108ae9 Bug 1722858 - Use a crossbeam channel for glyph rasterization results. r=jrmuizel
The mpsc channel used for reporting glyph rasterization results does not implement
Sync/Send, so the recommended usage pattern is to wrap the channel endpoints in a
Mutex to safeguard them. This, however, turns out to be slow in some cases. Instead,
just always use a crossbeam channel which is thread-safe to begin with and does not
require a Mutex.

Differential Revision: https://phabricator.services.mozilla.com/D121244
2021-07-30 15:05:59 +00:00
Andrew Osmond ad79e705fd Bug 1722913 - Port remaining tests on Linux to WebRender. r=jmaher,perftest-reviewers,AlexandruIonescu
This corrects a number of tests that got disabled in the transition, and
a few that we never moved over. It also disables the non-WebRender
versions of many tests.

autoland

--- target_task_set@6d262ed
+++ target_task_set@ao_ci_linux_tsan
+test-linux1804-64-asan-qr/opt-marionette-fis-e10s
+test-linux1804-64-asan-qr/opt-mochitest-plain-e10s
+test-linux1804-64-asan-qr/opt-mochitest-plain-fis-e10s
+test-linux1804-64-asan-qr/opt-mochitest-plain-gpu-e10s
+test-linux1804-64-asan-qr/opt-reftest-fis-e10s
+test-linux1804-64-asan-qr/opt-test-verify-gpu-e10s
-test-linux1804-64-asan/opt-cppunit-1proc
-test-linux1804-64-asan/opt-firefox-ui-functional-local-e10s
-test-linux1804-64-asan/opt-firefox-ui-functional-remote-e10s
-test-linux1804-64-asan/opt-gtest-1proc
-test-linux1804-64-asan/opt-jsreftest-e10s
-test-linux1804-64-asan/opt-marionette-e10s
-test-linux1804-64-asan/opt-marionette-fis-e10s
-test-linux1804-64-asan/opt-mochitest-a11y-1proc
-test-linux1804-64-asan/opt-mochitest-chrome-1proc
-test-linux1804-64-asan/opt-mochitest-chrome-gpu-e10s
-test-linux1804-64-asan/opt-mochitest-plain-e10s
-test-linux1804-64-asan/opt-mochitest-plain-fis-e10s
-test-linux1804-64-asan/opt-mochitest-plain-gpu-e10s
-test-linux1804-64-asan/opt-mochitest-remote-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-core-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-core-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-ext-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-ext-fis-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-ext-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-core-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-core-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-fis-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-fis-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-gli-e10s
-test-linux1804-64-asan/opt-reftest-fis-e10s
-test-linux1804-64-asan/opt-xpcshell-e10s
+test-linux1804-64-qr/debug-test-verify-gpu-e10s
+test-linux1804-64-qr/debug-test-verify-wpt-e10s
+test-linux1804-64-qr/debug-xpcshell-spi-nw-e10s
+test-linux1804-64-qr/opt-browser-screenshots-e10s
+test-linux1804-64-qr/opt-marionette-headless-e10s
+test-linux1804-64-qr/opt-marionette-headless-fis-e10s
+test-linux1804-64-qr/opt-test-verify-gpu-e10s
+test-linux1804-64-qr/opt-test-verify-wpt-e10s
-test-linux1804-64/debug-cppunit-1proc
-test-linux1804-64/debug-firefox-ui-functional-local-e10s
-test-linux1804-64/debug-firefox-ui-functional-remote-e10s
-test-linux1804-64/debug-gtest-1proc
-test-linux1804-64/debug-jsreftest-e10s
-test-linux1804-64/debug-marionette-e10s
-test-linux1804-64/debug-marionette-fis-e10s
-test-linux1804-64/debug-mochitest-a11y-1proc
-test-linux1804-64/debug-mochitest-chrome-1proc
-test-linux1804-64/debug-mochitest-chrome-gpu-e10s
-test-linux1804-64/debug-mochitest-plain-e10s
-test-linux1804-64/debug-mochitest-plain-gpu-e10s
-test-linux1804-64/debug-mochitest-remote-e10s
-test-linux1804-64/debug-mochitest-webgl1-core-e10s
-test-linux1804-64/debug-mochitest-webgl1-core-gli-e10s
-test-linux1804-64/debug-mochitest-webgl1-ext-e10s
-test-linux1804-64/debug-mochitest-webgl1-ext-gli-e10s
-test-linux1804-64/debug-mochitest-webgl2-core-e10s
-test-linux1804-64/debug-mochitest-webgl2-core-gli-e10s
-test-linux1804-64/debug-mochitest-webgl2-ext-e10s
-test-linux1804-64/debug-mochitest-webgl2-ext-gli-e10s
-test-linux1804-64/debug-test-verify-e10s
-test-linux1804-64/debug-test-verify-gpu-e10s
-test-linux1804-64/debug-test-verify-wpt-e10s
-test-linux1804-64/debug-xpcshell-e10s
-test-linux1804-64/debug-xpcshell-spi-nw-e10s
-test-linux1804-64/opt-browser-screenshots-e10s
-test-linux1804-64/opt-cppunit-1proc
-test-linux1804-64/opt-firefox-ui-functional-local-e10s
-test-linux1804-64/opt-firefox-ui-functional-remote-e10s
-test-linux1804-64/opt-gtest-1proc
-test-linux1804-64/opt-jsreftest-e10s
-test-linux1804-64/opt-marionette-e10s
-test-linux1804-64/opt-marionette-fis-e10s
-test-linux1804-64/opt-marionette-headless-e10s
-test-linux1804-64/opt-marionette-headless-fis-e10s
-test-linux1804-64/opt-mochitest-a11y-1proc
-test-linux1804-64/opt-mochitest-chrome-1proc
-test-linux1804-64/opt-mochitest-chrome-gpu-e10s
-test-linux1804-64/opt-mochitest-plain-e10s
-test-linux1804-64/opt-mochitest-plain-gpu-e10s
-test-linux1804-64/opt-mochitest-remote-e10s
-test-linux1804-64/opt-mochitest-webgl1-core-e10s
-test-linux1804-64/opt-mochitest-webgl1-core-gli-e10s
-test-linux1804-64/opt-mochitest-webgl1-ext-e10s
-test-linux1804-64/opt-mochitest-webgl1-ext-gli-e10s
-test-linux1804-64/opt-mochitest-webgl2-core-e10s
-test-linux1804-64/opt-mochitest-webgl2-core-gli-e10s
-test-linux1804-64/opt-mochitest-webgl2-ext-e10s
-test-linux1804-64/opt-mochitest-webgl2-ext-gli-e10s
-test-linux1804-64/opt-test-verify-e10s
-test-linux1804-64/opt-test-verify-gpu-e10s
-test-linux1804-64/opt-test-verify-wpt-e10s
-test-linux1804-64/opt-xpcshell-e10s

mozilla-central

--- target_task_set@6d262ed
+++ target_task_set@ao_ci_linux_tsan
+test-linux1804-64-asan-qr/opt-marionette-fis-e10s
+test-linux1804-64-asan-qr/opt-mochitest-plain-e10s
+test-linux1804-64-asan-qr/opt-mochitest-plain-fis-e10s
+test-linux1804-64-asan-qr/opt-mochitest-plain-gpu-e10s
+test-linux1804-64-asan-qr/opt-reftest-fis-e10s
-test-linux1804-64-asan/opt-cppunit-1proc
-test-linux1804-64-asan/opt-firefox-ui-functional-local-e10s
-test-linux1804-64-asan/opt-firefox-ui-functional-remote-e10s
-test-linux1804-64-asan/opt-gtest-1proc
-test-linux1804-64-asan/opt-jsreftest-e10s
-test-linux1804-64-asan/opt-marionette-e10s
-test-linux1804-64-asan/opt-marionette-fis-e10s
-test-linux1804-64-asan/opt-mochitest-a11y-1proc
-test-linux1804-64-asan/opt-mochitest-chrome-1proc
-test-linux1804-64-asan/opt-mochitest-chrome-gpu-e10s
-test-linux1804-64-asan/opt-mochitest-plain-e10s
-test-linux1804-64-asan/opt-mochitest-plain-fis-e10s
-test-linux1804-64-asan/opt-mochitest-plain-gpu-e10s
-test-linux1804-64-asan/opt-mochitest-remote-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-core-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-core-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-ext-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-ext-fis-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-ext-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-core-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-core-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-fis-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-fis-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-gli-e10s
-test-linux1804-64-asan/opt-reftest-fis-e10s
-test-linux1804-64-asan/opt-xpcshell-e10s
+test-linux1804-64-ccov-qr/opt-cppunit-1proc
+test-linux1804-64-ccov-qr/opt-firefox-ui-functional-local-e10s
+test-linux1804-64-ccov-qr/opt-firefox-ui-functional-remote-e10s
+test-linux1804-64-ccov-qr/opt-gtest-1proc
+test-linux1804-64-ccov-qr/opt-jittest-1proc
+test-linux1804-64-ccov-qr/opt-jsreftest-e10s
+test-linux1804-64-ccov-qr/opt-marionette-e10s
+test-linux1804-64-ccov-qr/opt-mochitest-a11y-1proc
+test-linux1804-64-ccov-qr/opt-mochitest-chrome-1proc
+test-linux1804-64-ccov-qr/opt-mochitest-chrome-gpu-e10s
+test-linux1804-64-ccov-qr/opt-mochitest-plain-e10s
+test-linux1804-64-ccov-qr/opt-mochitest-plain-gpu-e10s
+test-linux1804-64-ccov-qr/opt-mochitest-remote-e10s
+test-linux1804-64-ccov-qr/opt-mochitest-webgl1-core-e10s
+test-linux1804-64-ccov-qr/opt-mochitest-webgl1-ext-e10s
+test-linux1804-64-ccov-qr/opt-mochitest-webgl2-core-e10s
+test-linux1804-64-ccov-qr/opt-mochitest-webgl2-ext-e10s
+test-linux1804-64-ccov-qr/opt-test-coverage-e10s
+test-linux1804-64-ccov-qr/opt-test-coverage-wpt-e10s
-test-linux1804-64-ccov/opt-cppunit-1proc
-test-linux1804-64-ccov/opt-firefox-ui-functional-local-e10s
-test-linux1804-64-ccov/opt-firefox-ui-functional-remote-e10s
-test-linux1804-64-ccov/opt-gtest-1proc
-test-linux1804-64-ccov/opt-jittest-1proc
-test-linux1804-64-ccov/opt-jsreftest-e10s
-test-linux1804-64-ccov/opt-marionette-e10s
-test-linux1804-64-ccov/opt-mochitest-a11y-1proc
-test-linux1804-64-ccov/opt-mochitest-chrome-1proc
-test-linux1804-64-ccov/opt-mochitest-chrome-gpu-e10s
-test-linux1804-64-ccov/opt-mochitest-plain-e10s
-test-linux1804-64-ccov/opt-mochitest-plain-gpu-e10s
-test-linux1804-64-ccov/opt-mochitest-remote-e10s
-test-linux1804-64-ccov/opt-mochitest-webgl1-core-e10s
-test-linux1804-64-ccov/opt-mochitest-webgl1-ext-e10s
-test-linux1804-64-ccov/opt-mochitest-webgl2-core-e10s
-test-linux1804-64-ccov/opt-mochitest-webgl2-ext-e10s
-test-linux1804-64-ccov/opt-test-coverage-e10s
-test-linux1804-64-ccov/opt-test-coverage-wpt-e10s
-test-linux1804-64-ccov/opt-xpcshell-e10s
+test-linux1804-64-ccov-qr/opt-xpcshell-e10s
+test-linux1804-64-qr/debug-xpcshell-spi-nw-e10s
+test-linux1804-64-shippable-qr/opt-browser-screenshots-e10s
+test-linux1804-64-shippable-qr/opt-marionette-headless-e10s
+test-linux1804-64-shippable-qr/opt-marionette-headless-fis-e10s
+test-linux1804-64-shippable-qr/opt-mochitest-plain-headless-e10s
+test-linux1804-64-shippable-qr/opt-mochitest-plain-headless-fis-e10s
+test-linux1804-64-shippable-qr/opt-talos-flex-e10s
-test-linux1804-64-shippable/opt-awsy-base-e10s
-test-linux1804-64-shippable/opt-awsy-e10s
-test-linux1804-64-shippable/opt-awsy-tp6-e10s
-test-linux1804-64-shippable/opt-browser-screenshots-e10s
-test-linux1804-64-shippable/opt-browsertime-firefox-youtube-playback-h264-sfr-e10s
-test-linux1804-64-shippable/opt-browsertime-firefox-youtube-playback-hfr-e10s
-test-linux1804-64-shippable/opt-browsertime-firefox-youtube-playback-vp9-sfr-e10s
-test-linux1804-64-shippable/opt-browsertime-firefox-youtube-playback-widevine-h264-sfr-e10s
-test-linux1804-64-shippable/opt-browsertime-firefox-youtube-playback-widevine-hfr-e10s
-test-linux1804-64-shippable/opt-browsertime-firefox-youtube-playback-widevine-vp9-sfr-e10s
-test-linux1804-64-shippable/opt-browsertime-tp6-essential-firefox-amazon-e10s
-test-linux1804-64-shippable/opt-browsertime-tp6-essential-firefox-bing-search-e10s
-test-linux1804-64-shippable/opt-browsertime-tp6-essential-firefox-cnn-e10s
-test-linux1804-64-shippable/opt-browsertime-tp6-essential-firefox-fandom-e10s
-test-linux1804-64-shippable/opt-browsertime-tp6-essential-firefox-google-slides-e10s
-test-linux1804-64-shippable/opt-browsertime-tp6-essential-firefox-instagram-e10s
-test-linux1804-64-shippable/opt-browsertime-tp6-essential-firefox-twitter-e10s
-test-linux1804-64-shippable/opt-browsertime-tp6-essential-firefox-wikipedia-e10s
-test-linux1804-64-shippable/opt-browsertime-tp6-essential-firefox-yahoo-mail-e10s
-test-linux1804-64-shippable/opt-cppunit-1proc
-test-linux1804-64-shippable/opt-firefox-ui-functional-local-e10s
-test-linux1804-64-shippable/opt-firefox-ui-functional-remote-e10s
-test-linux1804-64-shippable/opt-gtest-1proc
-test-linux1804-64-shippable/opt-jsreftest-e10s
-test-linux1804-64-shippable/opt-marionette-e10s
-test-linux1804-64-shippable/opt-marionette-fis-e10s
-test-linux1804-64-shippable/opt-marionette-headless-e10s
-test-linux1804-64-shippable/opt-marionette-headless-fis-e10s
-test-linux1804-64-shippable/opt-mochitest-a11y-1proc
-test-linux1804-64-shippable/opt-mochitest-chrome-1proc
-test-linux1804-64-shippable/opt-mochitest-chrome-gpu-e10s
-test-linux1804-64-shippable/opt-mochitest-plain-e10s
-test-linux1804-64-shippable/opt-mochitest-plain-gpu-e10s
-test-linux1804-64-shippable/opt-mochitest-plain-headless-e10s
-test-linux1804-64-shippable/opt-mochitest-plain-headless-fis-e10s
-test-linux1804-64-shippable/opt-mochitest-remote-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl1-core-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl1-core-gli-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl1-ext-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl1-ext-gli-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl2-core-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl2-core-gli-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl2-ext-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl2-ext-gli-e10s
-test-linux1804-64-shippable/opt-xpcshell-e10s
-test-linux1804-64/debug-cppunit-1proc
-test-linux1804-64/debug-firefox-ui-functional-local-e10s
-test-linux1804-64/debug-firefox-ui-functional-remote-e10s
-test-linux1804-64/debug-gtest-1proc
-test-linux1804-64/debug-jsreftest-e10s
-test-linux1804-64/debug-marionette-e10s
-test-linux1804-64/debug-marionette-fis-e10s
-test-linux1804-64/debug-mochitest-a11y-1proc
-test-linux1804-64/debug-mochitest-chrome-1proc
-test-linux1804-64/debug-mochitest-chrome-gpu-e10s
-test-linux1804-64/debug-mochitest-plain-e10s
-test-linux1804-64/debug-mochitest-plain-gpu-e10s
-test-linux1804-64/debug-mochitest-remote-e10s
-test-linux1804-64/debug-mochitest-webgl1-core-e10s
-test-linux1804-64/debug-mochitest-webgl1-core-gli-e10s
-test-linux1804-64/debug-mochitest-webgl1-ext-e10s
-test-linux1804-64/debug-mochitest-webgl1-ext-gli-e10s
-test-linux1804-64/debug-mochitest-webgl2-core-e10s
-test-linux1804-64/debug-mochitest-webgl2-core-gli-e10s
-test-linux1804-64/debug-mochitest-webgl2-ext-e10s
-test-linux1804-64/debug-mochitest-webgl2-ext-gli-e10s
-test-linux1804-64/debug-xpcshell-e10s
-test-linux1804-64/debug-xpcshell-spi-nw-e10s

mozilla-release

--- target_task_set@6d262ed
+++ target_task_set@ao_ci_linux_tsan
+test-linux1804-64-asan-qr/opt-mochitest-plain-e10s
+test-linux1804-64-asan-qr/opt-mochitest-plain-gpu-e10s
-test-linux1804-64-asan/opt-cppunit-1proc
-test-linux1804-64-asan/opt-firefox-ui-functional-local-e10s
-test-linux1804-64-asan/opt-firefox-ui-functional-remote-e10s
-test-linux1804-64-asan/opt-gtest-1proc
-test-linux1804-64-asan/opt-jsreftest-e10s
-test-linux1804-64-asan/opt-marionette-e10s
-test-linux1804-64-asan/opt-mochitest-a11y-1proc
-test-linux1804-64-asan/opt-mochitest-chrome-1proc
-test-linux1804-64-asan/opt-mochitest-chrome-gpu-e10s
-test-linux1804-64-asan/opt-mochitest-plain-e10s
-test-linux1804-64-asan/opt-mochitest-plain-gpu-e10s
-test-linux1804-64-asan/opt-mochitest-remote-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-core-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-ext-e10s
-test-linux1804-64-asan/opt-mochitest-webgl1-ext-fis-gli-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-core-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-fis-e10s
-test-linux1804-64-asan/opt-mochitest-webgl2-ext-fis-gli-e10s
-test-linux1804-64-asan/opt-xpcshell-e10s
+test-linux1804-64-shippable-qr/opt-marionette-headless-e10s
-test-linux1804-64-shippable/opt-awsy-base-e10s
-test-linux1804-64-shippable/opt-awsy-e10s
-test-linux1804-64-shippable/opt-awsy-tp6-e10s
-test-linux1804-64-shippable/opt-cppunit-1proc
-test-linux1804-64-shippable/opt-firefox-ui-functional-local-e10s
-test-linux1804-64-shippable/opt-firefox-ui-functional-remote-e10s
-test-linux1804-64-shippable/opt-gtest-1proc
-test-linux1804-64-shippable/opt-jsreftest-e10s
-test-linux1804-64-shippable/opt-marionette-e10s
-test-linux1804-64-shippable/opt-marionette-headless-e10s
-test-linux1804-64-shippable/opt-mochitest-a11y-1proc
-test-linux1804-64-shippable/opt-mochitest-chrome-1proc
-test-linux1804-64-shippable/opt-mochitest-chrome-gpu-e10s
-test-linux1804-64-shippable/opt-mochitest-plain-e10s
-test-linux1804-64-shippable/opt-mochitest-plain-gpu-e10s
-test-linux1804-64-shippable/opt-mochitest-remote-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl1-core-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl1-ext-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl2-core-e10s
-test-linux1804-64-shippable/opt-mochitest-webgl2-ext-e10s
-test-linux1804-64-shippable/opt-xpcshell-e10s
-test-linux1804-64/debug-cppunit-1proc
-test-linux1804-64/debug-firefox-ui-functional-local-e10s
-test-linux1804-64/debug-firefox-ui-functional-remote-e10s
-test-linux1804-64/debug-gtest-1proc
-test-linux1804-64/debug-jsreftest-e10s
-test-linux1804-64/debug-marionette-e10s
-test-linux1804-64/debug-mochitest-a11y-1proc
-test-linux1804-64/debug-mochitest-chrome-1proc
-test-linux1804-64/debug-mochitest-chrome-gpu-e10s
-test-linux1804-64/debug-mochitest-plain-e10s
-test-linux1804-64/debug-mochitest-plain-gpu-e10s
-test-linux1804-64/debug-mochitest-remote-e10s
-test-linux1804-64/debug-mochitest-webgl1-core-e10s
-test-linux1804-64/debug-mochitest-webgl1-ext-e10s
-test-linux1804-64/debug-mochitest-webgl2-core-e10s
-test-linux1804-64/debug-mochitest-webgl2-ext-e10s
-test-linux1804-64/debug-xpcshell-e10s
-test-linux1804-64/debug-xpcshell-spi-nw-e10s

Differential Revision: https://phabricator.services.mozilla.com/D121212
2021-07-30 12:23:37 +00:00
Mike Hommey 221139493a Bug 1721962 - Switch to pkg-config for X11 libraries. r=firefox-build-system-reviewers,jgilbert,andi
Differential Revision: https://phabricator.services.mozilla.com/D121309
2021-07-30 11:39:39 +00:00
Mike Hommey e9954811d5 Bug 1721962 - Don't assume XCFLAGS are always in CPPFLAGS on *bsd. r=firefox-build-system-reviewers,jgilbert,andi
Differential Revision: https://phabricator.services.mozilla.com/D121307
2021-07-30 11:39:38 +00:00
Emilio Cobos Álvarez 82baca9319 Bug 1722910 - Remove unused FrameLoader.requestNotifyAfterRemotePaint machinery. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D121195
2021-07-30 09:37:20 +00:00
Alexandru Michis 2b9cbf768a Backed out changeset 9c24c2012186 (bug 1720169) for causing webrender crashes. 2021-07-30 11:00:54 +03:00
Mike Hommey 03223f9ea4 Bug 1722653 - Remove MOZ_CAIRO_CFLAGS. r=firefox-build-system-reviewers,jgilbert,andi
Differential Revision: https://phabricator.services.mozilla.com/D121066
2021-07-29 23:38:31 +00:00
Mike Hommey d772552af8 Bug 1722653 - Stop preprocessing cairo-features.h. r=gfx-reviewers,firefox-build-system-reviewers,jrmuizel,andi
Some of the defines are outdated and never actually set, and the
remaining ones can be easily set through existing or easily added
ifdefs.

Differential Revision: https://phabricator.services.mozilla.com/D121064
2021-07-29 23:38:31 +00:00
Mike Hommey 25c71f548b Bug 1722653 - Remove --enable-system-cairo. r=firefox-build-system-reviewers,jrmuizel,andi
It hasn't been supported since bug 1432751, > 3 years ago.

Differential Revision: https://phabricator.services.mozilla.com/D121063
2021-07-29 23:38:30 +00:00
Mike Hommey 3282e2080d Bug 1722454 - Remove USE_SKIA. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120935
2021-07-29 23:29:44 +00:00
Mike Hommey daab1d49e3 Bug 1722454 - Remove --disable-skia. r=firefox-build-system-reviewers,gfx-reviewers,nical,andi
It has been unsupported since bug 1323303, > 4 years ago.

This removes MOZ_ENABLE_SKIA but keeps USE_SKIA for moz2d for now

Differential Revision: https://phabricator.services.mozilla.com/D120933
2021-07-29 23:29:43 +00:00
Andrew Osmond 2a4132a521 Bug 1718329 - Gracefully handle device reset when mapping tiles with SW-WR + D3D11 compositing. r=jrmuizel
If we encounter a device reset in
RenderCompositorD3D11SWGL::TileD3D11::Map, we should fail the call, and
rely upon the device reset checks at the end of a render pass to
recreate our compositor sessions.

Differential Revision: https://phabricator.services.mozilla.com/D121251
2021-07-29 22:45:41 +00:00
Csoregi Natalia eda68bd6fd Merge mozilla-central to autoland. CLOSED TREE 2021-07-30 00:46:59 +03:00
Csoregi Natalia 2aa97aea10 Merge autoland to mozilla-central. a=merge 2021-07-30 00:43:06 +03:00
Lee Salzman f65cb0778b Bug 1719232 - Skip render tasks with empty valid rects. r=gw
Some clang/rustc build setups seem to result in rounding scenarios where the
valid rect, once converted to i32, is somehow empty. This can cause downwind
problems if we actually try to render those tiles. Instead, just cull it before
it becomes a problem.

Differential Revision: https://phabricator.services.mozilla.com/D121144
2021-07-29 20:48:10 +00:00
Glenn Watson 1cfeaeb584 Bug 1722838 - Add DisplayListPayload struct r=jrmuizel,gfx-reviewers,nical
Although this currently only contains the existing data u8 vec of
serialized bytes, it will allow us to expand this structure in
future to contain other byte arrays.

This will be used for storing other payload information, such as
interned primitive types or data updates.

Differential Revision: https://phabricator.services.mozilla.com/D121160
2021-07-29 20:23:30 +00:00
Csoregi Natalia 1439cf57eb Backed out 2 changesets (bug 1717151) for causing bustage on validationEGL.h. CLOSED TREE
Backed out changeset 06d6ad49726c (bug 1717151)
Backed out changeset ee22b6243926 (bug 1717151)
2021-07-29 22:52:24 +03:00
Jeff Gilbert 555b7c9143 Bug 1717151 - Move EGL_EXT_device_query from device exts to client exts. r=lsalzman
This moved due to a fix in ANGLE 56663dbfa78 on 2020-nov-19.

Differential Revision: https://phabricator.services.mozilla.com/D121216
2021-07-29 19:16:32 +00:00
Jeff Gilbert 1270d132ed Bug 1717151 - Update ANGLE to chromium/4515. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D118551
2021-07-29 19:16:28 +00:00
Jamie Nicol 0efd692f47 Bug 1721795 - Pack cs_border_solid's vMixColors in to vector to work around driver bug. r=gfx-reviewers,lsalzman
We have in the past encountered a driver bug on Adreno 3xx devices
where using a flat scalar varying causes the fragment shader output to
be incorrect. See bugs 1630356 and 1705433.

We have now encountered this in cs_border_solid too, due to
vMixColors. As before, packing the varying in to a vector works around
the bug.

Differential Revision: https://phabricator.services.mozilla.com/D121211
2021-07-29 18:31:36 +00:00
Csoregi Natalia bc4c680c8d Backed out 3 changesets (bug 1722258) for causing Bug 1722935. a=backout
Backed out changeset cf8a1175abd1 (bug 1722258)
Backed out changeset 41176d476eb7 (bug 1722258)
Backed out changeset 4149d596d03d (bug 1722258)
2021-07-29 20:19:48 +03:00
Noemi Erli a523fe1ad1 Backed out changeset 3cb3442efede (bug 1622846) for causing Bug 1722702 CLOSED TREE 2021-07-29 20:14:46 +03:00
Jamie Nicol caa4b1bc0c Bug 1720169 - Pack instance data for multiple draw calls in to large fixed-size VBOs. r=gfx-reviewers,nical
Currently each VAO owns its own VBO for per-instance array data. Prior
to submitting each draw call that instance buffer is orphaned and a
new one allocated at exactly the right size to contain the batch's
data. This frequent reallocation appears to cause a rendering glitch
on some Adreno 4xx devices, likely due to a bug in the driver's
internal allocation/recycling code. It can also be expensive on some
devices, as the drivers struggle with the overheads of allocating many
small buffers much more than the cost of actually transferring the
data.

This patch makes it so that the VAOs no longer own an instance buffer
each. Instead, they share a pool of buffers. This pool always
allocates buffers large enough to hold the largest batch we
allow. update_vao_instances() now writes data to the pool's current
buffer until that buffer is full, and then either an old one will be
recycled or a new one allocated. After writing to the buffer it must
be bound to the VAO at the correct offset, and then the draw call is
submitted.

By manually managing the buffer lifecycles ourselves we avoid the
glitches on Adreno 4xx, and also improve performance on some devices.

Differential Revision: https://phabricator.services.mozilla.com/D121104
2021-07-29 15:59:13 +00:00
Alexandre Lissy 6f829420e7 Bug 1718210 - Release the compositor thread earlier r=mattwoodrow
While running SandboxTest on Windows/Debug setup we can encounter a GPU
process hanging at shutdown. This is due to a destruction race between
GPUParent and VideoBridgeParent, and we end up with one
CompositorThreadHolder reference that is not properly released, making
the GPU process waiting for it.

This change aims at doing the release earlier to prevent such a
destruction race.

Differential Revision: https://phabricator.services.mozilla.com/D121045
2021-07-29 15:07:24 +00:00
Bob Owen f1dd3496a2 Bug 1722204: Fix clean up of some RecordedEvents on failure. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D120996
2021-07-29 14:52:26 +00:00
Dorel Luca d51c69b246 Backed out changeset de2e92cbb94d (bug 1720152) for WPT failures in html/browsers/windows/iframe-cross-origin-print.sub.html. CLOSED TREE 2021-07-29 05:52:23 +03:00
Matt Woodrow 63077e7c59 Bug 1720152 - Recurse into replay for dependencies, rather than using a temp surface. r=jrmuizel,bobowen
Differential Revision: https://phabricator.services.mozilla.com/D120050
2021-07-29 01:34:04 +00:00
Hiroyuki Ikezoe 46e955a096 Bug 1722673 - Add a null check for the current WindowGlobalParent in QueuePaint(). r=emilio
This may be another source of failing OOP iframe document print. I will try to
see whether it can be reproducible locally later.

Differential Revision: https://phabricator.services.mozilla.com/D121075
2021-07-28 21:00:32 +00:00
Matt Woodrow 7cd494afba Bug 1722258 - Convert more LayerManager usage to use WindowRenderer. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D120920
2021-07-28 20:58:22 +00:00
Florian Quèze fdeb4f2306 Bug 1641298 - record a CompositorScreenshotWindowDestroyed marker from ProfilerScreenshots to indicate to the profiler front-end that a window has been closed, r=mstange.
Differential Revision: https://phabricator.services.mozilla.com/D120729
2021-07-28 17:21:09 +00:00
Andrew Osmond a742ce8568 Bug 1722723 - Fix benign data race in OMTASampler::Sample. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D121091
2021-07-28 14:33:21 +00:00
Andrew Osmond 56948dcec7 Bug 1722725 - Fix benign race in AsyncPanZoomController::SetTestAsyncScrollOffset. r=gfx-reviewers,jrmuizel
This got tripped in the tsan tests, but should only happen during
testing.

Differential Revision: https://phabricator.services.mozilla.com/D121092
2021-07-28 14:32:54 +00:00
Jeff Muizelaar f3d15afeac Bug 1722635 - Add some brief Moz2D documentation. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D121035
2021-07-28 13:11:41 +00:00
Nicolas Silva 92039c823e Bug 1711648 - Remove redundant Box2d type. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120069
2021-07-28 12:45:28 +00:00
Nicolas Silva 7315cd8716 Bug 1721437 - Render clear tiles before alpha tiles. r=gfx-reviewers,bradwerth
Before this patch the clear tiles were drawn last which meant they would always be drawn on top of all transparent content. It was finde under the assumption that nothing is ever rendered on top of clear tiles, however it turns out to be an issue with the proton window modal darkining which renders some semi-transparent black on top of the whole window (including window controls on windows 8 which use clear tiles). Since the occlusion culling treats clear tiles as opaque they will cut through anything under them regardless of the drawing order, so we can render them before transaprent tiles to get the correct result which is to overwrite what's under the clear tile while still being able to render semi-transparent content on top.

Differential Revision: https://phabricator.services.mozilla.com/D120844
2021-07-28 12:44:08 +00:00
Botond Ballo fea99c4972 Bug 1719913 - Add a mochitest. r=tnikkel
Depends on D120568

Differential Revision: https://phabricator.services.mozilla.com/D120779
2021-07-28 03:20:18 +00:00
Botond Ballo 3097d2d6af Bug 1719913 - Simplify representation of StackingContextHelper::mDeferredTransformItem. r=tnikkel
Maybe<T*> is a redundant representation if there is no semantic
difference between Nothing() and Some(nullptr), and just makes
for cumbersome access syntax.

Differential Revision: https://phabricator.services.mozilla.com/D120568
2021-07-28 03:20:18 +00:00
Botond Ballo 65b7c16aa6 Bug 1719913 - Make sure transforms end up on a hit testing tree node corresponding to their ASR. r=tnikkel
Transforms stored in WebRenderLayerScrollData::mAncestorTransform would
always end up on the topmost hit-testing tree node generated by that
WebRenderLayerScrollData node. That topmost node may not correspond
to the ASR of the transform item(s) which are the source of the
mAncestorTransform. The transform being in the wrong place in the
hit-testing tree can in turn violate APZ's assumptions about different
nodes that scroll together having the same ancestor transform.

To resolve this, this patch stores the transform item's ASR in the
WebRenderLayerScrollData, and applies it to the matching hit-testing
tree node.

Differential Revision: https://phabricator.services.mozilla.com/D120567
2021-07-28 03:20:17 +00:00
Botond Ballo a57f7dcbdd Bug 1719913 - Factor out a ViewID typedef in WebRenderScrollData.h. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D120566
2021-07-28 03:20:17 +00:00