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

39509 Коммитов

Автор SHA1 Сообщение Дата
Jamie Nicol ecd5b26737 Bug 1689316 - Convert all switch statements to if-elses in webrender shaders. r=jrmuizel
We keep encountering issues on various platforms due to the usage of
switch statements, especially the optimized output produced by
glslopt. Replace all instances with if-else statements instead.

Differential Revision: https://phabricator.services.mozilla.com/D103300
2021-01-28 14:27:13 +00:00
thomasmo 87d023b4d2 BUG 1688920 - Remove vrhost from build r=jrmuizel
This change remove the files used for building and testing vrhost.dll, which was used for an early prototype of Firefox Reality PC.
This binary is no longer needed for FxR PC.

Differential Revision: https://phabricator.services.mozilla.com/D103237
2021-01-28 00:27:35 +00:00
Lee Salzman 988104567f Bug 1689245 - replace CompositorWidget::ClearBeforePaint with GetTransparentRegion. r=mattwoodrow CLOSED TREE
ClearBeforePaint put the responsibility of clearing the current frame's DrawTarget
onto the widget. This doesn't compose well with WR RenderCompositor that may do
their own internal clearing. Instead, replace this with a GetTransparentRegion API
that can be used by RenderCompositors to limit where they clear so that they are
now fully responsible for clearing.

Differential Revision: https://phabricator.services.mozilla.com/D103253
2021-01-28 09:12:40 +00:00
Lee Salzman aa6576ccde Bug 1689245 - implement GL_ARB_clear_texture extension for SWGL. r=mattwoodrow
GL_ARB_clear_texture implements some useful GL entry-points for clears
that can clear arbitrary sub-rects of the screen without having to latch
or disturb GL state. This refactors the glClear implementation to be in
terms of the provided glClearTexSubImage extension which is far more
flexible.

This further allows us to reuse clearing primitives in RenderCompositorSWGL
without having to use more expensive DrawTarget versions.

Differential Revision: https://phabricator.services.mozilla.com/D103252
2021-01-28 08:35:34 +00:00
smolnar 27de9a114b Backed out 2 changesets (bug 1689245) for causing merge conflicts.
Backed out changeset 56cb5f428fb5 (bug 1689245)
Backed out changeset b1303a0086cd (bug 1689245)
2021-01-28 12:02:57 +02:00
Lee Salzman b2bd266cde Bug 1689245 - replace CompositorWidget::ClearBeforePaint with GetTransparentRegion. r=mattwoodrow
ClearBeforePaint put the responsibility of clearing the current frame's DrawTarget
onto the widget. This doesn't compose well with WR RenderCompositor that may do
their own internal clearing. Instead, replace this with a GetTransparentRegion API
that can be used by RenderCompositors to limit where they clear so that they are
now fully responsible for clearing.

Differential Revision: https://phabricator.services.mozilla.com/D103253
2021-01-28 09:12:40 +00:00
Lee Salzman 3d319c55f8 Bug 1689245 - implement GL_ARB_clear_texture extension for SWGL. r=mattwoodrow
GL_ARB_clear_texture implements some useful GL entry-points for clears
that can clear arbitrary sub-rects of the screen without having to latch
or disturb GL state. This refactors the glClear implementation to be in
terms of the provided glClearTexSubImage extension which is far more
flexible.

This further allows us to reuse clearing primitives in RenderCompositorSWGL
without having to use more expensive DrawTarget versions.

Differential Revision: https://phabricator.services.mozilla.com/D103252
2021-01-28 08:35:34 +00:00
smolnar 79d2008ba0 Backed out 2 changesets (bug 1689245) for causing failures in CompositorWidget. CLOSED TREE
Backed out changeset 60ad4f4b141d (bug 1689245)
Backed out changeset 778ecad5812e (bug 1689245)
2021-01-28 10:25:13 +02:00
Emilio Cobos Álvarez 49e1237f27 Bug 1689098 - Make inputs, selects, and button actually have the same block-axis padding as claimed by our forms.css comments. r=dholbert
Combobox select has the block-axis padding in the comboboxcontrol frame.
Moving it fixes bug 1560824 and should be better, so will do that there.

1px block axis padding on buttons matches Chrome too, so shouldn't be a
problem compat-wise.

Differential Revision: https://phabricator.services.mozilla.com/D103244
2021-01-28 07:08:34 +00:00
Lee Salzman 6f71c89411 Bug 1689245 - replace CompositorWidget::ClearBeforePaint with GetTransparentRegion. r=mattwoodrow
ClearBeforePaint put the responsibility of clearing the current frame's DrawTarget
onto the widget. This doesn't compose well with WR RenderCompositor that may do
their own internal clearing. Instead, replace this with a GetTransparentRegion API
that can be used by RenderCompositors to limit where they clear so that they are
now fully responsible for clearing.

Differential Revision: https://phabricator.services.mozilla.com/D103253
2021-01-28 05:35:55 +00:00
Lee Salzman 271d12aca9 Bug 1689245 - implement GL_ARB_clear_texture extension for SWGL. r=mattwoodrow
GL_ARB_clear_texture implements some useful GL entry-points for clears
that can clear arbitrary sub-rects of the screen without having to latch
or disturb GL state. This refactors the glClear implementation to be in
terms of the provided glClearTexSubImage extension which is far more
flexible.

This further allows us to reuse clearing primitives in RenderCompositorSWGL
without having to use more expensive DrawTarget versions.

Differential Revision: https://phabricator.services.mozilla.com/D103252
2021-01-28 05:36:36 +00:00
Jeff Muizelaar 9014b87c5c Bug 1689202 - Add a deprecation note to Advanced Layers.
Differential Revision: https://phabricator.services.mozilla.com/D103222
2021-01-27 21:35:32 +00:00
Jamie Nicol 62eb49693e Bug 1688921 - Support GPU cache resize when EXT_color_buffer_float is not supported. r=kvark
Currently when the GPU cache is resized we allocate a new texture and
then copy the contents of the old texture to the new texture. This
copy requires either EXT_copy_image (for glCopyImageSubData) or
EXT_color_buffer_float (to bind the RGBAF32 texture to a framebuffer).

On devices where neither extension is supported, don't attempt to copy
the old texture. Instead mark the entire CPU-side copy of the cache as
dirty, meaning we will subsequently upload the entire contents to the
new texture. (A complete CPU-side copy is only mainted for the
PixelBuffer gpu cache bus type, not for Scatter ones. However, as the
Scatter type also requires EXT_color_buffer_float, we will only be in
this situation for PixelBuffer buses.)

Differential Revision: https://phabricator.services.mozilla.com/D103071
2021-01-27 08:47:11 +00:00
Lee Salzman b9384b091e Bug 1675590 - avoid using alpha-pass version of gradient shader for clip-mask-only cases. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D102999
2021-01-26 03:56:10 +00:00
Lee Salzman 8b4b32c5c1 Bug 1675590 - implement provisional fast-paths for linear and radial gradients. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D103136
2021-01-27 06:00:15 +00:00
Matt Woodrow 2a0c7c976f Bug 1687124 - Pass tile valid rect into invalidate_tile, so that this is available in time for begin_compositing. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D102667
2021-01-27 03:17:41 +00:00
Matt Woodrow 05e2b31dac Bug 1687124 - Make RenderCompositorSWGL clear the non-opaque dirty areas. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102666
2021-01-27 03:17:29 +00:00
Matt Woodrow eb7fe574cb Bug 1687124 - Make SwCompositor compute the set of opaque rectangles, and forward this to the RenderCompositor. r=gw,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102665
2021-01-27 03:17:16 +00:00
Bogdan Tara 5eded5baf9 Backed out 3 changesets (bug 1687124) for webrender_bindings related failure CLOSED TREE
Backed out changeset 8832f33fa266 (bug 1687124)
Backed out changeset 27de9357456e (bug 1687124)
Backed out changeset b9ca229672d5 (bug 1687124)
2021-01-27 04:04:10 +02:00
Matt Woodrow 5cbbfdc99f Bug 1687124 - Pass tile valid rect into invalidate_tile, so that this is available in time for begin_compositing. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D102667
2021-01-27 00:48:06 +00:00
Matt Woodrow 7700b29cec Bug 1687124 - Make RenderCompositorSWGL clear the non-opaque dirty areas. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102666
2021-01-26 07:03:00 +00:00
Matt Woodrow 1875a8e5ab Bug 1687124 - Make SwCompositor compute the set of opaque rectangles, and forward this to the RenderCompositor. r=gw,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102665
2021-01-26 06:53:05 +00:00
Cosmin Sabou 7b8c450692 Backed out changeset ece826cc95e0 (bug 1688668) for causing bug 1688999.
CLOSED TREE
2021-01-27 01:05:40 +02:00
Glenn Watson 97acc7ed1a Bug 1687863 - Refactor picture cache barriers and scroll bar slice code. r=nical
Instead of keeping a stacking context around for scrollbar containers,
extend and use the tile cache barrier code to create them. This
removes the final remaining code path that creates pass through
picture primitives.

The tile cache barrier changes also form the basis of how we will
make blend containers and backdrop roots work in a follow up patch.

Blend containers and backdrop roots will become redundant stacking
contexts when they exist at the start of a tile cache, which will
save an entire off-screen surface / constant invalidation.

Differential Revision: https://phabricator.services.mozilla.com/D102527
2021-01-26 23:02:37 +00:00
Glenn Watson ece7eb45cc Bug 1687604 - Skip pass through leaf pictures during scene building. r=nical
Previously, a leaf picture would be created unconditionally when
popping a stacking context during scene building. This results in
many pass-through pictures being created that are often not required.

This patch introduces a helper struct that delays creation of a
pass-through wrapping picture until it's known to be needed (and
instead adds the prim_list to a wrapping picture where possible).

In a follow up patch, the last couple of places that create pass
through pictures via pop_stacking_context will be removed.

Differential Revision: https://phabricator.services.mozilla.com/D102381
2021-01-26 23:02:50 +00:00
Dzmitry Malyshau 291f86a68e Bug 1688983 - Rename shared member in WebRender shaders r=gw
just a rename

Differential Revision: https://phabricator.services.mozilla.com/D103103
2021-01-26 22:41:41 +00:00
Lee Salzman 05b761b430 Bug 1688820 - force blend_pixels to inline more aggressively. r=jrmuizel
It appears that the slight refactoring of blend_pixels from the clip-mask
optimization in bug 1688104 caused clang-cl to inline blend_pixels more
pessimistically than it was doing before. Since this is an extremely hot
function that all alpha-pass rendering relies on, we generally just want
to inline this regardless of the slight increase in compile size since
a failure to aggressively optimize this can have noticeable performance
impacts.

Differential Revision: https://phabricator.services.mozilla.com/D103033
2021-01-26 14:17:33 +00:00
Mihai Alexandru Michis f13eee1faa Backed out 2 changesets (bug 1687622) for causing Bug 1688804.
Backed out changeset 4d42ff607081 (bug 1687622)
Backed out changeset f7fc57b92765 (bug 1687622)
2021-01-26 14:02:52 +02:00
Cameron McCormack b77842bf22 Bug 1687868 - Annotate fuzziness in reftest with the non-native theme enabled. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D102884
2021-01-26 10:38:14 +00:00
Florian Quèze f447ef94de Bug 1688300 - Add 'Runnable' profiler markers showing when runnables are executed and a 'Task' label frame showing which tasks are started by TaskController, r=bas,gerald.
Differential Revision: https://phabricator.services.mozilla.com/D102803
2021-01-26 08:57:19 +00:00
Jon Bauman 5dda2d92af Bug 1684688 - Fix alpha support in nsAVIFDecoder. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D102852
2021-01-26 00:24:57 +00:00
Andrew Osmond a750b3733f Bug 1680759 - Enable EGL robustness with WebRender on Linux. r=jgilbert
This patch enables EGL robustness with WebRender. It also tries harder
to get RBAB, favouring KHR+RBAB over EXT-RBAB, as testing with Intel and
NVIDIA Mesa drivers on Ubuntu suggests we can get KHR+RBAB but not
EXT+RBAB. It also adds support for requesting NVIDIA specific resets via
EGL_NV_robustness_video_memory_purge.

Differential Revision: https://phabricator.services.mozilla.com/D102971
2021-01-26 02:25:08 +00:00
Kartikaya Gupta 43111fe2a7 Bug 1686687 - Move runContinuation out of apz_test_utils.js and into the single remaining test that uses it. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D102862
2021-01-26 02:03:35 +00:00
Kartikaya Gupta 51a7aed234 Bug 1686687 - Simplify injectScript and callers. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D102860
2021-01-25 23:08:06 +00:00
Noemi Erli a99af52366 Backed out changeset 6495f98f94e0 (bug 1687868) for causing reftest failures CLOSED TREE 2021-01-26 03:53:49 +02:00
Timothy Nikkel 7f3dabf54f Bug 1687872. Actually remove FrameMetrics::mDisplayPortMargins. r=botond
They are unused and were meant to be removed in https://hg.mozilla.org/mozilla-central/rev/600c18995b01 bug 1667475.

Differential Revision: https://phabricator.services.mozilla.com/D102528
2021-01-23 06:29:31 +00:00
Noemi Erli 9e597fb16e Backed out changeset 0d66f4dd10b6 (bug 1687872) for causing reftest failures CLOSED TREE 2021-01-26 03:31:59 +02:00
Timothy Nikkel 2812c1639a Bug 1687872. Actually remove FrameMetrics::mDisplayPortMargins. r=botond
They are unused and were meant to be removed in https://hg.mozilla.org/mozilla-central/rev/600c18995b01 bug 1667475.

Differential Revision: https://phabricator.services.mozilla.com/D102528
2021-01-23 06:29:31 +00:00
Cameron McCormack 15ed3bf857 Bug 1687868 - Annotate fuzziness in reftest with the non-native theme enabled. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D102884
2021-01-25 22:56:12 +00:00
sotaro 33ed380ddf Bug 1688144 - Add more error logs to WebRenderBridgeParent::UpdateResources() r=nical,aosmond
It seems better to add more error logs to WebRenderBridgeParent::UpdateResources().

Differential Revision: https://phabricator.services.mozilla.com/D102691
2021-01-22 12:42:28 +00:00
sotaro 726fe3fae9 Bug 1687889 - Add more error handling of FLIP_SEQUENTIAL r=nical
When CompositorHwnd does not exist, FLIP_SEQUENTIAL could not be used, since it could cause a problem like Bug 1435995. For example, CompositorHwnd creation could be failed on Win7.

Differential Revision: https://phabricator.services.mozilla.com/D102531
2021-01-25 22:11:51 +00:00
Andrew Osmond 5f8c60ba8d Bug 1688668 - EGL should attempt to load libGL before libGLES. r=jgilbert
Not all configurations have both libGL and libGLES present, and this
matches the order which glxtest loads them. Without this, a user might
pass glxtest, which says they can use EGL, but then not have libGLES on
the library path.

Differential Revision: https://phabricator.services.mozilla.com/D102936
2021-01-25 21:12:52 +00:00
Andrew Osmond cb82d29e76 Bug 1680512 - Prefer EGL for glxtest detection and fallback to GLX if unavailable. r=rmader
As we make the transition to using EGL over GLX, we will need our
detection code to be sufficient without EGL to determine the device in
use. This patch makes us always use the EGL testing code over the GLX
testing code, regardless of the pref/envvar setting.

At the very least, we need to know the vendor ID of the device in use.
We can determine this if there is only one GPU on the PCI list, if we
get a driver name from Mesa, or if it is a proprietary driver (i.e.
NVIDIA) which includes its name in the vendor ID. If we know the vendor
ID, we can usually derive the device ID from the PCI list.

We now also track which path glxtest took. If we successfully did the
test via EGL, then we will allow the pref/envvar to use EGL instead of
GLX. If the test reverted to GLX, then it will use GLX regardless of the
pref/envvar. This is necessary because we need to know if the libraries
are available or not -- some systems may be missing one or the other.

Differential Revision: https://phabricator.services.mozilla.com/D102933
2021-01-25 19:41:04 +00:00
Edgar Chen 48c01f0a8b Bug 1688105 - Part 2: Get rid of dom.w3c_pointer_events.enabled; r=smaug
Depends on D102668

Differential Revision: https://phabricator.services.mozilla.com/D102669
2021-01-25 16:22:44 +00:00
Noemi Erli 1f192d6edb Backed out changeset 98349a6be0f6 (bug 1680512) for causing build bustages in GfxInfo.mm CLOSED TREE 2021-01-25 21:13:12 +02:00
Jonathan Kew 5aeb57227b Bug 1688596 - Updating character maps only needs to cause reflow if we've previously needed to request cmap coverage to support a font fallback search. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102902
2021-01-25 18:25:42 +00:00
Jonathan Kew 313ad40981 Bug 1687622 - Activate fonts for additional language support from their new location on Big Sur. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D102821
2021-01-25 17:25:19 +00:00
Jonathan Kew 743c0a6871 Bug 1687622 - Rewrite macOS version of GetCommonFallbackFonts to handle a lot more language fonts that ship with the OS. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D102820
2021-01-25 17:19:23 +00:00
Andrew Osmond b364e1738e Bug 1680512 - Prefer EGL for glxtest detection and fallback to GLX if unavailable. r=rmader
As we make the transition to using EGL over GLX, we will need our
detection code to be sufficient without EGL to determine the device in
use. This patch makes us always use the EGL testing code over the GLX
testing code, regardless of the pref/envvar setting.

At the very least, we need to know the vendor ID of the device in use.
We can determine this if there is only one GPU on the PCI list, if we
get a driver name from Mesa, or if it is a proprietary driver (i.e.
NVIDIA) which includes its name in the vendor ID. If we know the vendor
ID, we can usually derive the device ID from the PCI list.

We now also track which path glxtest took. If we successfully did the
test via EGL, then we will allow the pref/envvar to use EGL instead of
GLX. If the test reverted to GLX, then it will use GLX regardless of the
pref/envvar. This is necessary because we need to know if the libraries
are available or not -- some systems may be missing one or the other.

Differential Revision: https://phabricator.services.mozilla.com/D102933
2021-01-25 17:31:27 +00:00
Mats Palmgren b41a2b9d21 Bug 1687239 part 2 - Remove plugin support from layout/. r=emilio
Note that there's still a little plugin related code in
widget/ and gfx/ etc after this.  That can be removed
once we remove plugin support from dom/ etc.
The removal from layout/ should be pretty complete though.

Differential Revision: https://phabricator.services.mozilla.com/D102140
2021-01-25 11:53:49 +00:00