We don't know why we see initialization failures in the telemetry which
makes it hard to investigate why users aren't getting WebRender and
instead fallback to basic. Let's expose the detailed error message
WebRender already generates and puts in the critical log.
Differential Revision: https://phabricator.services.mozilla.com/D89185
It's never set to anything other than the default, so we can hardwire it as a
constant.
`GlyphCache::max_bytes_used` is also removed.
Depends on D89101
Differential Revision: https://phabricator.services.mozilla.com/D89102
It has a single impl, `GpuProfileTag`, so it's unnecessary generalisation.
This also removes type parameter from `GpuTimer`, `GpuSampler`,
`GpuFrameProfile`, and `GpuProfiler`.
Depends on D89099
Differential Revision: https://phabricator.services.mozilla.com/D89100
libyuv library used for software decode UYV video formats to RGB produces also alpha for RGBX formats.
As we use OP_OVER in Basic compositor, the alpha channel is copied to final surface which is sent to window manager.
When alpha X11 visual is used, the bogus alpha information is used for blending and the video is transparent,
co we need to clear the alpha information from the video surface.
Differential Revision: https://phabricator.services.mozilla.com/D88558
Implement GLContextEGL::FindVisual() as a EGL counterpart of GLContextGLX::FindVisual() used
by GLX.
We need to make sure that GdkWindow uses the same visual as GL framebuffer we use for it.
That was already implemented for GLX backend (Bug 1478454).
The visual match is implemented by visual parameter at CreateConfig()/CreateConfigScreen() routines and when it's non-zero,
try to find exact match based on visual ID.
Differential Revision: https://phabricator.services.mozilla.com/D87636
When GLX Vsync source is created along EGL contexts, NVIDIA drivers refuse to make any EGL content current.
So disable GLX Vsync source creation when EGL context is used.
Differential Revision: https://phabricator.services.mozilla.com/D87634
Release fence is delivered from RenderCompositorEGL to WebRenderImageHost via AsyncImagePipelineManager. And the fence is sent to client side by ImageBridgeParent.
Differential Revision: https://phabricator.services.mozilla.com/D88158
Implement GLContextEGL::FindVisual() as a EGL counterpart of GLContextGLX::FindVisual() used
by GLX.
We need to make sure that GdkWindow uses the same visual as GL framebuffer we use for it.
That was already implemented for GLX backend (Bug 1478454).
The visual match is implemented by visual parameter at CreateConfig()/CreateConfigScreen() routines and when it's non-zero,
try to find exact match based on visual ID.
Differential Revision: https://phabricator.services.mozilla.com/D87636
When GLX Vsync source is created along EGL contexts, NVIDIA drivers refuse to make any EGL content current.
So disable GLX Vsync source creation when EGL context is used.
Differential Revision: https://phabricator.services.mozilla.com/D87634
This patch was generated by running:
```
perl -p -i \
-e 's/^(\s+)([a-zA-Z0-9.]+) = NS_ConvertUTF8toUTF16\((.*)\);/\1CopyUTF8toUTF16(\3, \2);/;' \
-e 's/^(\s+)([a-zA-Z0-9.]+) = NS_ConvertUTF16toUTF8\((.*)\);/\1CopyUTF16toUTF8(\3, \2);/;' \
$FILE
```
against every .cpp and .h in mozilla-central, and then fixing up the
inevitable errors that happen as a result of matching C++ expressions with
regexes. The errors fell into three categories:
1. Calling the convert functions with `std::string::c_str()`; these were
changed to simply pass the string instead, relying on implicit conversion
to `mozilla::Span`.
2. Calling the convert functions with raw pointers, which is not permitted
with the copy functions; these were changed to invoke `MakeStringSpan` first.
3. Other miscellaneous errors resulting from over-eager regexes and/or the
replacement not being type-aware. These changes were reverted.
Differential Revision: https://phabricator.services.mozilla.com/D88903
Because it has a fixed length.
The `f()` repetition in the initialization is clumsy, but I think this change
is worthwhile because it makes it clear that `frames` is fixed-length.
Depends on D88954
Differential Revision: https://phabricator.services.mozilla.com/D88955
Because the underlying type is called `GpuProfiler`, and there is *also* a
separate type `GpuProfile`, so the current name is misleading.
Differential Revision: https://phabricator.services.mozilla.com/D88954
Now that picture cache slices are determined during add_prim, we
no longer need to create as many clusters to separate them based
on the prim flags.
Differential Revision: https://phabricator.services.mozilla.com/D88934
The new promiseMouseDragEvent function is an async promise-returning copy of
the code in dragVerticalScrollbar. Eventually we should just make all this code
using async/promise but that's for another day.
Differential Revision: https://phabricator.services.mozilla.com/D88894
- Restore active texture when dmabuf texture is created at DMABufSurfaceRGBA::CreateTexture()/DMABufSurfaceYUV::CreateTexture.
- Provide more logging for DMABufSurfaceRGBA surfaces.
- Implement DMABufSurfaceRGBA::DumpToFile() to save dmabuf surface content to png file.
Differential Revision: https://phabricator.services.mozilla.com/D88382
The new promiseMouseDragEvent function is an async promise-returning copy of
the code in dragVerticalScrollbar. Eventually we should just make all this code
using async/promise but that's for another day.
Differential Revision: https://phabricator.services.mozilla.com/D88894
For android SurfaceTexture and AndroidHardwareBuffer, GPU/hardware task end could be checked by android fence. Then their TextureHost do not need to be held by AsyncImagePipelineManager::mTexturesInUseByGPU.
Differential Revision: https://phabricator.services.mozilla.com/D88239
This advances the migration by 25% each release, starting in release 83 and
completing in 86. The migration code can be removed in the 86 nightly cycle
(or anytime after that).
Differential Revision: https://phabricator.services.mozilla.com/D88453
Currently `-h` means `--headless` when it comes before a subcommand but
`--help` when it comes after a subcommand. It should always be short for
`--help`, that's a very standard thing.
Depends on D88387
Differential Revision: https://phabricator.services.mozilla.com/D88388
Remove references to dead things: binary recording, `--save`, `ENABLE_RECORDING`.
Add brief docs about building wrench, and taking a capture.
And `show` is the canonical name for the subcommand, not `replay`.
Depends on D88386
Differential Revision: https://phabricator.services.mozilla.com/D88387
`replay` is currently listed in `args.yaml` as both a synonym for `show` *and*
its own command. There is some weirdness with how `clap` handles that:
- `wrench help replay` shows the help for `replay`.
- `wrench replay -h` shows the help for `show`.
- `wrench replay` actually runs the code for `show` (and there is no code for
`replay`).
This commit removes the subcommand, leaving the synonym.
Depends on D88385
Differential Revision: https://phabricator.services.mozilla.com/D88386