Commit Graph

481 Commits

Author SHA1 Message Date
Andrew Osmond
e368c62771 Bug 1691556 - Drop stale async resource updates after a namespace change. r=jrmuizel
When the ID namespace changes for a WebRenderBridgeChild, all bindings
from that namespace are now invalid. We already drop any outstanding
async animation holds on surfaces for recycling, but we still would try
to send out async resource updates that were already queued before the
namespace was changed. This patch forces us to drop those now defunct
transactions.

Differential Revision: https://phabricator.services.mozilla.com/D108481
2021-03-15 17:20:23 +00:00
sotaro
e6e6c2e2d2 Bug 1673342 - Add Support of software WebRender with CompositorOGL on Android and Linux r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D106234
2021-03-01 13:45:38 +00:00
Bob Owen
e4bea5493b Bug 1692894 p1: Don't create devices for canvas when remote canvas is in use. r=jrmuizel
This also adds related DLLs to be delay loaded to xul's moz.build. This means
that if we don't create the devices they are not loaded at all.

Differential Revision: https://phabricator.services.mozilla.com/D105630
2021-02-25 15:10:57 +00:00
Andrew Osmond
1d19fa73aa Bug 1688096 - Part 1. Merge SW-WR and WR render texture host paths to allow mixed compositors. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D104854
2021-02-24 19:39:59 +00:00
Cosmin Sabou
9ef271b5ba Backed out 2 changesets (bug 1688096) for win webrender sw_compositor related crashes. CLOSED TREE
Backed out changeset aa0d1698aff8 (bug 1688096)
Backed out changeset 3ad2f4d0c317 (bug 1688096)
2021-02-18 19:52:29 +02:00
Andrew Osmond
cd218bcf63 Bug 1688096 - Part 1. Merge SW-WR and WR render texture host paths to allow mixed compositors. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D104854
2021-02-18 15:37:46 +00:00
smolnar
f7ba61e1f9 Backed out 2 changesets (bug 1688096) for linux debug build bustage in KnowsCompositor. CLOSED TREE
Backed out changeset 6cdfa0af2278 (bug 1688096)
Backed out changeset 6471b0910f45 (bug 1688096)
2021-02-18 14:34:49 +02:00
Andrew Osmond
b76cb0a8b0 Bug 1688096 - Part 1. Merge SW-WR and WR render texture host paths to allow mixed compositors. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D104854
2021-02-18 11:50:05 +00:00
Andrew Osmond
bd88b98bbf Bug 1691065 - Discard invalid resource update transactions due to namespace changes. r=jrmuizel
When we change the namespace, we discard all cached resources and their
associated keys from the WebRender cache. As such if any transaction
comes in with the old namespace ID, we can safefully discard the entire
update, since we will need to recreate any that we are using anyways.

This patch also adds new asserts to ensure we never get old namespace
IDs for individual keys in a valid resource update. This should never
happen in practice.

Differential Revision: https://phabricator.services.mozilla.com/D104236
2021-02-06 13:29:47 +00:00
Mihai Alexandru Michis
f49e550b87 Backed out changeset d96ca6e90aa2 (bug 1691065) for causing Bug 1691125.
CLOSED TREE
2021-02-05 22:56:17 +02:00
Andrew Osmond
25c0854faf Bug 1691065 - Discard invalid resource update transactions due to namespace changes. r=jrmuizel
When we change the namespace, we discard all cached resources and their
associated keys from the WebRender cache. As such if any transaction
comes in with the old namespace ID, we can safefully discard the entire
update, since we will need to recreate any that we are using anyways.

This patch also adds new asserts to ensure we never get old namespace
IDs for individual keys in a valid resource update. This should never
happen in practice.

Differential Revision: https://phabricator.services.mozilla.com/D104236
2021-02-05 16:32:53 +00:00
Markus Stange
ba46007341 Bug 1685564 - Check for popup widgets instead of toplevel widgets. r=nical
Popup widgets are easier to detect because the "window" widget and the "view"
widget for them are the same object.
With toplevel widgets, most platforms (IIRC all non-Windows platforms) have
separate nsIWidget objects for the "window" widget (toplevel) and the "view"
widget (child), and this code has a reference to the view / child widget.

Differential Revision: https://phabricator.services.mozilla.com/D101062
2021-01-08 12:36:42 +00:00
Nicolas Silva
c9cb4fcd5b Bug 1624264 - Use different texture cache sizes for popup windows. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D99771
2020-12-18 09:27:19 +00:00
sotaro
1328fc5603 Bug 1681660 - Show SWGL with CompositorD3D11 state in about:support r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D99322
2020-12-14 21:44:14 +00:00
Markus Stange
a867907ff8 Bug 1677929 - Record payloads with the correct composition end timestamp. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D97534
2020-12-08 22:40:33 +00:00
Simon Giesecke
46908cfb51 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Timothy Nikkel
9d56ab2a69 Bug 1675709. Make sure to only call NotifyApzTransaction on scroll frames after the paint transaction is complete in the webrender case. r=mattwoodrow
In bug 1674935 we encountered a situation where NotifyApzTransaction was called more than once on a scroll frame in one paint transaction, clearing the scroll updates before they should have been. In that bug I moved the NotifyApzTransaction calls to happen at the end of one transaction for the non-wr code path., but I left the wr code path alone to reduce risk becase we didn't have proof the same could happen with wr. In this bug I will change how the wr code path works to ensure that this problem cannot happen.

Differential Revision: https://phabricator.services.mozilla.com/D96165
2020-11-15 02:20:04 +00:00
Nicolas Silva
fe5b8542da Bug 1531819 - Don't preallocate more than 0.3MB for WR display lists. r=miko
Differential Revision: https://phabricator.services.mozilla.com/D97143
2020-11-17 09:20:00 +00:00
Kartikaya Gupta
4de43276e5 Bug 1662800 - Make the WebRenderScrollData dump nicer. r=botond
This makes the WebRenderScrollData dump more analogous to the layer tree dump,
in that it prints the layer entries one per line showing in-order nested tree
structure. It also omits printing things if they're not important.

Differential Revision: https://phabricator.services.mozilla.com/D96312
2020-11-07 19:41:45 +00:00
Andrew Osmond
e4258af47b Bug 1655584 - Flush rendering for popup window configuration changes with GTK. r=sotaro
This backs out part of bug 1656211 which turned out to be insufficient.
The invalidate rendered frame transaction races with the initial frame
rendering of the popup. If it comes in too soon, we will only draw the
frame once, and the frame corruption remains. This patch makes us flush
the rendering pipeline to ensure we get two separate generate frame
events.

Differential Revision: https://phabricator.services.mozilla.com/D96157
2020-11-06 11:56:13 +00:00
Matt Woodrow
b4541e6213 Bug 1674878 - Expose more detailed WR backend information to TextureFactoryIdentifier. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D95588
2020-11-03 18:24:43 +00:00
Andrew Osmond
1c89e64020 Bug 1656211 - Force recompositing frames on GTK when popup window configuration changes. r=nical
Similar to bug 1280653, it appears that GLX invalidates the back buffer
while we are drawing. The only indication we get of this are resize and
configure events from X. We suppress the configure event for popups for
various reasons, so this patch explicitly generates a forced recomposite
of the frame. It does it immediately so that most of the time it should
beat the presentation of the buffer and avoid displaying of the bad
frame to the user; popups generally are not complicated and should have
plenty of budget to perform the second composite.

Differential Revision: https://phabricator.services.mozilla.com/D93862
2020-10-19 07:44:59 +00:00
Kartikaya Gupta
250dcc2f7e Bug 1666802 - Remove LayersLogging.*. r=mattwoodrow
The remaining functions are moved to be with their brethren in xpcom.

Differential Revision: https://phabricator.services.mozilla.com/D93146
2020-10-11 21:20:46 +00:00
Matt Woodrow
6d9ff78d92 Bug 1668302 - Expose SWGL state to TextureFactoryIdentifier. r=jrmuizel
This is mostly preparing for the future state where we might have SWGL WR mixed with real hardware webrender, and want a way to lookup the state per-compositor.

Differential Revision: https://phabricator.services.mozilla.com/D92009
2020-10-01 22:19:15 +00:00
Bogdan Tara
5967275f06 Backed out 2 changesets (bug 1668302) for swr reftest failures CLOSED TREE
Backed out changeset 8434906c98c4 (bug 1668302)
Backed out changeset ea6160902594 (bug 1668302)
2020-10-01 16:06:19 +03:00
Matt Woodrow
62379a617b Bug 1668302 - Expose SWGL state to TextureFactoryIdentifier. r=jrmuizel
This is mostly preparing for the future state where we might have SWGL WR mixed with real hardware webrender, and want a way to lookup the state per-compositor.

Depends on D92008

Differential Revision: https://phabricator.services.mozilla.com/D92009
2020-10-01 02:56:31 +00:00
Botond Ballo
1074cb3575 Bug 1667594 - Move nsLayoutUtils::RectCallback to namespace scope. r=emilio,jgilbert
This allows it to be forward-declared (while a nested class cannot be),
such that headers files that use RectCallback by pointer or reference
do not need to include nsLayoutUtils.h.

This avoids including nsLayoutUtils.h in nsRange.h.

Differential Revision: https://phabricator.services.mozilla.com/D91685
2020-09-30 21:06:47 +00:00
Andrew Osmond
8b68b2b0a8 Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D89596
2020-09-09 15:47:46 +00:00
Andrew Osmond
272f98121e Bug 1662836 - Expose detailed initialization failure reason for WebRender. r=kvark
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
2020-09-08 02:03:26 +00:00
Lee Salzman
fb8fe83f61 Bug 1657498 - report Software WebRender in about:support. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D87122
2020-08-14 22:30:05 +00:00
Matt Woodrow
71b4f73582 Bug 1656818 - Move decision to flip WebRender readback closer to the source, and make it correct for SWGL. r=lsalzman,geckoview-reviewers,snorp
Differential Revision: https://phabricator.services.mozilla.com/D86892
2020-08-14 18:40:09 +00:00
Mihai Alexandru Michis
d4e03fc649 Backed out changeset d9626670ddb5 (bug 1657498) for causing multiple reftest failures.
CLOSED TREE
2020-08-14 10:54:22 +03:00
Matt Woodrow
1cb483c49c Bug 1657498 - Report software WR in about:support. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D86088
2020-08-14 03:34:32 +00:00
Csoregi Natalia
d3dd708533 Backed out 4 changesets (bug 1656817, bug 1656818, bug 1658858) for bustage on RendererOGL.cpp. CLOSED TREE
Backed out changeset 9c8e4ec4e47c (bug 1656818)
Backed out changeset 92252cfd26de (bug 1656818)
Backed out changeset 1bebb79150d6 (bug 1656817)
Backed out changeset e1becb3a2fb5 (bug 1658858)
2020-08-14 00:25:44 +03:00
Matt Woodrow
3ab6d4a907 Bug 1656818 - Move decision to flip WebRender readback closer to the source, and make it correct for SWGL. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D86892
2020-08-13 20:43:35 +00:00
Kartikaya Gupta
54d9054dd1 Bug 1251612 - Support the GetFrameUniformity API in content processes. r=botond,froydnj
This moves the IPC mechanism from PCompositorBridge to PLayerTransaction/
PWebRenderBridge, so that it can be used by content processes like the other
test APIs. It still only produces actual data for the layers backend; for
WR it will just return empty datasets.

Differential Revision: https://phabricator.services.mozilla.com/D86016
2020-08-05 21:42:06 +00:00
Glenn Watson
8978ee55ca Bug 1656820 - Remove content_size from scene pipeline. r=nical
Previously, the content_size was used when defining an iframe
to set the size of the root scrollable area.

However, this was never useful (the root pipeline scroll frame
is not considered a scroll root, it's more of a placeholder).
The scroll frame for content is typically defined within the
iframe display list (which also allows non-scrolled content
within the iframe, such as a background rectangle color).

The existing content_size was causing problems in Gecko because
there are some snapping / rounding inaccuracies with fractional
DPI ratios, resulting in root scroll frames with +/- 1 pixel
scrollable size.

The simplest fix for this is to remove content_size altogether
and rely on the iframe display item to define the content size
of the root scroll frame for a pipeline.

Differential Revision: https://phabricator.services.mozilla.com/D85719
2020-08-03 20:57:30 +00:00
Kartikaya Gupta
a97d9d37f8 Bug 1652986 - Restore ability to dump the WR display list interleaved with the the gecko DL. r=miko
The extra_data_offset wasn't being set properly in the built display list's
descriptor, so no items were being found. With that fixed it became evident
that we need to disable the display list item cache for dumping to work, since
we can't easily look up reuse items when doing the interleaved dumping. So
this patch also adds some machinery for that.

Differential Revision: https://phabricator.services.mozilla.com/D83778
2020-07-16 14:19:41 +00:00
sotaro
6b4ed853a0 Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
When DWM is disabled, each window does not have own back buffer. They would paint directly to a buffer that was to be displayed by the video card. WM_PAINT via SendInvalidRegion() requests necessary re-paint. With it, RenderCompositorANGLE does not need to disable partial present.

Differential Revision: https://phabricator.services.mozilla.com/D77989
2020-06-05 05:03:40 +00:00
Kartikaya Gupta
a745c4e3c8 Bug 1622360 - Singularize the TransactionData across IPC. r=jrmuizel
Depends on D75386

Differential Revision: https://phabricator.services.mozilla.com/D75387
2020-05-15 00:10:36 +00:00
Kartikaya Gupta
b8f9aa4d43 Bug 1622360 - Singularize the DisplayListData across IPC. r=jrmuizel
Depends on D75384

Differential Revision: https://phabricator.services.mozilla.com/D75386
2020-05-15 00:08:52 +00:00
Kartikaya Gupta
03512b4353 Bug 1622360 - Rename RenderRootUpdates. r=jrmuizel
Depends on D75383

Differential Revision: https://phabricator.services.mozilla.com/D75384
2020-05-15 00:08:03 +00:00
Kartikaya Gupta
b0d2f24179 Bug 1622360 - Rename RenderRootDisplayListData. r=jrmuizel
Depends on D75125

Differential Revision: https://phabricator.services.mozilla.com/D75383
2020-05-15 00:07:34 +00:00
Kartikaya Gupta
e971984db0 Bug 1622360 - Remove the RenderRoot enum entirely, along with the feature docs. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D75125
2020-05-15 00:07:01 +00:00
Kartikaya Gupta
726088a539 Bug 1622360 - Remove the mRenderRoot fields from the DL and Update structures. r=jrmuizel
Depends on D75123

Differential Revision: https://phabricator.services.mozilla.com/D75124
2020-05-15 00:06:28 +00:00
Kartikaya Gupta
cc2ab03597 Bug 1622360 - Drop RenderRootStateManager::mRenderRoot. r=jrmuizel
Depends on D74944

Differential Revision: https://phabricator.services.mozilla.com/D74945
2020-05-14 23:56:11 +00:00
Kartikaya Gupta
1d25b7047a Bug 1622360 - Stop passing around the render root on the UpdateResources codepath. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D74942
2020-05-14 23:54:05 +00:00
Kartikaya Gupta
8c2754d952 Bug 1622360 - Stop feeding render root into WebRenderBridgeChild::*ParentCommand*. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D74851
2020-05-12 14:37:10 +00:00
Kartikaya Gupta
163d5772bc Bug 1622360 - Remove resource subqueue machinery. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D74846
2020-05-12 14:33:02 +00:00
Kartikaya Gupta
88f0c3f9e5 Bug 1622360 - Remove kRenderRoots. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D74403
2020-05-11 20:08:05 +00:00