Commit Graph

461 Commits

Author SHA1 Message Date
Tetsuharu Ohzeki
7df94090b7 Bug 1733972 - Remove unused aSubtree argument of WebRenderLayerManager::ClearCachedResources(). r=gfx-reviewers,mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D127497
2021-10-05 01:29:13 +00:00
Chris Martin
aaa45c2a29 Bug 1718414 - Stop canvas from initializing D3D in locked-down content process when GPU process fails r=sotaro,bobowen
Before Win32k Lockdown, Canvas would ensure that it would get the fastest possible implementation by initializing
devices in content process before allocating persistent buffers for its backing.

However, with Win32k Lockdown it's no longer possible, as initializing Direct3D and Direct2D make Win32k calls that
crash the locked-down content process.

This issue is generally solved by Remote Canvas; however, Remote Canvas is disabled if the GPU process is disabled.
If that happens, the current behavior is to attempt to initialize hardware acceleration again, causing a crash when
Win32k Lockdown is in effect.

This patch changes the behavior so that the devices will not initialize if they are in a locked-down content process,
even if Remote Canvas is disabled. The effect is that Canvas will fall back to using Skia for everything.

Differential Revision: https://phabricator.services.mozilla.com/D126761
2021-09-29 15:00:19 +00:00
Matt Woodrow
0f8591792b Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D124433
2021-09-05 22:36:45 +00:00
Matt Woodrow
8b80ec4fd2 Bug 1728914 - Move payload handling from LayerManger to WebRenderLayerManager. r=gfx-reviewers,aosmond,jrmuizel
Depends on D124418

Differential Revision: https://phabricator.services.mozilla.com/D124419
2021-09-05 02:16:37 +00:00
Glenn Watson
5e55160724 Bug 1728774 - Fix display item cache with retained DL builder. r=miko,gfx-reviewers
Fix a bug where the display item cache was not being reused from
frame to frame with retained display list builders.

At the same time, make the capacity recycling on the display list
serialization arrays a bit more realistic.

Differential Revision: https://phabricator.services.mozilla.com/D124412
2021-09-03 02:09:57 +00:00
Nicolas Silva
23accd5d05 Bug 1726118 - Prefix all webrender debug prefs with gfx.webrender.debug. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123965
2021-09-01 17:08:36 +00:00
Cristian Tuns
8eafc88437 Backed out changeset e32da12745e9 (bug 1726118) for causing webrender mochitest failures on browser_vulnerableLoginAddedInSecondaryWindow.js. CLOSED TREE 2021-09-01 06:31:12 -04:00
Nicolas Silva
31fade606c Bug 1726118 - Prefix all webrender debug prefs with gfx.webrender.debug. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123965
2021-09-01 09:41:11 +00:00
sotaro
99f4fa027c Bug 1727703 - Clear pending transactions in WebRenderLayerManager::DoDestroy() r=mattwoodrow,gfx-reviewers
When device reset happens, WebRender and WebRenderLayerManagers are re-created. In this case,  pending transactions of nsRefreshDriver need to be cleared during destroying WebRenderLayerManager.

Differential Revision: https://phabricator.services.mozilla.com/D124011
2021-08-31 22:14:52 +00:00
Glenn Watson
9716dd973c Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
This will allow storing state in a display list builder struct
between different display list builds. In time, this will be used
to reduce the size of the serialized display list data, by only
sending delta changes to WR. The extra information made available
by sending deltas will then allow WR to more efficiently cache and
reuse information across different scene/frame builds.

Differential Revision: https://phabricator.services.mozilla.com/D123579
2021-08-30 23:10:10 +00:00
Glenn Watson
5c663731ba Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-30 00:33:22 +00:00
Alexandru Michis
51a484e3cf Backed out changeset 1d332a5ff4f9 (bug 1724846) for causing Bug 1727715.
CLOSED TREE
2021-08-26 22:51:05 +03:00
sotaro
a880137d8e Bug 1727459 - Add more logs around widget size in WebRenderLayerManager::Initialize() r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123585
2021-08-26 03:59:08 +00:00
Matt Woodrow
b88ce7b3a4 Bug 1727423 - Remove BasicLayerManager. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123555
2021-08-25 07:35:17 +00:00
criss
715e01a62b Backed out 2 changesets (bug 1727423) for causing build bustages
Backed out changeset 9b2ca95a6527 (bug 1727423)
Backed out changeset 1f01fcbd46a8 (bug 1727423)
2021-08-25 04:41:35 +03:00
Matt Woodrow
03b11c639a Bug 1727423 - Remove BasicLayerManager. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123555
2021-08-25 01:04:26 +00:00
Glenn Watson
9149dcfec2 Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-24 02:18:51 +00:00
Iulian Moraru
534c6d12b2 Backed out changeset d93e8a61d529 (bug 1724846) for causing reftest failures on downscale-moz-icon-1.html. CLOSED TREE 2021-08-23 07:11:37 +03:00
Glenn Watson
c46752adac Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-22 20:54:07 +00:00
Narcis Beleuzu
4c3fac01fa Backed out 2 changesets (bug 1723665, bug 1724846) as per gw`s request
Backed out changeset 5f2aff372a24 (bug 1724846)
Backed out changeset 0cc8e08b6937 (bug 1723665)
2021-08-18 03:17:33 +03:00
Glenn Watson
8f19dc96b0 Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-15 20:44:03 +00:00
Glenn Watson
2526d2cd07 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
Miko Mynttinen
511c218308 Bug 1676657 - Port paint phase weight histograms to WebRender r=nical
Differential Revision: https://phabricator.services.mozilla.com/D108043
2021-04-22 13:31:42 +00:00
Alexandru Michis
fbd17c6dbc Backed out changeset ca4d87f2ec7b (bug 1676657) for causing webrender bustages.
CLOSED TREE
2021-04-21 18:41:23 +03:00
Miko Mynttinen
5ce83f7070 Bug 1676657 - Port paint phase weight histograms to WebRender r=nical
Differential Revision: https://phabricator.services.mozilla.com/D108043
2021-04-21 15:13:42 +00:00
Andrew Osmond
d17145f278 Bug 1703244 - Flush pending async resource updates when clearing layer manager cache. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D110925
2021-04-06 12:50:21 +00:00
Miko Mynttinen
616140074c Bug 1700642 - Part 1: Track per frame paint phase durations r=nical
Differential Revision: https://phabricator.services.mozilla.com/D109613
2021-03-26 17:37:21 +00:00
Butkovits Atila
2cf3fa3168 Backed out 2 changesets (bug 1700642) for causing wrench failures. CLOSED TREE
Backed out changeset 3fcce1634f4b (bug 1700642)
Backed out changeset a916b72ece1d (bug 1700642)
2021-03-26 18:45:47 +02:00
Miko Mynttinen
0642b5afd6 Bug 1700642 - Part 1: Track per frame paint phase durations r=nical
Differential Revision: https://phabricator.services.mozilla.com/D109613
2021-03-26 14:24:39 +00:00
Simon Giesecke
87c754b1bd Bug 1184468 - Use nsTHashtable::Keys where possible. r=xpcom-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D108588
2021-03-24 17:56:50 +00:00
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