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

41522 Коммитов

Автор SHA1 Сообщение Дата
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
Botond Ballo a3a128364a Bug 1719913 - Fix an include-what-you-use error in WebRenderScrollDataWrapper.h. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D120565
2021-07-28 03:20:17 +00:00
Botond Ballo 243b00a2fc Bug 1719913 - Fix the comment describing what FrameMetrics::mCompositionBounds is relative to. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D120564
2021-07-28 03:20:16 +00:00
Dzmitry Malyshau 9963bd1ee1 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-07-27 22:37:46 +00:00
Glenn Watson d0fc879729 Bug 1721943 - Fix clear of picture graph update passes r=kvark,gfx-reviewers
When changing a reserve/push loop to a resize_with during review
I accidentally removed the clear. This can mean that we end up
with duplicate entries in this pass update arrays.

Differential Revision: https://phabricator.services.mozilla.com/D120690
2021-07-27 15:41:37 +00:00
Shravan Narayan feb65868cc Bug 1722127 - Modify rlbox graphite struct defs for windows compat r=tjr
Differential Revision: https://phabricator.services.mozilla.com/D120777
2021-07-27 13:09:44 +00:00
Emilio Cobos Álvarez e5fc71cc00 Bug 1722009 - Map system-ui to the `menu` font family. r=jfkthame
This seems to be what Chrome does on Windows, and should do the right
thing in other OSes.

On macOS we can do something better and look up the language-dependent
font. That requires further work, but shouldn't probably block this (as
long as system-ui is turned off by default at least).

Differential Revision: https://phabricator.services.mozilla.com/D120714
2021-07-27 11:11:51 +00:00
Emilio Cobos Álvarez f501d497d2 Bug 1720710 - Add system-ui boilerplate. r=jfkthame
Alias -apple-system to it, and put it behind a pref for now. This is
pretty boring (read: uncontroversial hopefully) code. The follow-up work
is modifying StaticPresData to look up the fonts using system APIs,
probably. Maybe a bit more work if on macOS they can't be named.

Differential Revision: https://phabricator.services.mozilla.com/D119984
2021-07-27 11:11:51 +00:00
sotaro b2c6affaea Bug 1721098 - Call reset_overlaps() in begin_frame() r=lsalzman
If invalidate_tile() is called not between an enclosing begin_frame()/end_frame(), the tile invalid flag could exist as true in next begin_frame()/end_frame(). It causes the problem. The flag needs to be cleared in begin_frame().

Differential Revision: https://phabricator.services.mozilla.com/D120823
2021-07-27 06:26:35 +00:00
Hiroyuki Ikezoe a5ecf77776 Bug 1695806 - Defer sending a snapshot reqeust for remote process iframe until cloning the iframe document finished. r=mattwoodrow,nika
Differential Revision: https://phabricator.services.mozilla.com/D119950
2021-07-27 00:47:44 +00:00
Emilio Cobos Álvarez 71a69ae4ed Bug 1721648 - Use the promise version of SpecialPowers.pushPrefEnv in APZ tests to ensure that we wait if needed. r=hiro
The callback version doesn't necessarily wait for rAF if needed:

  https://searchfox.org/mozilla-central/rev/59e797b66f5ce8a27ede0e7677688931be7aed20/testing/specialpowers/content/SpecialPowersChild.jsm#902

This is legacy behavior, but switching to the promise version does the
right thing.

Differential Revision: https://phabricator.services.mozilla.com/D120869
2021-07-26 23:29:16 +00:00
Jonathan Kew aeecb02ab6 Bug 1722232 - Revert changeset 5689add84fe2 (bug 1717685) and take the upstream version of the fix from https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/195 instead. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120801
2021-07-25 17:30:00 +00:00
Matt Woodrow 4dd3275fd0 Bug 1720986 - Reinstate clipping filters within SVG to the building rect. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120695
2021-07-25 08:31:25 +00:00
Emilio Cobos Álvarez 01317e823b Bug 1722031 - Fix RelativeLuminanceUtils::Adjust to not choke on blacks / zero components. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D120722
2021-07-24 13:30:25 +00:00
Jeff Muizelaar 1194fe927f Bug 1722055 - Rename gfx.webrender.force-disabled. r=aosmond
Change the pref name in anticipation of removing it completely
to see what the fallout will be.

Differential Revision: https://phabricator.services.mozilla.com/D120735
2021-07-23 17:00:29 +00:00
Bob Owen 9c2eb6b93f Bug 1718118: Check that texture sharing works for the canvas device. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120706
2021-07-23 14:04:31 +00:00
Matt Woodrow 912b7f8ef1 Bug 1721537 - Split out WindowRenderer base class from LayerManager. r=miko
Depends on D120439

Differential Revision: https://phabricator.services.mozilla.com/D120440
2021-07-22 22:58:57 +00:00
Jeff Muizelaar e873e6aa0f Bug 1721903 - Add the error code when we fail to Map a tile.
Differential Revision: https://phabricator.services.mozilla.com/D120675
2021-07-22 21:33:56 +00:00
Lee Salzman 6bf4f65df7 Bug 1721014 - Avoid use of rayon par_iter collect in WR glyph resolution. r=gw
Rayon's collect primitive is somehow establishing recursive dependencies on
waiting for task completion, such that if a lot of glyph jobs are submitted
all at once, this can result in huge recursive stack chains. This simplifies
the glyph job queuing to just send everything immediately over the result
channel, rather than waiting for all jobs in the batch (via collect). We then
rely upon sorting upon receipt to put everything back in a sane order.

Differential Revision: https://phabricator.services.mozilla.com/D120520
2021-07-22 15:48:30 +00:00
Kashav Madan 5781dca888 Bug 1720688 - Support extended attribute syntax in protocol declarations, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D119975
2021-07-22 02:24:43 +00:00
Glenn Watson 72aa128187 Bug 1721521 - Simplify PictureState semantics r=gfx-reviewers,lsalzman
Move plane splitter outside the picture state, meaning it doesn't
need to be retained in the picture primitive and passed around
during prepare pass. Another small step to simplifying the prepare
step (interim goal is to remove the recursion here, and then
introduce other prim types, such as a 3d rendering context, that
are able to "contain" child primitives).

Differential Revision: https://phabricator.services.mozilla.com/D120423
2021-07-21 22:39:44 +00:00
Glenn Watson 371f4cd13b Bug 1721111 - Introduce picture graph and port initial picture pass to use it r=gfx-reviewers,bradwerth,kvark
In future, we want to persist a lot more of the information about
primitive instances between display lists. This will allow us to
implement a number of optimizations and improvements to the scene
and frame building code (such as reducing per-frame per-prim work
that is typically mostly redundant, supporting prims other than
pictures that can contain child primitives, unifying and optimizing
primitive dependency updates).

As a step towards that, this patch introduces a picture graph which
is very similar to the idea of the render task graph builder. With
this in place, we're able to run picture updates without using
recursion, and ensuring we update pictures in the correct order
that the pass requires. This will allow us to un-tangle a lot of
the existing scene building, visibility, prep and batching pass
complexity, in order to be able to implement the above.

Differential Revision: https://phabricator.services.mozilla.com/D120191
2021-07-21 20:25:33 +00:00
Andrew Osmond e54096406f Bug 1715269 - Prefer WebRender over XRender, unless WebRender is force disabled. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120488
2021-07-21 16:50:46 +00:00
Andrew Osmond adb22f5066 Bug 1721626 - Allow Software WebRender in safe mode. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120475
2021-07-21 16:50:46 +00:00
Jamie Nicol ebec18b82f Bug 1714227 - Fully clear alpha targets prior to rendering on Adreno 4xx. r=gfx-reviewers,aosmond
On some Adreno 4xx devices with older drivers we have seen cases where
rendering of masks to alpha targets appears to have no effect. This
results in stale mask data being used for clipping resulting in, for
example, rounded corners appearing as rectangles or strange shapes
rather than solid colours.

This patch performs an unscissored glClear of an alpha target prior to
rendering to it on affected devices, which works around the bug.

Differential Revision: https://phabricator.services.mozilla.com/D120465
2021-07-21 13:37:21 +00:00
Jeff Muizelaar ee0926e1db Bug 1721596 - qcms: Rerun rustfmt. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D120466
2021-07-21 13:03:23 +00:00
Gerald Squelart e7e9ae90ae Bug 1721110 - profiler_current_thread_id() now returns ProfilerThreadId - r=florian
Differential Revision: https://phabricator.services.mozilla.com/D120225
2021-07-21 04:16:59 +00:00
Jeff Muizelaar 132a09618b Bug 1721515 - qcms: Remove some now unneeded unstable features. r=aosmond
These were used by our local NEON intrinsics implementation.
We don't need them anymore.

Differential Revision: https://phabricator.services.mozilla.com/D120420
2021-07-21 01:42:38 +00:00
Jeff Muizelaar 6edd219c43 Bug 1721484 - qcms: Fix extra space. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D120395
2021-07-20 21:36:45 +00:00
Jeff Muizelaar ad5985aca6 Bug 1721483 - qcms: Remove unneeded vim modelines. r=aosmond
These were inherited from the C code and are wrong and unneeded in
Rust.

Differential Revision: https://phabricator.services.mozilla.com/D120394
2021-07-20 21:36:18 +00:00
Jeff Muizelaar 2ed71226c3 Bug 1697818 - Drop handrolled NEON SIMD wrappers. r=aosmond
We require Rust 1.50 now which is new enough to not need these
wrappers anymore.

Differential Revision: https://phabricator.services.mozilla.com/D108337
2021-07-20 21:29:01 +00:00
Jamie Nicol ebb76fd7e3 Bug 1719437 - Do not initialize shaders when creating SingletonGL for software webrender. r=aosmond
It leads to OpenGL errors, as we must initialize a webrender Device in
order to initialize the shaders, and this Device attempts to use
OpenGL commands not supported by the GL context. For example the GL
context may only support GLES 2, hence why we are using SWGL in the
first place.

Differential Revision: https://phabricator.services.mozilla.com/D120356
2021-07-20 19:10:58 +00:00
Jonathan Kew e4f80082a0 Bug 1717685 - Silently handle NOTHING_TO_DO as SUCCESS when replaying a recording, rather than asserting on it. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D119398
2021-07-20 17:43:31 +00:00
Jonathan Kew 90ced4b1e3 Bug 1721424 - Fix _cairo_strtod to accept a leading sign, avoiding infinite loop in parse_array. r=jrmuizel
This has been submitted upstream at https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/203.

Differential Revision: https://phabricator.services.mozilla.com/D120365
2021-07-20 17:42:20 +00:00
Matt Woodrow 0abc2b6d04 Bug 1720429 - Support SourceSurfaceOffset correctly in all DrawSurface implementations. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120136
2021-07-19 22:01:32 +00:00
Matt Woodrow 81dcdf515d Bug 1720429 - CreateClippedDrawTarget takes a rect in user space. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120135
2021-07-19 22:01:31 +00:00
Jamie Nicol 90f29c4458 Bug 1720841 - Clamp loop condition variable to static value in cs_blur. r=gw
In the cs_blur fragment shader there is a for loop with a number of
iterations determined by a flat varying. On some old Adreno drivers
this causes severe issues including hangs and crashes. These can be
avoided by clamping the number of iterations to a statically known
value.

Differential Revision: https://phabricator.services.mozilla.com/D120281
2021-07-19 21:17:07 +00:00
Botond Ballo da4b66c796 Bug 1720176 - Get Matrix4x4Typed::Decompose() to compile for non-Unknown matrix types. r=jrmuizel
Depends on D119696

Differential Revision: https://phabricator.services.mozilla.com/D119697
2021-07-19 18:37:37 +00:00
Botond Ballo 73eb67ee9d Bug 1720176 - Get To/FromUnknownMatrix() to respect the matrix's representation type. r=jrmuizel
Prior to this patch, ToUnknownMatrix() on a Matrix4x4Typed<A, B, double>
would return a Matrix4x4Typed<Unknown, Unknown, float>.

After this patch, it returns a Matrix4x4Typed<Unknown, Unknown, double>.

Differential Revision: https://phabricator.services.mozilla.com/D119696
2021-07-19 18:37:36 +00:00
Brad Werth 3094cf0606 Bug 1717887 Part 2: Make RenderThread backed by nsIThread, with a hang monitor. r=gfx-reviewers,jrmuizel
The background hang monitor uses the same timing thresholds as the one used by
the compositor thread, for similar reasons.

Differential Revision: https://phabricator.services.mozilla.com/D120117
2021-07-19 17:35:55 +00:00
Brad Werth 0034019aba Bug 1717887 Part 1: Abstract RenderThread task pushing, and make it private. r=gfx-reviewers,jrmuizel
Instead of warning against callers directly accessing the thread message loop,
actuually prevent them from doing so. This is also a preliminary step to
changing the type of the internally-created thread, which will no longer
directly expose its message loop.

Differential Revision: https://phabricator.services.mozilla.com/D119562
2021-07-19 17:35:55 +00:00
Jonathan Kew 9d936ed1da Bug 1715771 - Cherry-pick changes from https://gitlab.freedesktop.org/cairo/cairo/-/merge_requests/196 to avoid breakage when tagging PDF output. r=jrmuizel
Depends on D120214

Differential Revision: https://phabricator.services.mozilla.com/D120215
2021-07-19 13:17:46 +00:00
Jonathan Kew b5d1e2eb0b Bug 1486386 - Cherry-pick cairo commit 30a0ae56d8eaf7735d6f4a8a889e9c54bc0debc1 to fix isxdigit issue. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120214
2021-07-19 13:17:46 +00:00
Miko Mynttinen 76c9644105 Bug 1720804 - Part 1: Move majority of the display list code inside mozilla namespace r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D120041
2021-07-19 11:28:20 +00:00
Glenn Watson a34d3f438e Bug 1720624 - Remove WrSpaceAndClip type r=nical
This was used when defining scroll layers and also backdrop-filter.

Removing it from the scroll layer API allows removal of the implicit
clip rect that a scroll node previously created (Gecko doesn't use
this). To maintain compatibility with wrench tests, add a flag that
allows a test to specify a clip rect should be created for the scroll
layer (we should remove this from wrench in future and port the tests
to create explicit clip rects as required).

The usage of backdrop-filter was the only remaining place this type
was used, so it's now ported to use the clip-chain API.

This simplifies the scroll layer API and removes an extra clip rect
from each scroll layer instance, as a small performance improvement.

Differential Revision: https://phabricator.services.mozilla.com/D119938
2021-07-18 22:32:27 +00:00
Jonathan Kew 8304f60be1 Bug 1720493 - Fix handling of font.single-face-list in the macOS font list. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D119953
2021-07-16 23:05:22 +00:00
Markus Stange bbac1f4919 Bug 1717889 - Make sure we don't call NextSurfaceAsFramebuffer on zero-sized native layers. r=mkaply
Differential Revision: https://phabricator.services.mozilla.com/D119676
2021-07-16 15:20:17 +00:00
Alexandru Michis fbd939b860 Backed out 2 changesets (bug 1720804) for causing bustages.
CLOSED TREE

Backed out changeset 5278e88c6d34 (bug 1720804)
Backed out changeset 1acb4ed79b6b (bug 1720804)
2021-07-16 18:10:11 +03:00
Miko Mynttinen ffc501ddc9 Bug 1720804 - Part 1: Move majority of the display list code inside mozilla namespace r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D120041
2021-07-16 14:36:34 +00:00
Jonathan Kew 080117611f Bug 1717556 - Give gfxContext::UserToDevicePixelSnapped an option to prioritize the rect dimensions over snapping each individual edge, and use this for GTK widget painting. r=karlt
Differential Revision: https://phabricator.services.mozilla.com/D119885
2021-07-16 11:20:26 +00:00
Miko Mynttinen 746fe9865a Bug 1720711 - Remove most nsDisplayItem::GetAbove() calls r=mattwoodrow
Replaces direct linked list traversals with iterators.

Differential Revision: https://phabricator.services.mozilla.com/D119985
2021-07-16 10:55:03 +00:00
Mike Hommey e2a1db5178 Bug 1713735 - Add the bits necessary to build wasm sandbox libs with wasm2c. r=firefox-build-system-reviewers,mhentges
For the moment, it's opt-in via explicitly setting `LUCETC` to an empty
string.

Differential Revision: https://phabricator.services.mozilla.com/D119939
2021-07-16 02:38:41 +00:00
Sandor Molnar d7d1a498e5 Backed out changeset 28c7b58df8e4 (bug 1696842) for causing perf regressions. CLOSED TREE 2021-07-15 23:41:25 +03:00
Emilio Cobos Álvarez 459155ff4c Bug 1712588 Implement DMABufSurface::GetAsSourceSurface. r=sotaro,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D116411
2021-07-15 16:19:51 +00:00
stransky 4c52dbd0a1 Bug 1712588 Remove unnecessary asserts for gfx::Factory::CopyDataSourceSurface(), r=jgilbert
gfx::Factory::CopyDataSourceSurface() was updated so LOCAL_GL_RGBA readFormat and LOCAL_GL_UNSIGNED_BYTE readType is already supported.

Differential Revision: https://phabricator.services.mozilla.com/D118303
2021-07-15 16:00:45 +00:00
Alexandre Lissy d46f7366f0 Bug 1719668 - Do not force XFlush() on XRender r=jrmuizel,nical
Differential Revision: https://phabricator.services.mozilla.com/D119557
2021-07-15 08:56:20 +00:00
Tom Ritter 1b9b6b72db Bug 1666222: Cut over a ton of NowUnfuzzed calls -> Now 4/5 r=smaug,extension-reviewers,zombie
With Fuzzyfox removed, Now() does what NowUnfuzzed() did.

Differential Revision: https://phabricator.services.mozilla.com/D119639
2021-07-14 18:18:17 +00:00
Robert Mader ab2349d790 Bug 1718570 - Implement full partial damage support, r=gfx-reviewers,aosmond,jnicol
This becomes possible as a side effect of making sure that the current
buffer content is always completely valid, by blitting from the
previous buffer, analogous to
`NativeLayerCA::HandlePartialUpdate` and
`WindowSurfaceWaylandMB::HandlePartialUpdate`.

Apart from reducing overpaint, this improves correctness is many
situations, avoiding glitches.

Note: the approach here may not be optimal concerning efficiency yet
and improvements are planed after further refactoring.

Depends on D118925

Differential Revision: https://phabricator.services.mozilla.com/D119015
2021-07-14 10:05:08 +00:00
Robert Mader f691c9ecf9 Bug 1718569 - Implement custom FBO management, r=jgilbert,gfx-reviewers
Instead of using the Wayland EGL platform. The later is very convenient
but has several limitations. Managing FBOs allows to make our code more
similar to that of MacOS as well as the Wayland software backend.

Most importantly, it will allow us to cleanly implement partial damage
by giving us direct acces to previously submitted buffers, allowing us
to blit back from them, similar like in
`NativeLayerCA::HandlePartialUpdate`.
There are several other fields where more control over buffers will
come in handy, too many to describe them here in detail.

Note: we still use individual buffer pools for each tile. However, this
change brings everything into place to allow us to change to a more
`SurfacePoolCA`-style shared pool. That will reduce GPU-memory usage.

Includes some minor cleanups here and there.

Depends on D119013

Differential Revision: https://phabricator.services.mozilla.com/D118925
2021-07-13 13:44:12 +00:00
Nicolas Silva 6fb5745981 Bug 1716648 - Don't cache large linear gradients with hard stops. r=gfx-reviewers,lsalzman
Very large gradients are rendered at a lower resolution which is fine for most gradients as they tend to be smooth transitions, but looks bad when there are hard stops.

Differential Revision: https://phabricator.services.mozilla.com/D119628
2021-07-13 13:00:54 +00:00
Nicolas Silva 4948481cab Bug 1716648 - Avoid stretching with large linear gradients in some cases. r=gfx-reviewers,lsalzman
The tile size edtermines the number of pixels we allocate for the gradinrt pattern, and is eventually clamped to a maximum value. Minimizing the tile size after other transformations avoids some cases where we request more area than we need.

Differential Revision: https://phabricator.services.mozilla.com/D119627
2021-07-13 13:00:54 +00:00
Nicolas Silva 6a1d26379e Bug 1719297 - Address uninitialized value warning (valgrind) in HitTestInfoManager. r=gfx-reviewers,bradwerth
Differential Revision: https://phabricator.services.mozilla.com/D119186
2021-07-13 11:32:33 +00:00
Glenn Watson 669caffa87 Bug 1696842 - Establish raster roots for more picture composite modes r=gfx-reviewers,lsalzman
Add MixBlend and ComponentTransfer to the picture composite modes that
unconditionally establish a raster root.

All the known bugs with the raster root code have been fixed, so let's
start incrementally enabling raster roots for more picture modes, and
fix any regressions that come from these before making raster roots
the default for all surfaces.

Differential Revision: https://phabricator.services.mozilla.com/D117954
2021-07-13 06:01:37 +00:00
Sandor Molnar 6c075398dd Backed out 2 changesets (bug 1718570, bug 1718569) for causing wpt failures in /css/css-flexbox/flexbox-align-self-vert-001. CLOSED TREE
Backed out changeset 59cdbaaa6a7b (bug 1718570)
Backed out changeset 489ce763c140 (bug 1718569)
2021-07-13 08:52:28 +03:00
Robert Mader 7f684896cb Bug 1718570 - Implement full partial damage support, r=gfx-reviewers,aosmond
This becomes possible as a side effect of making sure that the current
buffer content is always completely valid, by blitting from the
previous buffer, analogous to
`NativeLayerCA::HandlePartialUpdate` and
`WindowSurfaceWaylandMB::HandlePartialUpdate`.

Apart from reducing overpaint, this improves correctness is many
situations, avoiding glitches.

Note: the approach here may not be optimal concerning efficiency yet
and improvements are planed after further refactoring.

Depends on D118925

Differential Revision: https://phabricator.services.mozilla.com/D119015
2021-07-13 00:55:30 +00:00
Robert Mader f3231d9976 Bug 1718569 - Implement custom FBO management, r=jgilbert,gfx-reviewers
Instead of using the Wayland EGL platform. The later is very convenient
but has several limitations. Managing FBOs allows to make our code more
similar to that of MacOS as well as the Wayland software backend.

Most importantly, it will allow us to cleanly implement partial damage
by giving us direct acces to previously submitted buffers, allowing us
to blit back from them, similar like in
`NativeLayerCA::HandlePartialUpdate`.
There are several other fields where more control over buffers will
come in handy, too many to describe them here in detail.

Note: we still use individual buffer pools for each tile. However, this
change brings everything into place to allow us to change to a more
`SurfacePoolCA`-style shared pool. That will reduce GPU-memory usage.

Includes some minor cleanups here and there.

Depends on D119013

Differential Revision: https://phabricator.services.mozilla.com/D118925
2021-07-13 00:55:29 +00:00
Bob Owen 5657013012 Bug 1717209: Copy to a new canvas texture, when re-forwarding a texture that is still read locked. r=lsalzman
If we are re-forwarding a texture that has not been updated then it might still
be read locked. We rely on the read lock for us to know when the Compositor or
Renderer has finished with the texture. So this change copies it to a new
texture, which we can safely read lock.
If the texture is not read locked then we ensure that it is set as updated,
which means we will read lock it as we forward it.

Differential Revision: https://phabricator.services.mozilla.com/D119546
2021-07-12 19:16:28 +00:00
Nicolas Silva 50cfda52b2 Bug 1719708 - Improve the precision of profile start/end time. r=gfx-reviewers,mstange
Instead of storing the start time which can be a very large number as f64, keep it in ns as u64 and do the float conversion for the time difference instead.
In addition, the merge function was not behaving synmetrically. It was intended to work as old.merge(new) but we have at least one place in the code where we write it as new.merge(old). In practice takiung the max of the start times when merging two start times does what we want in both direction and makes merging less error prone.

Differential Revision: https://phabricator.services.mozilla.com/D119432
2021-07-09 08:20:16 +00:00
Robert Mader 6369b642b9 Bug 1719516 - Add names to some AutoLock arguments in NativeLayerCA. r=mstange
To be more consistent with the rest of the code base and make the
header file easier to read. Also remove an usused function declaration.

Differential Revision: https://phabricator.services.mozilla.com/D119335
2021-07-09 06:49:33 +00:00
Timothy Nikkel 4bc9cae2ee Bug 1715369. Add test. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D119139
2021-07-08 23:07:11 +00:00
Timothy Nikkel 0d00be970f Bug 1715369. Handle the case of a StackingContextHelper inside a deferred transform item with a different asr. r=mstange
Whenever the asr of the deferred transform item differs from the current asr and we are about to enter a new StackingContextHelper (as opposed to just when we enter a transformed frame) flush the deferred transform item, so it's transform doesn't get lost.

This is similar to https://phabricator.services.mozilla.com/D8111. In fact we are extending https://phabricator.services.mozilla.com/D8111 to every time we enter a StackingContextHelper. https://phabricator.services.mozilla.com/D8111 was concerned with solving the case of having two nested transform items with different asrs and making sure we don't lose the outer transform item, here we need to solve the case of an outer transformed item and an inner StackingContextHelper (which is not for a transform) with a different asr and making sure we don't lose the outer transform item.

Note that some of the items I added CreatesStackingContextHelper return true don't always make a new StackingContextHelper. It seemed better to be consistent and I think the only downside is a little less perf because we have to create a few more scrolldata nodes.

Differential Revision: https://phabricator.services.mozilla.com/D118815
2021-07-08 23:07:11 +00:00
Florian Quèze df151e59a2 Bug 1719218 - Remove the need for MOZ_GECKO_PROFILER ifdefs in code using ChildProfilerController, r=gerald,necko-reviewers,dragana.
Differential Revision: https://phabricator.services.mozilla.com/D119132
2021-07-08 16:20:10 +00:00
Florian Quèze 673e38408d Bug 1719218 - Build ProfilerParent even when MOZ_GECKO_PROFILER is not defined, r=gerald,necko-reviewers,nika,dragana.
Differential Revision: https://phabricator.services.mozilla.com/D119131
2021-07-08 16:20:08 +00:00
Jamie Nicol 790229886f Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro
Fenix makes use of the default clear color by setting it to a dark
color when the dark theme is enabled to avoid white flashes while
pages are loading. In bug 1663732 we hooked this functionality up to
webrender, however, it was only used by the draw compositor. Now with
software webrender on Android, we sometimes use
RenderCompositorLayersSWGL rather than the draw compositor, and users
are therefore experiencing white flashes during page loads.

This adds a clear_color argument to StartCompositing(), which
RenderCompositorLayersSWGL uses to set the CompositorOGL's clear
color. This patch also makes Renderer::clear_color not an Option
type, as we only ever used it in Some form, and that simplifies the
FFI.

Differential Revision: https://phabricator.services.mozilla.com/D119272
2021-07-08 11:46:37 +00:00
Timothy Nikkel c67f52b6bb Bug 1715187. Add test. r=hiro
Differential Revision: https://phabricator.services.mozilla.com/D119249
2021-07-08 09:48:21 +00:00
Timothy Nikkel a29d03dbc6 Bug 1715187. Factor out the resolution from the transform we set on the WebRenderLayerScrollData in nsDisplayRemote::UpdateScrollData. r=botond,hiro
The resolutio needs to be applied on top of any other transforms on that WebRenderLayerScrollData.

Differential Revision: https://phabricator.services.mozilla.com/D118326
2021-07-08 09:48:20 +00:00
Sandor Molnar 53b20ea46f Backed out changeset b5ad7d43bc54 (bug 1719367) for causing build bustages. CLOSED TREE 2021-07-08 12:28:55 +03:00
Jamie Nicol 8ee6c18a77 Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro
Fenix makes use of the default clear color by setting it to a dark
color when the dark theme is enabled to avoid white flashes while
pages are loading. In bug 1663732 we hooked this functionality up to
webrender, however, it was only used by the draw compositor. Now with
software webrender on Android, we sometimes use
RenderCompositorLayersSWGL rather than the draw compositor, and users
are therefore experiencing white flashes during page loads.

This adds a clear_color argument to StartCompositing(), which
RenderCompositorLayersSWGL uses to set the CompositorOGL's clear
color. This patch also makes Renderer::clear_color not an Option
type, as we only ever used it in Some form, and that simplifies the
FFI.

Differential Revision: https://phabricator.services.mozilla.com/D119272
2021-07-08 09:01:28 +00:00
Jamie Nicol c848d251a0 Bug 1670622 - Ensure GL context is current prior to webrender initialization. r=gfx-reviewers,jgilbert
We sometimes see webrender renderer initialization failing due to an
invalid max texture size being reported. The logcat shows that there
is no current GL context, and as a result glGet returns 0 when
querying the max texture size. This occurs after the
AndroidSharedBlitGL context has been destroyed on the renderer thread,
leaving no context as current.

This patch adds a call to MakeCurrent() for the renderer's OpenGL
context prior to renderer initialzation. This means we successfully
query the texture size and avoid the initialization error.

Differential Revision: https://phabricator.services.mozilla.com/D119334
2021-07-08 08:59:49 +00:00
Timothy Nikkel 1dc5a6c586 Bug 1719406. Update expected gecko metrics when we update zoom. r=botond
When calling nsDOMWindowUtils::SetResolutionAndScaleTo in a test it's possible to have a layers update that only updates the zoom and nothing else. NotifyLayersUpdated will update the zoom but not the expected gecko metrics when this happens.

Differential Revision: https://phabricator.services.mozilla.com/D119248
2021-07-08 02:06:06 +00:00
Markus Stange 3576e40671 Bug 1719516 - Rename some aLock arguments to aProofOfLock in NativeLayerCA. r=rmader
This is more consistent with other parts of the codebase.

Differential Revision: https://phabricator.services.mozilla.com/D119312
2021-07-07 19:05:59 +00:00
Jonathan Kew bf3113343b Bug 1716841 - Update font-size-adjust keywords to match CSSWG resolution in csswg-drafts/#6288. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D118198
2021-07-07 11:58:40 +00:00
Glenn Watson ab040bb3d1 Bug 1719238 - Fix selection of glyph sizes during pinch-zoom r=jnicol,gfx-reviewers
When picture cache tiles were changed to be raster roots, this
broke quantizing of glyph sizes based on current scale. Restore
this behavior for high-quality pinch-zoom mode, and also select
the correct fixed scale for low-quality zoom mode.

Differential Revision: https://phabricator.services.mozilla.com/D119145
2021-07-07 07:01:29 +00:00
Glenn Watson 519642aea1 Bug 1717207 - Fix incorrect sub_slice_index assignment in some cases. r=gfx-reviewers,kvark
Previously, the child primitives of off-screen surfaces were not
being atomically treated as a single unit. This meant that the
primitives may be assigned to different sub-slices, under certain
edge case conditions.

As a short term fix, let the picture cache code know when an off
screen surface is being processed during primitive dependency
updates. This ensures that all child primitives within a surface
will be assigned to the same sub-slice.

Differential Revision: https://phabricator.services.mozilla.com/D119052
2021-07-06 20:22:32 +00:00
Jed Davis 2257145e1c Bug 1635451 - Minimize content processes' connections to the X server. r=jgilbert,stransky,nika
This patch launches content processes with the `MOZ_HEADLESS` env var set
if they're using GTK with an X11 display (and there's no other reason
they'd need GTK).

The goal is to avoid exhausting Xorg's default limit of 256 clients if
there are many content processes due to Fission.  If these conditions
are met, the content process doesn't need to eagerly connect to the X
server.  This does not affect the sandbox policy, and content processes
can still use X if needed for, e.g.,  WebGL.

The boolean pref `dom.ipc.avoid-gtk`, set by default, controls this
feature.  In the future it could also be extended to minimize GTK use
with Wayland displays.

Note that disabling `widget.non-native-theme.enabled`, which is also
enabled by default, will restore the use of X11 in all content processes
even if this pref is set; the alternative is that widgets wouldn't render
in that case.

This change will also save some memory for now-unnecessary instances of
GTK's global state, and improve content process startup time.

Remove also the temp pref dom.ipc.remote-mozIcon because it cannot work
anymore with the content process being headless.

Differential Revision: https://phabricator.services.mozilla.com/D112197
2021-07-06 07:42:42 +00:00
Jed Davis dc3ae62544 Bug 1635451 - Allow GLX to work in headless content processes. r=jgilbert
This follows what we're already doing for EGL: a refcounted object
which can own the X connection, where we hold a weak reference from
the library object so that multiple contexts opportunistically share
the display but we close the connection when the last context is
freed/GCed.

In a process where GTK is initialized, we borrow its display instead of
opening a new one, which preserves the existing behavior.

Differential Revision: https://phabricator.services.mozilla.com/D112195
2021-07-06 07:42:42 +00:00
Glenn Watson 5e48211fc7 Bug 1718157 - Add a rudimentary on screen debug log system r=gfx-reviewers,kvark
This is useful for debugging problems on systems such as android
or windows which can sometimes be tricky to get reliable console
output logging.

Differential Revision: https://phabricator.services.mozilla.com/D118772
2021-07-06 00:55:17 +00:00
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