This avoids undefined reference errors for "js::DebuggerFrame::owner()" when
building non-unified with optimisations enabled.
Differential Revision: https://phabricator.services.mozilla.com/D84147
WebRender makes extensive use of shared memory buffers, particularly for
images decoded in the content process. These images can be arbitrarily
large, and there being insufficient memory for an allocation must be
handled gracefully.
On Linux, we will currently crash with a SIGBUS signal during image
decoding instead of just displaying the broken image tag. This is
because the pages backing the shared memory are only allocated when we
write to them. This blocks shipping WebRender on Linux.
This patch uses posix_fallocate to force the reservation of the pages,
and allows failing gracefully if they are unavailable.
Differential Revision: https://phabricator.services.mozilla.com/D80650
I think I broken this in bug 1558598 by changing when the MOZ_WEBRENDER
env var is set. It is no longer set for the python process, but set *by* the
python process for Firefox. So we need to update the corresponding check
when we determine which FF threads need profiling.
Depends on D84011
Differential Revision: https://phabricator.services.mozilla.com/D84103
This adds the talos-profiling jobs to the relevant test-platforms so that they
can be run for Linux and Windows shippable builds with WebRender enabled.
However they are also disabled from running on m-c by default; they must be
run explicitly using `./mach try fuzzy --full` or using the TreeHerder add jobs
feature.
Differential Revision: https://phabricator.services.mozilla.com/D84011
This block is identical to the run-on-projects applied to all the talos
profiling jobs in the defaults section at the top of the file. Therefore
it is redundant.
Differential Revision: https://phabricator.services.mozilla.com/D84010
Check whether Python 3 is up-to-date and bail out with specific installation guidance if not. Don't install or upgrade Python 2/3. Also check whether Python 2 is up-to-date, and while we don't block `bootstrap` on it (because Python 2 isn't required to build), also supplement with specific installation guidance for people who need it.
Differential Revision: https://phabricator.services.mozilla.com/D82739
`bootstrap` won't be able to install them for you forever (and it isn't really properly capable of installing it for you at this very moment), and installing Python 3 as well as Python 2 is increasingly non-trivial on arbitrary OS'es, so we need to document things properly here.
Specific guidance on how to use `brew` to install Python 2 on macOS is included here. I also go into more depth on the situation on Linux and explicitly point people to the existence of `pyenv` with basic usage information, which should fill in the gaps left by the OS package managers.
Also, update some documentation to prefer the `python3` binary to the `python` binary (which is often Python 2), and fix some broken links.
Differential Revision: https://phabricator.services.mozilla.com/D82611
Non-WebRender calls ChooseImageIndex multiple times per frame, and only calls
FinishRendering if it actually rendered the video. This makes some of the
bookkeeping here a bit annoying.
This patch introduces a behavior difference as to when mLastFrameID is updated.
It is now updated during the first ChooseImageIndex inside of a composition,
rather than from FinishRendering. But the bias is still updated from
FinishRendering. I don't think this will make an actual difference in practice.
Differential Revision: https://phabricator.services.mozilla.com/D84072
I got this wrong when I added non-WebRender support in the patch that added
the CompositionOpportunityId counter. I forgot that EndTransaction is not only
called when we composite, but also, who would have thought, when we process a
transaction.
We only want to increment mCompositionOpportunityId when we're actually about
to composite.
Differential Revision: https://phabricator.services.mozilla.com/D84111
In the current state this also counts frame drops while the video is offscreen,
but this will be fixed in a later patch in the series.
This patch also adjusts the time delta check: It now compares floored milliseconds.
In 60fps WebM videos, the video frame durations are 16.0, 17.0, 17.0, 16.0, 17.0, 17.0, ...
so we need to consider frames with 16.0ms as displayable even when the target
frame duration is 16.67ms, otherwise we gloss over one third of the frames when
counting potentially dropped frames.
Differential Revision: https://phabricator.services.mozilla.com/D82635
This patch pulls in revision 1b3b2dbfd00492161032760992a8699d19b640ca of
Cranelift. This includes PR bytecodealliance/wasmtime#2042, which fixes
bug 1653502 by properly masking the shift amount in a shift incorporated
into an aarch64 arithmetic instruction.
This patch also includes various other miscellaneous Cranelift
improvements that have been merged since the last version-bump,
including some aarch64 codegen improvements.
Differential Revision: https://phabricator.services.mozilla.com/D84101
Cleans up the code a bit to make actually used fallback code easier to spot
and update the required GTK version so deprecation warnings are more accurate.
Also make `gdk_window_set_opaque_region` always available - we can now assume
it to be present in all supported versions.
Differential Revision: https://phabricator.services.mozilla.com/D82804
Since the system mozdevice version on bitbar is old, and mozharness now requires
mozdevice 4.0.0, we simply have the build job make a tarball of mozdevice 4.0.0
from the gecko source tree and export it as an artifact. The wrench job that
runs on bitbar can unpack the tarball and add it to the python path so it gets
picked up.
Differential Revision: https://phabricator.services.mozilla.com/D84070
This change the strategy aliases that have bugbug, so that they handle the extra
arguments that are needed by bugbug.
Differential Revision: https://phabricator.services.mozilla.com/D83438