author | Matt Woodrow <mwoodrow@mozilla.com> |
Sun, 05 Sep 2021 22:36:45 +0000 (2021-09-05) | |
changeset 591057 | 1b49e7328ae43c6565d167f4c391430575097fd3 |
parent 591044 | 96aa4b688465e7a822cf4012a2c1397cc3cd7e93 |
child 593678 | 4ad22daf744b49726e02bcf489591fd8edb96a25 |
permissions | -rw-r--r-- |
389027
5f74d262924171a8fa0b4483a64f4cac34c4c9b8
Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
Daniel Holbert <dholbert@cs.stanford.edu>
parents:
388729
diff
changeset
|
1 |
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
5f74d262924171a8fa0b4483a64f4cac34c4c9b8
Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
Daniel Holbert <dholbert@cs.stanford.edu>
parents:
388729
diff
changeset
|
2 |
/* vim: set ts=8 sts=2 et sw=2 tw=80: */ |
5f74d262924171a8fa0b4483a64f4cac34c4c9b8
Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
Daniel Holbert <dholbert@cs.stanford.edu>
parents:
388729
diff
changeset
|
3 |
/* This Source Code Form is subject to the terms of the Mozilla Public |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
4 |
* License, v. 2.0. If a copy of the MPL was not distributed with this |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
5 |
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
6 |
|
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
7 |
#include "WebRenderLayerManager.h" |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
8 |
|
558319
93fabad45659d172b723c9606215d3acaab54df1
Bug 1660470 - Add missing include directives/forward declarations. r=nika
Simon Giesecke <sgiesecke@mozilla.com>
parents:
557770
diff
changeset
|
9 |
#include "Layers.h" |
475624
5440467afab5639d3626dbaeadef000a2953e30e
Bug 1550422 - P23. Remove now unused gfxPrefs. r=jrmuizel
Jean-Yves Avenard <jyavenard@mozilla.com>
parents:
475614
diff
changeset
|
10 |
|
363416
2629ca0641a72087efcc1d12498519450070dbc7
Bug 1371114 - Add gecko profiler labels for WebRender, r=kats
peter chang <pchang@mozilla.com>
parents:
362306
diff
changeset
|
11 |
#include "GeckoProfiler.h" |
484792
4e4751677534ad208d37a0630bbcf39cf04de8e9
Bug 1563139 - Remove StaticPrefs.h. r=glandium
Nicholas Nethercote <nnethercote@mozilla.com>
parents:
484008
diff
changeset
|
12 |
#include "mozilla/StaticPrefs_apz.h" |
4e4751677534ad208d37a0630bbcf39cf04de8e9
Bug 1563139 - Remove StaticPrefs.h. r=glandium
Nicholas Nethercote <nnethercote@mozilla.com>
parents:
484008
diff
changeset
|
13 |
#include "mozilla/StaticPrefs_layers.h" |
470938
9813ce146bc725dd83e8ff6f41bfc36dd17d935b
Bug 1534395 - Rename TabChild to BrowserChild. r=nika
Ryan Hunt <rhunt@eqrion.net>
parents:
470478
diff
changeset
|
14 |
#include "mozilla/dom/BrowserChild.h" |
367270
c14a46dee9f0d7f9301f4bccaabb6f51844ffd7f
Bug 1376855 - Support nsDisplayBullet in layers free mode. r=kats
Morris Tseng <mtseng@mozilla.com>
parents:
367266
diff
changeset
|
15 |
#include "mozilla/gfx/DrawEventRecorder.h" |
544735
39f24a827034235435fe52a0e58702357fbad60a
Bug 1657498 - report Software WebRender in about:support. r=emilio
Lee Salzman <lsalzman@mozilla.com>
parents:
544716
diff
changeset
|
16 |
#include "mozilla/gfx/gfxVars.h" |
341901
2a9608132a809e8277a1436b36c9ac513d4b9986
Bug 1320023 - Fix warnings r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341897
diff
changeset
|
17 |
#include "mozilla/layers/CompositorBridgeChild.h" |
357026
8e529a1e760efca512a14abd01f80849dc44a6f4
Bug 1360246 - Propagate a StackingContextHelper all the way through the RenderLayer traversal. r=nical
Kartikaya Gupta <kgupta@mozilla.com>
parents:
357017
diff
changeset
|
18 |
#include "mozilla/layers/StackingContextHelper.h" |
341894
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
19 |
#include "mozilla/layers/TextureClient.h" |
558319
93fabad45659d172b723c9606215d3acaab54df1
Bug 1660470 - Add missing include directives/forward declarations. r=nika
Simon Giesecke <sgiesecke@mozilla.com>
parents:
557770
diff
changeset
|
20 |
#include "mozilla/layers/TransactionIdAllocator.h" |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
21 |
#include "mozilla/layers/WebRenderBridgeChild.h" |
368422
a62238e43aca2d5299f6c65dd082af3879529c18
Bug 1377571 - Add fallback path for layers-free. r=jrmuizel
Ethan Lin <ethlin@mozilla.com>
parents:
367270
diff
changeset
|
22 |
#include "mozilla/layers/UpdateImageHelper.h" |
375621
ee2d234483263f55f7241181651293ae858a936a
Bug 1388235 - Support fallback path for nsDisplayFilter. r=jrmuizel
Morris Tseng <mtseng@mozilla.com>
parents:
375620
diff
changeset
|
23 |
#include "nsDisplayList.h" |
550982
adf38a6442cf89e88135dbf0b2d3b53c07a9d800
Bug 1667594 - Move nsLayoutUtils::RectCallback to namespace scope. r=emilio,jgilbert
Botond Ballo <botond@mozilla.com>
parents:
547986
diff
changeset
|
24 |
#include "nsLayoutUtils.h" |
372596
b9317e74f705bdceb4f6cf075ea90a86af45402e
Bug 1379920 - Introduce mLastCanvasDatas. r=kats
Morris Tseng <mtseng@mozilla.com>
parents:
372183
diff
changeset
|
25 |
#include "WebRenderCanvasRenderer.h" |
591057
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
26 |
#include "LayerUserData.h" |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
27 |
|
402864
5b5d0df3b6eed562b1489e4f910735b7a77b56f7
Bug 1436265 - update ClearType usage in WebRenderLayerManager. r=jrmuizel
Lee Salzman <lsalzman@mozilla.com>
parents:
400335
diff
changeset
|
28 |
#ifdef XP_WIN |
454520
5f4630838d46dd81dadb13220a4af0da9e23a619
Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
Ehsan Akhgari <ehsan@mozilla.com>
parents:
453327
diff
changeset
|
29 |
# include "gfxDWriteFonts.h" |
402864
5b5d0df3b6eed562b1489e4f910735b7a77b56f7
Bug 1436265 - update ClearType usage in WebRenderLayerManager. r=jrmuizel
Lee Salzman <lsalzman@mozilla.com>
parents:
400335
diff
changeset
|
30 |
#endif |
5b5d0df3b6eed562b1489e4f910735b7a77b56f7
Bug 1436265 - update ClearType usage in WebRenderLayerManager. r=jrmuizel
Lee Salzman <lsalzman@mozilla.com>
parents:
400335
diff
changeset
|
31 |
|
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
32 |
namespace mozilla { |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
33 |
|
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
34 |
using namespace gfx; |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
35 |
|
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
36 |
namespace layers { |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
37 |
|
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
38 |
WebRenderLayerManager::WebRenderLayerManager(nsIWidget* aWidget) |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
39 |
: mWidget(aWidget), |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
40 |
mLatestTransactionId{0}, |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
41 |
mNeedsComposite(false), |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
42 |
mIsFirstPaint(false), |
591057
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
43 |
mDestroyed(false), |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
44 |
mTarget(nullptr), |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
45 |
mPaintSequenceNumber(0), |
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
46 |
mWebRenderCommandBuilder(this) { |
342003
f141ee9b993c83a623f2e4ceb162c271502f84cb
Bug 1325678 - Have WebRenderContainerLayer release child layers on destruction to avoid leaking them. r=gfx?
Kartikaya Gupta <kgupta@mozilla.com>
parents:
342001
diff
changeset
|
47 |
MOZ_COUNT_CTOR(WebRenderLayerManager); |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
48 |
mStateManager.mLayerManager = this; |
520774
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
49 |
|
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
50 |
if (XRE_IsContentProcess() && |
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
51 |
StaticPrefs::gfx_webrender_enable_item_cache_AtStartup()) { |
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
52 |
static const size_t kInitialCacheSize = 1024; |
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
53 |
static const size_t kMaximumCacheSize = 10240; |
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
54 |
|
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
55 |
mDisplayItemCache.SetCapacity(kInitialCacheSize, kMaximumCacheSize); |
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
56 |
} |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
57 |
} |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
58 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
59 |
KnowsCompositor* WebRenderLayerManager::AsKnowsCompositor() { return mWrChild; } |
342058
d9361bf7a173d95afd1f399ca5ab78ecec0f56fd
Bug 1330480 - Move toWr* functions into WebRenderTypes.h r=gfx?
Ryan Hunt <rhunt@eqrion.net>
parents:
342042
diff
changeset
|
60 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
61 |
bool WebRenderLayerManager::Initialize( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
62 |
PCompositorBridgeChild* aCBChild, wr::PipelineId aLayersId, |
547789
fe5a386982266a8cd44984bac1dd4565fad0384a
Bug 1662836 - Expose detailed initialization failure reason for WebRender. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
544735
diff
changeset
|
63 |
TextureFactoryIdentifier* aTextureFactoryIdentifier, nsCString& aError) { |
342122
8f272d554787e096ae515ba635c3705a6b9b6bcf
Bug 1331515 - More WR to Wr prefix conversion. r=gfx?
Nicolas Silva <nsilva@mozilla.com>
parents:
342121
diff
changeset
|
64 |
MOZ_ASSERT(mWrChild == nullptr); |
341911
dc2b7e346fc28a9658ba01008710ff97cffe0e4b
Bug 1321183 - Deliver TextureFactoryIdentifier r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341905
diff
changeset
|
65 |
MOZ_ASSERT(aTextureFactoryIdentifier); |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
66 |
|
547986
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
67 |
// When we fail to initialize WebRender, it is useful to know if it has ever |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
68 |
// succeeded, or if this is the first attempt. |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
69 |
static bool hasInitialized = false; |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
70 |
|
561253
207b0761ade5421696ed4865d41552add6edaaa3
Bug 1624264 - Use different texture cache sizes for popup windows. r=jrmuizel
Nicolas Silva <nsilva@mozilla.com>
parents:
560682
diff
changeset
|
71 |
WindowKind windowKind; |
562454
e066d5e8974d4ff68af1d0db9d3cde365ccd3f61
Bug 1685564 - Check for popup widgets instead of toplevel widgets. r=nical
Markus Stange <mstange.moz@gmail.com>
parents:
561253
diff
changeset
|
72 |
if (mWidget->WindowType() != eWindowType_popup) { |
561253
207b0761ade5421696ed4865d41552add6edaaa3
Bug 1624264 - Use different texture cache sizes for popup windows. r=jrmuizel
Nicolas Silva <nsilva@mozilla.com>
parents:
560682
diff
changeset
|
73 |
windowKind = WindowKind::MAIN; |
207b0761ade5421696ed4865d41552add6edaaa3
Bug 1624264 - Use different texture cache sizes for popup windows. r=jrmuizel
Nicolas Silva <nsilva@mozilla.com>
parents:
560682
diff
changeset
|
74 |
} else { |
207b0761ade5421696ed4865d41552add6edaaa3
Bug 1624264 - Use different texture cache sizes for popup windows. r=jrmuizel
Nicolas Silva <nsilva@mozilla.com>
parents:
560682
diff
changeset
|
75 |
windowKind = WindowKind::SECONDARY; |
207b0761ade5421696ed4865d41552add6edaaa3
Bug 1624264 - Use different texture cache sizes for popup windows. r=jrmuizel
Nicolas Silva <nsilva@mozilla.com>
parents:
560682
diff
changeset
|
76 |
} |
207b0761ade5421696ed4865d41552add6edaaa3
Bug 1624264 - Use different texture cache sizes for popup windows. r=jrmuizel
Nicolas Silva <nsilva@mozilla.com>
parents:
560682
diff
changeset
|
77 |
|
347274
4044ae77bb4df9d3aaedadaf19649e88bd6e548a
Bug 1343019 - Update webrender to cset 178a65d098afcda7de0298d80d423bc80c6426ba. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
345780
diff
changeset
|
78 |
LayoutDeviceIntSize size = mWidget->GetClientSize(); |
589964
b41457a3dc25e9e97d309d36234942407aa7609b
Bug 1727459 - Add more logs around widget size in WebRenderLayerManager::Initialize() r=gfx-reviewers,jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
589858
diff
changeset
|
79 |
// Check widget size |
b41457a3dc25e9e97d309d36234942407aa7609b
Bug 1727459 - Add more logs around widget size in WebRenderLayerManager::Initialize() r=gfx-reviewers,jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
589858
diff
changeset
|
80 |
if (XRE_IsParentProcess() && |
b41457a3dc25e9e97d309d36234942407aa7609b
Bug 1727459 - Add more logs around widget size in WebRenderLayerManager::Initialize() r=gfx-reviewers,jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
589858
diff
changeset
|
81 |
(size.width < 0 || size.width > wr::MAX_RENDER_TASK_SIZE || |
b41457a3dc25e9e97d309d36234942407aa7609b
Bug 1727459 - Add more logs around widget size in WebRenderLayerManager::Initialize() r=gfx-reviewers,jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
589858
diff
changeset
|
82 |
size.height < 0 || size.height > wr::MAX_RENDER_TASK_SIZE)) { |
b41457a3dc25e9e97d309d36234942407aa7609b
Bug 1727459 - Add more logs around widget size in WebRenderLayerManager::Initialize() r=gfx-reviewers,jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
589858
diff
changeset
|
83 |
gfxCriticalNote << "Widget size is not valid " << size; |
b41457a3dc25e9e97d309d36234942407aa7609b
Bug 1727459 - Add more logs around widget size in WebRenderLayerManager::Initialize() r=gfx-reviewers,jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
589858
diff
changeset
|
84 |
} |
b41457a3dc25e9e97d309d36234942407aa7609b
Bug 1727459 - Add more logs around widget size in WebRenderLayerManager::Initialize() r=gfx-reviewers,jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
589858
diff
changeset
|
85 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
86 |
PWebRenderBridgeChild* bridge = |
561253
207b0761ade5421696ed4865d41552add6edaaa3
Bug 1624264 - Use different texture cache sizes for popup windows. r=jrmuizel
Nicolas Silva <nsilva@mozilla.com>
parents:
560682
diff
changeset
|
87 |
aCBChild->SendPWebRenderBridgeConstructor(aLayersId, size, windowKind); |
369574
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
88 |
if (!bridge) { |
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
89 |
// This should only fail if we attempt to access a layer we don't have |
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
90 |
// permission for, or more likely, the GPU process crashed again during |
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
91 |
// reinitialization. We can expect to be notified again to reinitialize |
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
92 |
// (which may or may not be using WebRender). |
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
93 |
gfxCriticalNote << "Failed to create WebRenderBridgeChild."; |
547986
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
94 |
aError.Assign(hasInitialized |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
95 |
? "FEATURE_FAILURE_WEBRENDER_INITIALIZE_IPDL_POST"_ns |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
96 |
: "FEATURE_FAILURE_WEBRENDER_INITIALIZE_IPDL_FIRST"_ns); |
369574
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
97 |
return false; |
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
98 |
} |
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
99 |
|
439776
0052f643487612ccd8993a8687b1a3b1cbede32d
Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj
sotaro <sotaro.ikeda.g@gmail.com>
parents:
439609
diff
changeset
|
100 |
TextureFactoryIdentifier textureFactoryIdentifier; |
0052f643487612ccd8993a8687b1a3b1cbede32d
Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj
sotaro <sotaro.ikeda.g@gmail.com>
parents:
439609
diff
changeset
|
101 |
wr::MaybeIdNamespace idNamespace; |
0052f643487612ccd8993a8687b1a3b1cbede32d
Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj
sotaro <sotaro.ikeda.g@gmail.com>
parents:
439609
diff
changeset
|
102 |
// Sync ipc |
547986
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
103 |
if (!bridge->SendEnsureConnected(&textureFactoryIdentifier, &idNamespace, |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
104 |
&aError)) { |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
105 |
gfxCriticalNote << "Failed as lost WebRenderBridgeChild."; |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
106 |
aError.Assign(hasInitialized |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
107 |
? "FEATURE_FAILURE_WEBRENDER_INITIALIZE_SYNC_POST"_ns |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
108 |
: "FEATURE_FAILURE_WEBRENDER_INITIALIZE_SYNC_FIRST"_ns); |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
109 |
return false; |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
110 |
} |
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
111 |
|
439776
0052f643487612ccd8993a8687b1a3b1cbede32d
Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj
sotaro <sotaro.ikeda.g@gmail.com>
parents:
439609
diff
changeset
|
112 |
if (textureFactoryIdentifier.mParentBackend == LayersBackend::LAYERS_NONE || |
0052f643487612ccd8993a8687b1a3b1cbede32d
Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj
sotaro <sotaro.ikeda.g@gmail.com>
parents:
439609
diff
changeset
|
113 |
idNamespace.isNothing()) { |
0052f643487612ccd8993a8687b1a3b1cbede32d
Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj
sotaro <sotaro.ikeda.g@gmail.com>
parents:
439609
diff
changeset
|
114 |
gfxCriticalNote << "Failed to connect WebRenderBridgeChild."; |
547986
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
115 |
aError.Append(hasInitialized ? "_POST"_ns : "_FIRST"_ns); |
439776
0052f643487612ccd8993a8687b1a3b1cbede32d
Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj
sotaro <sotaro.ikeda.g@gmail.com>
parents:
439609
diff
changeset
|
116 |
return false; |
0052f643487612ccd8993a8687b1a3b1cbede32d
Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj
sotaro <sotaro.ikeda.g@gmail.com>
parents:
439609
diff
changeset
|
117 |
} |
0052f643487612ccd8993a8687b1a3b1cbede32d
Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj
sotaro <sotaro.ikeda.g@gmail.com>
parents:
439609
diff
changeset
|
118 |
|
342122
8f272d554787e096ae515ba635c3705a6b9b6bcf
Bug 1331515 - More WR to Wr prefix conversion. r=gfx?
Nicolas Silva <nsilva@mozilla.com>
parents:
342121
diff
changeset
|
119 |
mWrChild = static_cast<WebRenderBridgeChild*>(bridge); |
387093
fef60dc3adecc4378456e6e73bb60eca28de9921
Bug 1404232 - Add WebRenderLayerManager::WrUpdated() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
387089
diff
changeset
|
120 |
WrBridge()->SetWebRenderLayerManager(this); |
342122
8f272d554787e096ae515ba635c3705a6b9b6bcf
Bug 1331515 - More WR to Wr prefix conversion. r=gfx?
Nicolas Silva <nsilva@mozilla.com>
parents:
342121
diff
changeset
|
121 |
WrBridge()->IdentifyTextureHost(textureFactoryIdentifier); |
439776
0052f643487612ccd8993a8687b1a3b1cbede32d
Bug 1496003 - Add sync ipc WebRenderBridgeChild::SendEnsureConnected() r=mattwoodrow,froydnj
sotaro <sotaro.ikeda.g@gmail.com>
parents:
439609
diff
changeset
|
122 |
WrBridge()->SetNamespace(idNamespace.ref()); |
341911
dc2b7e346fc28a9658ba01008710ff97cffe0e4b
Bug 1321183 - Deliver TextureFactoryIdentifier r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341905
diff
changeset
|
123 |
*aTextureFactoryIdentifier = textureFactoryIdentifier; |
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
124 |
|
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
125 |
mDLBuilder = MakeUnique<wr::DisplayListBuilder>( |
590873
a480a8364911e38883ecab2e38e4432cb456dcf7
Bug 1728774 - Fix display item cache with retained DL builder. r=miko,gfx-reviewers
Glenn Watson <git@intuitionlibrary.com>
parents:
590475
diff
changeset
|
126 |
WrBridge()->GetPipeline(), WrBridge()->GetWebRenderBackend()); |
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
127 |
|
547986
598cb04b94e491454d99a497037572a7106b2bd3
Bug 1663923 - Cover more WebRender initialization failure paths with explicit reasons. r=kvark
Andrew Osmond <aosmond@mozilla.com>
parents:
547789
diff
changeset
|
128 |
hasInitialized = true; |
369574
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
129 |
return true; |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
130 |
} |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
131 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
132 |
void WebRenderLayerManager::Destroy() { DoDestroy(/* aIsSync */ false); } |
366862
c00b134804208c2652ebd4f45a1d37277c54e60b
Bug 1377024 - Add support of device reset test from about:support r=kats,dvander
sotaro <sotaro.ikeda.g@gmail.com>
parents:
366286
diff
changeset
|
133 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
134 |
void WebRenderLayerManager::DoDestroy(bool aIsSync) { |
392157
4a74a02c20ba4649bfdb5bdd49f5907c6f22b2d5
Bug 1411472 - Add support of PersistentBufferProviderShared r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
391829
diff
changeset
|
135 |
MOZ_ASSERT(NS_IsMainThread()); |
4a74a02c20ba4649bfdb5bdd49f5907c6f22b2d5
Bug 1411472 - Add support of PersistentBufferProviderShared r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
391829
diff
changeset
|
136 |
|
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
137 |
if (IsDestroyed()) { |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
138 |
return; |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
139 |
} |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
140 |
|
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
141 |
mDLBuilder = nullptr; |
591057
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
142 |
mUserData.Destroy(); |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
143 |
mPartialPrerenderedAnimations.Clear(); |
369574
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
144 |
|
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
145 |
mStateManager.Destroy(); |
452761
ee870d4a43083769491e0964ae180304542fc10f
Bug 1441308 - Split out document pieces of WebRenderLayerManager r=jrmuizel
Doug Thayer <dothayer@mozilla.com>
parents:
452465
diff
changeset
|
146 |
|
369574
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
147 |
if (WrBridge()) { |
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
148 |
WrBridge()->Destroy(aIsSync); |
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
149 |
} |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
150 |
|
384447
dbd85646f4440446b95517a01e53f34db5a3a09f
Bug 1391816 - Follow-up to rename WebRenderCommandsBuilder to WebRenderCommandBuilder. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
384371
diff
changeset
|
151 |
mWebRenderCommandBuilder.Destroy(); |
375620
7cbc5c672ea43e4868801a7e999241dd65b40088
Bug 1391135 - Only retain WebRenderUserData when layer manager and namespaceID is match. r=kats
Morris Tseng <mtseng@mozilla.com>
parents:
375616
diff
changeset
|
152 |
|
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
153 |
if (mTransactionIdAllocator) { |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
154 |
// Make sure to notify the refresh driver just in case it's waiting on a |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
155 |
// pending transaction. Do this at the top of the event loop so we don't |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
156 |
// cause a paint to occur during compositor shutdown. |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
157 |
RefPtr<TransactionIdAllocator> allocator = mTransactionIdAllocator; |
414973
1224b46e13922d7fd3cec29a441560439d0166cb
Bug 1455691 - Make the transaction id a struct instead of a uint64_t. r=mattwoodrow
Kartikaya Gupta <kgupta@mozilla.com>
parents:
412606
diff
changeset
|
158 |
TransactionId id = mLatestTransactionId; |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
159 |
|
355167
68b48ae09aedd2a291867c270b23f6aeac75fcdc
Bug 1346143 - Forget the widget pointer in WebRenderLayerManager::Destroy() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
355164
diff
changeset
|
160 |
RefPtr<Runnable> task = NS_NewRunnableFunction( |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
161 |
"TransactionIdAllocator::NotifyTransactionCompleted", |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
162 |
[allocator, id]() -> void { |
590383
5f5504699d3cf63ef7972757dbdb0106224cd1af
Bug 1727703 - Clear pending transactions in WebRenderLayerManager::DoDestroy() r=mattwoodrow,gfx-reviewers
sotaro <sotaro.ikeda.g@gmail.com>
parents:
590268
diff
changeset
|
163 |
allocator->ClearPendingTransactions(); |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
164 |
allocator->NotifyTransactionCompleted(id); |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
165 |
}); |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
166 |
NS_DispatchToMainThread(task.forget()); |
341884
33f60336b599a89e0f809abbb3765dc736d392de
Bug 1319521 - Send PWebRenderBridge::Destroy earlier. r=gfx?
Kartikaya Gupta <kgupta@mozilla.com>
parents:
341869
diff
changeset
|
167 |
} |
355167
68b48ae09aedd2a291867c270b23f6aeac75fcdc
Bug 1346143 - Forget the widget pointer in WebRenderLayerManager::Destroy() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
355164
diff
changeset
|
168 |
|
68b48ae09aedd2a291867c270b23f6aeac75fcdc
Bug 1346143 - Forget the widget pointer in WebRenderLayerManager::Destroy() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
355164
diff
changeset
|
169 |
// Forget the widget pointer in case we outlive our owning widget. |
68b48ae09aedd2a291867c270b23f6aeac75fcdc
Bug 1346143 - Forget the widget pointer in WebRenderLayerManager::Destroy() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
355164
diff
changeset
|
170 |
mWidget = nullptr; |
591057
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
171 |
mDestroyed = true; |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
172 |
} |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
173 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
174 |
WebRenderLayerManager::~WebRenderLayerManager() { |
341884
33f60336b599a89e0f809abbb3765dc736d392de
Bug 1319521 - Send PWebRenderBridge::Destroy earlier. r=gfx?
Kartikaya Gupta <kgupta@mozilla.com>
parents:
341869
diff
changeset
|
175 |
Destroy(); |
342003
f141ee9b993c83a623f2e4ceb162c271502f84cb
Bug 1325678 - Have WebRenderContainerLayer release child layers on destruction to avoid leaking them. r=gfx?
Kartikaya Gupta <kgupta@mozilla.com>
parents:
342001
diff
changeset
|
176 |
MOZ_COUNT_DTOR(WebRenderLayerManager); |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
177 |
} |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
178 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
179 |
CompositorBridgeChild* WebRenderLayerManager::GetCompositorBridgeChild() { |
359325
33adaa3e80315b3883250b30b9a71a656ab36bc2
Bug 1364626. Ensure our transaction arrives at the compositor before asking the parent to paint. r=dvander
Jeff Muizelaar <jmuizelaar@mozilla.com>
parents:
359324
diff
changeset
|
180 |
return WrBridge()->GetCompositorBridgeChild(); |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
181 |
} |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
182 |
|
544735
39f24a827034235435fe52a0e58702357fbad60a
Bug 1657498 - report Software WebRender in about:support. r=emilio
Lee Salzman <lsalzman@mozilla.com>
parents:
544716
diff
changeset
|
183 |
void WebRenderLayerManager::GetBackendName(nsAString& name) { |
560682
9c2b18e58353b67dcb3020155acd49a3f99ecaa7
Bug 1681660 - Show SWGL with CompositorD3D11 state in about:support r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
559908
diff
changeset
|
184 |
if (WrBridge()->UsingSoftwareWebRenderD3D11()) { |
9c2b18e58353b67dcb3020155acd49a3f99ecaa7
Bug 1681660 - Show SWGL with CompositorD3D11 state in about:support r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
559908
diff
changeset
|
185 |
name.AssignLiteral("WebRender (Software D3D11)"); |
569076
c2a11810933e52b8b527bb277e11f877aec6379a
Bug 1673342 - Add Support of software WebRender with CompositorOGL on Android and Linux r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
568767
diff
changeset
|
186 |
} else if (WrBridge()->UsingSoftwareWebRenderOpenGL()) { |
c2a11810933e52b8b527bb277e11f877aec6379a
Bug 1673342 - Add Support of software WebRender with CompositorOGL on Android and Linux r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
568767
diff
changeset
|
187 |
name.AssignLiteral("WebRender (Software OpenGL)"); |
560682
9c2b18e58353b67dcb3020155acd49a3f99ecaa7
Bug 1681660 - Show SWGL with CompositorD3D11 state in about:support r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
559908
diff
changeset
|
188 |
} else if (WrBridge()->UsingSoftwareWebRender()) { |
544735
39f24a827034235435fe52a0e58702357fbad60a
Bug 1657498 - report Software WebRender in about:support. r=emilio
Lee Salzman <lsalzman@mozilla.com>
parents:
544716
diff
changeset
|
189 |
name.AssignLiteral("WebRender (Software)"); |
39f24a827034235435fe52a0e58702357fbad60a
Bug 1657498 - report Software WebRender in about:support. r=emilio
Lee Salzman <lsalzman@mozilla.com>
parents:
544716
diff
changeset
|
190 |
} else { |
39f24a827034235435fe52a0e58702357fbad60a
Bug 1657498 - report Software WebRender in about:support. r=emilio
Lee Salzman <lsalzman@mozilla.com>
parents:
544716
diff
changeset
|
191 |
name.AssignLiteral("WebRender"); |
39f24a827034235435fe52a0e58702357fbad60a
Bug 1657498 - report Software WebRender in about:support. r=emilio
Lee Salzman <lsalzman@mozilla.com>
parents:
544716
diff
changeset
|
192 |
} |
39f24a827034235435fe52a0e58702357fbad60a
Bug 1657498 - report Software WebRender in about:support. r=emilio
Lee Salzman <lsalzman@mozilla.com>
parents:
544716
diff
changeset
|
193 |
} |
39f24a827034235435fe52a0e58702357fbad60a
Bug 1657498 - report Software WebRender in about:support. r=emilio
Lee Salzman <lsalzman@mozilla.com>
parents:
544716
diff
changeset
|
194 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
195 |
uint32_t WebRenderLayerManager::StartFrameTimeRecording(int32_t aBufferSize) { |
435325
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
196 |
CompositorBridgeChild* renderer = GetCompositorBridgeChild(); |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
197 |
if (renderer) { |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
198 |
uint32_t startIndex; |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
199 |
renderer->SendStartFrameTimeRecording(aBufferSize, &startIndex); |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
200 |
return startIndex; |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
201 |
} |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
202 |
return -1; |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
203 |
} |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
204 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
205 |
void WebRenderLayerManager::StopFrameTimeRecording( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
206 |
uint32_t aStartIndex, nsTArray<float>& aFrameIntervals) { |
435325
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
207 |
CompositorBridgeChild* renderer = GetCompositorBridgeChild(); |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
208 |
if (renderer) { |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
209 |
renderer->SendStopFrameTimeRecording(aStartIndex, &aFrameIntervals); |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
210 |
} |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
211 |
} |
6d3db9b4da3259cdf2c2f2f0fd49218efcd878ea
Bug 1488980 - Implement StartFrameTimeRecording for WebRender. r=mstange
Matt Woodrow <mwoodrow@mozilla.com>
parents:
429191
diff
changeset
|
212 |
|
475949
c6cf628d60453bafcaf4e19675f00c4127b2b3e9
Bug 1553261 - Register CompositionPayloads with the WebRenderBridge and enable key press telemetry r=kats
Barret Rennie <barret@brennie.ca>
parents:
475624
diff
changeset
|
213 |
void WebRenderLayerManager::TakeCompositionPayloads( |
c6cf628d60453bafcaf4e19675f00c4127b2b3e9
Bug 1553261 - Register CompositionPayloads with the WebRenderBridge and enable key press telemetry r=kats
Barret Rennie <barret@brennie.ca>
parents:
475624
diff
changeset
|
214 |
nsTArray<CompositionPayload>& aPayloads) { |
c6cf628d60453bafcaf4e19675f00c4127b2b3e9
Bug 1553261 - Register CompositionPayloads with the WebRenderBridge and enable key press telemetry r=kats
Barret Rennie <barret@brennie.ca>
parents:
475624
diff
changeset
|
215 |
aPayloads.Clear(); |
c6cf628d60453bafcaf4e19675f00c4127b2b3e9
Bug 1553261 - Register CompositionPayloads with the WebRenderBridge and enable key press telemetry r=kats
Barret Rennie <barret@brennie.ca>
parents:
475624
diff
changeset
|
216 |
|
c6cf628d60453bafcaf4e19675f00c4127b2b3e9
Bug 1553261 - Register CompositionPayloads with the WebRenderBridge and enable key press telemetry r=kats
Barret Rennie <barret@brennie.ca>
parents:
475624
diff
changeset
|
217 |
std::swap(mPayload, aPayloads); |
c6cf628d60453bafcaf4e19675f00c4127b2b3e9
Bug 1553261 - Register CompositionPayloads with the WebRenderBridge and enable key press telemetry r=kats
Barret Rennie <barret@brennie.ca>
parents:
475624
diff
changeset
|
218 |
} |
c6cf628d60453bafcaf4e19675f00c4127b2b3e9
Bug 1553261 - Register CompositionPayloads with the WebRenderBridge and enable key press telemetry r=kats
Barret Rennie <barret@brennie.ca>
parents:
475624
diff
changeset
|
219 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
220 |
bool WebRenderLayerManager::BeginTransactionWithTarget(gfxContext* aTarget, |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
221 |
const nsCString& aURL) { |
341868
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
222 |
mTarget = aTarget; |
447334
25d79223c2dedd0b06abd48dbfc815c750b6473c
Bug 1507686 - Record LayerManager URL for each paint so that we can correlate it with slow paints. r=mattwoodrow
Jeff Muizelaar <jmuizelaar@mozilla.com>
parents:
444115
diff
changeset
|
223 |
return BeginTransaction(aURL); |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
224 |
} |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
225 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
226 |
bool WebRenderLayerManager::BeginTransaction(const nsCString& aURL) { |
378255
378e69fe5a92828602eec310b0206c6873ced5e6
Bug 1391458 - Make sure WrBridge is ready in the head of BeginTransaction. r=kats
vincentliu <vliu@mozilla.com>
parents:
377614
diff
changeset
|
227 |
if (!WrBridge()->IPCOpen()) { |
378e69fe5a92828602eec310b0206c6873ced5e6
Bug 1391458 - Make sure WrBridge is ready in the head of BeginTransaction. r=kats
vincentliu <vliu@mozilla.com>
parents:
377614
diff
changeset
|
228 |
gfxCriticalNote << "IPC Channel is already torn down unexpectedly\n"; |
378e69fe5a92828602eec310b0206c6873ced5e6
Bug 1391458 - Make sure WrBridge is ready in the head of BeginTransaction. r=kats
vincentliu <vliu@mozilla.com>
parents:
377614
diff
changeset
|
229 |
return false; |
378e69fe5a92828602eec310b0206c6873ced5e6
Bug 1391458 - Make sure WrBridge is ready in the head of BeginTransaction. r=kats
vincentliu <vliu@mozilla.com>
parents:
377614
diff
changeset
|
230 |
} |
378e69fe5a92828602eec310b0206c6873ced5e6
Bug 1391458 - Make sure WrBridge is ready in the head of BeginTransaction. r=kats
vincentliu <vliu@mozilla.com>
parents:
377614
diff
changeset
|
231 |
|
425069
c572bc658fec6ec6904eff12350962af3346ba8c
Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
Ryan Hunt <rhunt@eqrion.net>
parents:
424926
diff
changeset
|
232 |
mTransactionStart = TimeStamp::Now(); |
447334
25d79223c2dedd0b06abd48dbfc815c750b6473c
Bug 1507686 - Record LayerManager URL for each paint so that we can correlate it with slow paints. r=mattwoodrow
Jeff Muizelaar <jmuizelaar@mozilla.com>
parents:
444115
diff
changeset
|
233 |
mURL = aURL; |
425069
c572bc658fec6ec6904eff12350962af3346ba8c
Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
Ryan Hunt <rhunt@eqrion.net>
parents:
424926
diff
changeset
|
234 |
|
362306
35a1edcf472648b9fab32a6766527fe198d4a4b6
Bug 1369840 - Support content-side APZ test data in WebRenderLayerManager. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
362139
diff
changeset
|
235 |
// Increment the paint sequence number even if test logging isn't |
35a1edcf472648b9fab32a6766527fe198d4a4b6
Bug 1369840 - Support content-side APZ test data in WebRenderLayerManager. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
362139
diff
changeset
|
236 |
// enabled in this process; it may be enabled in the parent process, |
35a1edcf472648b9fab32a6766527fe198d4a4b6
Bug 1369840 - Support content-side APZ test data in WebRenderLayerManager. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
362139
diff
changeset
|
237 |
// and the parent process expects unique sequence numbers. |
35a1edcf472648b9fab32a6766527fe198d4a4b6
Bug 1369840 - Support content-side APZ test data in WebRenderLayerManager. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
362139
diff
changeset
|
238 |
++mPaintSequenceNumber; |
476237
af355d7ab17e8253a62afd19b65e503133993376
Bug 1553018 part 2. Make various gfx preferences bindings use in Pref annotations on interfaces follow the StaticPrefs naming convention for getters. r=jrmuizel
Boris Zbarsky <bzbarsky@mit.edu>
parents:
475949
diff
changeset
|
239 |
if (StaticPrefs::apz_test_logging_enabled()) { |
362306
35a1edcf472648b9fab32a6766527fe198d4a4b6
Bug 1369840 - Support content-side APZ test data in WebRenderLayerManager. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
362139
diff
changeset
|
240 |
mApzTestData.StartNewPaint(mPaintSequenceNumber); |
35a1edcf472648b9fab32a6766527fe198d4a4b6
Bug 1369840 - Support content-side APZ test data in WebRenderLayerManager. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
362139
diff
changeset
|
241 |
} |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
242 |
return true; |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
243 |
} |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
244 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
245 |
bool WebRenderLayerManager::EndEmptyTransaction(EndTransactionFlags aFlags) { |
513474
1012d4dab45befe127342e456bb712180c15830c
Bug 1613143. Don't allow an empty transaction to succeed with webrender if we haven't sent a display list to the parent. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
513463
diff
changeset
|
246 |
// If we haven't sent a display list (since creation or since the last time we |
1012d4dab45befe127342e456bb712180c15830c
Bug 1613143. Don't allow an empty transaction to succeed with webrender if we haven't sent a display list to the parent. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
513463
diff
changeset
|
247 |
// sent ClearDisplayList to the parent) then we can't do an empty transaction |
1012d4dab45befe127342e456bb712180c15830c
Bug 1613143. Don't allow an empty transaction to succeed with webrender if we haven't sent a display list to the parent. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
513463
diff
changeset
|
248 |
// because the parent doesn't have a display list for us and we need to send a |
1012d4dab45befe127342e456bb712180c15830c
Bug 1613143. Don't allow an empty transaction to succeed with webrender if we haven't sent a display list to the parent. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
513463
diff
changeset
|
249 |
// display list first. |
1012d4dab45befe127342e456bb712180c15830c
Bug 1613143. Don't allow an empty transaction to succeed with webrender if we haven't sent a display list to the parent. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
513463
diff
changeset
|
250 |
if (!WrBridge()->GetSentDisplayList()) { |
1012d4dab45befe127342e456bb712180c15830c
Bug 1613143. Don't allow an empty transaction to succeed with webrender if we haven't sent a display list to the parent. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
513463
diff
changeset
|
251 |
return false; |
1012d4dab45befe127342e456bb712180c15830c
Bug 1613143. Don't allow an empty transaction to succeed with webrender if we haven't sent a display list to the parent. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
513463
diff
changeset
|
252 |
} |
1012d4dab45befe127342e456bb712180c15830c
Bug 1613143. Don't allow an empty transaction to succeed with webrender if we haven't sent a display list to the parent. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
513463
diff
changeset
|
253 |
|
520774
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
254 |
mDisplayItemCache.SkipWaitingForPartialDisplayList(); |
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
255 |
|
412606
bb1d1bcb3e0683a4b05b2270717d8432e490cc66
Bug 1452791 - Update WebRenderLayerManager mAnimationReadyTime in empty transactions r=kats
Miko Mynttinen <mikokm@gmail.com>
parents:
410476
diff
changeset
|
256 |
// Since we don't do repeat transactions right now, just set the time |
bb1d1bcb3e0683a4b05b2270717d8432e490cc66
Bug 1452791 - Update WebRenderLayerManager mAnimationReadyTime in empty transactions r=kats
Miko Mynttinen <mikokm@gmail.com>
parents:
410476
diff
changeset
|
257 |
mAnimationReadyTime = TimeStamp::Now(); |
bb1d1bcb3e0683a4b05b2270717d8432e490cc66
Bug 1452791 - Update WebRenderLayerManager mAnimationReadyTime in empty transactions r=kats
Miko Mynttinen <mikokm@gmail.com>
parents:
410476
diff
changeset
|
258 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
259 |
mLatestTransactionId = |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
260 |
mTransactionIdAllocator->GetTransactionId(/*aThrottle*/ true); |
439609
1b41309fe5d6f6de409350146c6a3add0b65a950
Bug 1496324 - Revoke TransactionId when transaction is not forwarded r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
438931
diff
changeset
|
261 |
|
1b41309fe5d6f6de409350146c6a3add0b65a950
Bug 1496324 - Revoke TransactionId when transaction is not forwarded r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
438931
diff
changeset
|
262 |
if (aFlags & EndTransactionFlags::END_NO_COMPOSITE && |
465755
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
263 |
!mWebRenderCommandBuilder.NeedsEmptyTransaction()) { |
522546
5396cc20b4ad5e8f9627306d28d8aa63a1eb9221
Bug 1622360 - Downgrade mPendingScrollUpdates from RenderRootArray. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
521577
diff
changeset
|
264 |
if (mPendingScrollUpdates.IsEmpty()) { |
465755
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
265 |
MOZ_ASSERT(!mTarget); |
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
266 |
WrBridge()->SendSetFocusTarget(mFocusTarget); |
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
267 |
// Revoke TransactionId to trigger next paint. |
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
268 |
mTransactionIdAllocator->RevokeTransactionId(mLatestTransactionId); |
467648
10a446ed2a38d6af1eaa8b6d51ad9f1333b247d8
Bug 1540908. If the layer manager revokes a transaction id then revert the last stored transaction id too. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
466606
diff
changeset
|
269 |
mLatestTransactionId = mLatestTransactionId.Prev(); |
465755
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
270 |
return true; |
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
271 |
} |
385834
077b6ec36d84589557e581742abf7557974a8463
Bug 1405481 - Suppress to composite when END_NO_COMPOSITE is set r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385833
diff
changeset
|
272 |
} |
077b6ec36d84589557e581742abf7557974a8463
Bug 1405481 - Suppress to composite when END_NO_COMPOSITE is set r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385833
diff
changeset
|
273 |
|
077b6ec36d84589557e581742abf7557974a8463
Bug 1405481 - Suppress to composite when END_NO_COMPOSITE is set r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385833
diff
changeset
|
274 |
LayoutDeviceIntSize size = mWidget->GetClientSize(); |
077b6ec36d84589557e581742abf7557974a8463
Bug 1405481 - Suppress to composite when END_NO_COMPOSITE is set r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385833
diff
changeset
|
275 |
WrBridge()->BeginTransaction(); |
077b6ec36d84589557e581742abf7557974a8463
Bug 1405481 - Suppress to composite when END_NO_COMPOSITE is set r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385833
diff
changeset
|
276 |
|
385833
86c487f84974c727365d6cc266d7a8949ba253bb
Bug 1405481 - Push canvas updates to the compositor on empty transactions r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385069
diff
changeset
|
277 |
mWebRenderCommandBuilder.EmptyTransaction(); |
86c487f84974c727365d6cc266d7a8949ba253bb
Bug 1405481 - Push canvas updates to the compositor on empty transactions r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385069
diff
changeset
|
278 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
279 |
// Get the time of when the refresh driver start its tick (if available), |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
280 |
// otherwise use the time of when LayerManager::BeginTransaction was called. |
425069
c572bc658fec6ec6904eff12350962af3346ba8c
Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
Ryan Hunt <rhunt@eqrion.net>
parents:
424926
diff
changeset
|
281 |
TimeStamp refreshStart = mTransactionIdAllocator->GetTransactionStart(); |
447335
52a798ad6583b97fb3faf68f1849e7098d9ce4ae
Bug 1507680 - Record detailed statistics about slow WebRender frames in about:support. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
447334
diff
changeset
|
282 |
if (!refreshStart) { |
52a798ad6583b97fb3faf68f1849e7098d9ce4ae
Bug 1507680 - Record detailed statistics about slow WebRender frames in about:support. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
447334
diff
changeset
|
283 |
refreshStart = mTransactionStart; |
52a798ad6583b97fb3faf68f1849e7098d9ce4ae
Bug 1507680 - Record detailed statistics about slow WebRender frames in about:support. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
447334
diff
changeset
|
284 |
} |
384288
87c152551a93293250b80e9f3840874ea2a15b7f
Bug 1403915 - Collapse EndTransactionInternal into EndTransactionWithoutLayers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
384287
diff
changeset
|
285 |
|
512561 | 286 |
// Skip the synchronization for buffer since we also skip the painting during |
287 |
// device-reset status. |
|
288 |
if (!gfxPlatform::GetPlatform()->DidRenderingDeviceReset()) { |
|
289 |
if (WrBridge()->GetSyncObject() && |
|
290 |
WrBridge()->GetSyncObject()->IsSyncObjectValid()) { |
|
291 |
WrBridge()->GetSyncObject()->Synchronize(); |
|
292 |
} |
|
293 |
} |
|
294 |
||
477808
4357d695b8d5dd901788d922b73e89f16c45b2c9
Bug 1464032 Part 12: Add CanvasParent, CanvasChild and RecordedTextureData. r=mattwoodrow, jld
Bob Owen <bobowencode@gmail.com>
parents:
477802
diff
changeset
|
295 |
GetCompositorBridgeChild()->EndCanvasTransaction(); |
4357d695b8d5dd901788d922b73e89f16c45b2c9
Bug 1464032 Part 12: Add CanvasParent, CanvasChild and RecordedTextureData. r=mattwoodrow, jld
Bob Owen <bobowencode@gmail.com>
parents:
477802
diff
changeset
|
296 |
|
530257
fc6c313294232c5a8ba700d941c1e654d0b33c28
Bug 1622360 - Singularize the TransactionData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530256
diff
changeset
|
297 |
Maybe<TransactionData> transactionData; |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
298 |
if (mStateManager.mAsyncResourceUpdates || !mPendingScrollUpdates.IsEmpty() || |
529367
464f335b72832843ff82b392ec8f4131ec858f6d
Bug 1622360 - Stop feeding render root into WebRenderBridgeChild::*ParentCommand*. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529362
diff
changeset
|
299 |
WrBridge()->HasWebRenderParentCommands()) { |
530257
fc6c313294232c5a8ba700d941c1e654d0b33c28
Bug 1622360 - Singularize the TransactionData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530256
diff
changeset
|
300 |
transactionData.emplace(); |
566287
f0e9e8ac401cb01ae412bf6fd098562892136456
Bug 1691065 - Discard invalid resource update transactions due to namespace changes. r=jrmuizel
Andrew Osmond <aosmond@mozilla.com>
parents:
566225
diff
changeset
|
301 |
transactionData->mIdNamespace = WrBridge()->GetNamespace(); |
530257
fc6c313294232c5a8ba700d941c1e654d0b33c28
Bug 1622360 - Singularize the TransactionData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530256
diff
changeset
|
302 |
transactionData->mPaintSequenceNumber = mPaintSequenceNumber; |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
303 |
if (mStateManager.mAsyncResourceUpdates) { |
530255
a49fa33ffbe6f2e95427020d386194d6346b6e50
Bug 1622360 - Rename RenderRootUpdates. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530254
diff
changeset
|
304 |
mStateManager.mAsyncResourceUpdates->Flush( |
530257
fc6c313294232c5a8ba700d941c1e654d0b33c28
Bug 1622360 - Singularize the TransactionData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530256
diff
changeset
|
305 |
transactionData->mResourceUpdates, transactionData->mSmallShmems, |
fc6c313294232c5a8ba700d941c1e654d0b33c28
Bug 1622360 - Singularize the TransactionData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530256
diff
changeset
|
306 |
transactionData->mLargeShmems); |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
307 |
} |
530257
fc6c313294232c5a8ba700d941c1e654d0b33c28
Bug 1622360 - Singularize the TransactionData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530256
diff
changeset
|
308 |
transactionData->mScrollUpdates = std::move(mPendingScrollUpdates); |
572905
3fa425a7f1295f3b056453f8d62be43bdbe85ca9
Bug 1184468 - Use nsTHashtable::Keys where possible. r=xpcom-reviewers,nika
Simon Giesecke <sgiesecke@mozilla.com>
parents:
571291
diff
changeset
|
309 |
for (const auto& scrollId : transactionData->mScrollUpdates.Keys()) { |
3fa425a7f1295f3b056453f8d62be43bdbe85ca9
Bug 1184468 - Use nsTHashtable::Keys where possible. r=xpcom-reviewers,nika
Simon Giesecke <sgiesecke@mozilla.com>
parents:
571291
diff
changeset
|
310 |
nsLayoutUtils::NotifyPaintSkipTransaction(/*scroll id=*/scrollId); |
465755
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
311 |
} |
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
312 |
} |
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
313 |
|
452761
ee870d4a43083769491e0964ae180304542fc10f
Bug 1441308 - Split out document pieces of WebRenderLayerManager r=jrmuizel
Doug Thayer <dothayer@mozilla.com>
parents:
452465
diff
changeset
|
314 |
Maybe<wr::IpcResourceUpdateQueue> nothing; |
530257
fc6c313294232c5a8ba700d941c1e654d0b33c28
Bug 1622360 - Singularize the TransactionData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530256
diff
changeset
|
315 |
WrBridge()->EndEmptyTransaction(mFocusTarget, std::move(transactionData), |
484008
0c25260c4edf97fdfef11320c2a91bc0698b4c11
Bug 1547351 - Automatically set content process render root r=kats
Alexis Beingessner <a.beingessner@gmail.com>
parents:
482770
diff
changeset
|
316 |
mLatestTransactionId, |
449634
eda7bfb669dad4b47dd28b0dbb0fd4192895d4ac
Bug 1510853 - Make VsyncId available to compositor. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
449600
diff
changeset
|
317 |
mTransactionIdAllocator->GetVsyncId(), |
452465
4a8c79b919b2b565219da4adf9c7f74686d4296b
Bug 1517355 - Add CONTENT_FRAME_TIME variant that records from the vsync time. data-review=rrayborn, r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
452040
diff
changeset
|
318 |
mTransactionIdAllocator->GetVsyncStart(), |
449634
eda7bfb669dad4b47dd28b0dbb0fd4192895d4ac
Bug 1510853 - Make VsyncId available to compositor. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
449600
diff
changeset
|
319 |
refreshStart, mTransactionStart, mURL); |
425069
c572bc658fec6ec6904eff12350962af3346ba8c
Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
Ryan Hunt <rhunt@eqrion.net>
parents:
424926
diff
changeset
|
320 |
mTransactionStart = TimeStamp(); |
c572bc658fec6ec6904eff12350962af3346ba8c
Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
Ryan Hunt <rhunt@eqrion.net>
parents:
424926
diff
changeset
|
321 |
|
385833
86c487f84974c727365d6cc266d7a8949ba253bb
Bug 1405481 - Push canvas updates to the compositor on empty transactions r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385069
diff
changeset
|
322 |
MakeSnapshotIfRequired(size); |
384287
f407f597b7bf6ccfd9bfb1ec5747a7ab56d0c534
Bug 1403915 - Remove some leftover Layer-related goop. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
384286
diff
changeset
|
323 |
return true; |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
324 |
} |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
325 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
326 |
void WebRenderLayerManager::EndTransactionWithoutLayer( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
327 |
nsDisplayList* aDisplayList, nsDisplayListBuilder* aDisplayListBuilder, |
573310
3290d898be8adef5e794d7125d2a9f1384cae3ee
Bug 1700642 - Part 1: Track per frame paint phase durations r=nical
Miko Mynttinen <mikokm@gmail.com>
parents:
573276
diff
changeset
|
328 |
WrFiltersHolder&& aFilters, WebRenderBackgroundData* aBackground, |
3290d898be8adef5e794d7125d2a9f1384cae3ee
Bug 1700642 - Part 1: Track per frame paint phase durations r=nical
Miko Mynttinen <mikokm@gmail.com>
parents:
573276
diff
changeset
|
329 |
const double aGeckoDLBuildTime) { |
510659
7e4ffedd64374713b65aeb7d120f739887d6750d
Bug 1609708 - Rename PROFILER_TRACING to PROFILER_TRACING_MARKER. r=gerald
Nazım Can Altınova <canaltinova@gmail.com>
parents:
502411
diff
changeset
|
330 |
AUTO_PROFILER_TRACING_MARKER("Paint", "RenderLayers", GRAPHICS); |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
331 |
|
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
332 |
// Since we don't do repeat transactions right now, just set the time |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
333 |
mAnimationReadyTime = TimeStamp::Now(); |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
334 |
|
385061
2350d8369f3b3c65453b84ca4f2ea83cc3159b2f
Bug 1406707 - Change WebRenderBridgeChild::BeginTransaction() as to return void r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
384945
diff
changeset
|
335 |
WrBridge()->BeginTransaction(); |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
336 |
|
384723
2b2ed7093ab2fd9c599bcfcb7cb869bda8422147
Bug 1405947 - Remove argument of BeginTransaction() r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
384644
diff
changeset
|
337 |
LayoutDeviceIntSize size = mWidget->GetClientSize(); |
465755
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
338 |
|
590873
a480a8364911e38883ecab2e38e4432cb456dcf7
Bug 1728774 - Fix display item cache with retained DL builder. r=miko,gfx-reviewers
Glenn Watson <git@intuitionlibrary.com>
parents:
590475
diff
changeset
|
339 |
mDLBuilder->Begin(&mDisplayItemCache); |
518276
f792d895cdf8f3819b987389301e98b5873123d8
Bug 1620005 - Refactor WebRender display item caching r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518226
diff
changeset
|
340 |
|
399062
62401d22f92a45c4a50040424b77915fdea687bc
Bug 1405824 - Use WebRenderBridgeChild instead of IShmemAllocator in IpcResourceUpdateQueue. r=jrmuizel
Nicolas Silva <nsilva@mozilla.com>
parents:
398790
diff
changeset
|
341 |
wr::IpcResourceUpdateQueue resourceUpdates(WrBridge()); |
427371
6e38a0f11e038dc80c4a58eef65652d44311eda0
Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
425069
diff
changeset
|
342 |
wr::usize builderDumpIndex = 0; |
437415
2c10fe6e34c0f6c62984515fc48d81295d609f03
Bug 1483549 - Add separate CONTENT_FRAME_TIME recording for SVG with WR. r=jrmuizel data-review=francois
Matt Woodrow <mwoodrow@mozilla.com>
parents:
437016
diff
changeset
|
343 |
bool containsSVGGroup = false; |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
344 |
bool dumpEnabled = |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
345 |
mWebRenderCommandBuilder.ShouldDumpDisplayList(aDisplayListBuilder); |
540730
422a055dfbae293ad9277720e5d9a0901e5cdad5
Bug 1652986 - Restore ability to dump the WR display list interleaved with the the gecko DL. r=miko
Kartikaya Gupta <kgupta@mozilla.com>
parents:
534081
diff
changeset
|
346 |
Maybe<AutoDisplayItemCacheSuppressor> cacheSuppressor; |
427371
6e38a0f11e038dc80c4a58eef65652d44311eda0
Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
425069
diff
changeset
|
347 |
if (dumpEnabled) { |
540730
422a055dfbae293ad9277720e5d9a0901e5cdad5
Bug 1652986 - Restore ability to dump the WR display list interleaved with the the gecko DL. r=miko
Kartikaya Gupta <kgupta@mozilla.com>
parents:
534081
diff
changeset
|
348 |
cacheSuppressor.emplace(&mDisplayItemCache); |
427371
6e38a0f11e038dc80c4a58eef65652d44311eda0
Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
425069
diff
changeset
|
349 |
printf_stderr("-- WebRender display list build --\n"); |
6e38a0f11e038dc80c4a58eef65652d44311eda0
Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
425069
diff
changeset
|
350 |
} |
367091
3280d069c65002c55e7c68c874ceac5d66774f19
Bug 1372118 - Part1. Have a path to create WebRender commands without layers. r=jrmuizel, r=kats, r=mattwoodrow
Ethan Lin <ethlin@mozilla.com>
parents:
366862
diff
changeset
|
351 |
|
514919
cee2ebb35aa78184cfdd1064eb965acc22b0ee4a
Bug 1616335 - Add a pref to dump the serialized WebRender display list r=kvark
Miko Mynttinen <mikokm@gmail.com>
parents:
514882
diff
changeset
|
352 |
if (XRE_IsContentProcess() && |
590475
a14528944cc8af7672ee12ea2820382b91e7fd2f
Bug 1726118 - Prefix all webrender debug prefs with gfx.webrender.debug. r=gfx-reviewers,jrmuizel
Nicolas Silva <nsilva@mozilla.com>
parents:
590442
diff
changeset
|
353 |
StaticPrefs::gfx_webrender_debug_dl_dump_content_serialized()) { |
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
354 |
mDLBuilder->DumpSerializedDisplayList(); |
514919
cee2ebb35aa78184cfdd1064eb965acc22b0ee4a
Bug 1616335 - Add a pref to dump the serialized WebRender display list r=kvark
Miko Mynttinen <mikokm@gmail.com>
parents:
514882
diff
changeset
|
355 |
} |
cee2ebb35aa78184cfdd1064eb965acc22b0ee4a
Bug 1616335 - Add a pref to dump the serialized WebRender display list r=kvark
Miko Mynttinen <mikokm@gmail.com>
parents:
514882
diff
changeset
|
356 |
|
424378
0d8a19147238828cfb0097cd9e856d815eed5b7d
Bug 1405465 - Handle WR paint codepath with no frame r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
423788
diff
changeset
|
357 |
if (aDisplayList) { |
0d8a19147238828cfb0097cd9e856d815eed5b7d
Bug 1405465 - Handle WR paint codepath with no frame r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
423788
diff
changeset
|
358 |
MOZ_ASSERT(aDisplayListBuilder && !aBackground); |
520774
f215196f1d1c8c6b42214b35fee351ef021bd704
Bug 1624125 - Track display list changes in DisplayItemCache r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518276
diff
changeset
|
359 |
mDisplayItemCache.SetDisplayList(aDisplayListBuilder, aDisplayList); |
518276
f792d895cdf8f3819b987389301e98b5873123d8
Bug 1620005 - Refactor WebRender display item caching r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518226
diff
changeset
|
360 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
361 |
mWebRenderCommandBuilder.BuildWebRenderCommands( |
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
362 |
*mDLBuilder, resourceUpdates, aDisplayList, aDisplayListBuilder, |
522549
82b6993806c5494341f14bf691e99906a058ca27
Bug 1622360 - Remove WebRenderScrollDataCollection. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
522548
diff
changeset
|
363 |
mScrollData, std::move(aFilters)); |
518276
f792d895cdf8f3819b987389301e98b5873123d8
Bug 1620005 - Refactor WebRender display item caching r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
518226
diff
changeset
|
364 |
|
557770
f10ece478501cfe4cb9f03478e7c0748913f6de0
Bug 1675709. Make sure to only call NotifyApzTransaction on scroll frames after the paint transaction is complete in the webrender case. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
557507
diff
changeset
|
365 |
aDisplayListBuilder->NotifyAndClearScrollFrames(); |
f10ece478501cfe4cb9f03478e7c0748913f6de0
Bug 1675709. Make sure to only call NotifyApzTransaction on scroll frames after the paint transaction is complete in the webrender case. r=mattwoodrow
Timothy Nikkel <tnikkel@gmail.com>
parents:
557507
diff
changeset
|
366 |
|
523747
368bcfc1efad4bd8107163581d65d5880dd91987
Bug 1622360 - Downgrade builder dump index from RenderRootArray. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
522676
diff
changeset
|
367 |
builderDumpIndex = mWebRenderCommandBuilder.GetBuilderDumpIndex(); |
437415
2c10fe6e34c0f6c62984515fc48d81295d609f03
Bug 1483549 - Add separate CONTENT_FRAME_TIME recording for SVG with WR. r=jrmuizel data-review=francois
Matt Woodrow <mwoodrow@mozilla.com>
parents:
437016
diff
changeset
|
368 |
containsSVGGroup = mWebRenderCommandBuilder.GetContainsSVGGroup(); |
424378
0d8a19147238828cfb0097cd9e856d815eed5b7d
Bug 1405465 - Handle WR paint codepath with no frame r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
423788
diff
changeset
|
369 |
} else { |
0d8a19147238828cfb0097cd9e856d815eed5b7d
Bug 1405465 - Handle WR paint codepath with no frame r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
423788
diff
changeset
|
370 |
// ViewToPaint does not have frame yet, then render only background clolor. |
0d8a19147238828cfb0097cd9e856d815eed5b7d
Bug 1405465 - Handle WR paint codepath with no frame r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
423788
diff
changeset
|
371 |
MOZ_ASSERT(!aDisplayListBuilder && aBackground); |
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
372 |
aBackground->AddWebRenderCommands(*mDLBuilder); |
427371
6e38a0f11e038dc80c4a58eef65652d44311eda0
Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
425069
diff
changeset
|
373 |
if (dumpEnabled) { |
6e38a0f11e038dc80c4a58eef65652d44311eda0
Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
425069
diff
changeset
|
374 |
printf_stderr("(no display list; background only)\n"); |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
375 |
builderDumpIndex = |
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
376 |
mDLBuilder->Dump(/*indent*/ 1, Some(builderDumpIndex), Nothing()); |
427371
6e38a0f11e038dc80c4a58eef65652d44311eda0
Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
425069
diff
changeset
|
377 |
} |
423788
a54c4cc96505799a60706b586d004db2be2da638
Bug 1471220 - Record the WR display list build time in the flb phase of content paint telemetry. r=mattwoodrow
Kartikaya Gupta <kgupta@mozilla.com>
parents:
419608
diff
changeset
|
378 |
} |
367091
3280d069c65002c55e7c68c874ceac5d66774f19
Bug 1372118 - Part1. Have a path to create WebRender commands without layers. r=jrmuizel, r=kats, r=mattwoodrow
Ethan Lin <ethlin@mozilla.com>
parents:
366862
diff
changeset
|
379 |
|
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
380 |
mWidget->AddWindowOverlayWebRenderCommands(WrBridge(), *mDLBuilder, |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
381 |
resourceUpdates); |
427371
6e38a0f11e038dc80c4a58eef65652d44311eda0
Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
425069
diff
changeset
|
382 |
if (dumpEnabled) { |
6e38a0f11e038dc80c4a58eef65652d44311eda0
Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
425069
diff
changeset
|
383 |
printf_stderr("(window overlay)\n"); |
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
384 |
Unused << mDLBuilder->Dump(/*indent*/ 1, Some(builderDumpIndex), Nothing()); |
427371
6e38a0f11e038dc80c4a58eef65652d44311eda0
Bug 1475637 - Add a mechanism for dumping an interleaved display list. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
425069
diff
changeset
|
385 |
} |
388729
7b501bcc9d3f2a9d7ff3cee0a9019cb3fd2bea3f
Bug 1410777 - Force a full transaction for WR when the window overlay changes. r=mstange
Kartikaya Gupta <kgupta@mozilla.com>
parents:
388728
diff
changeset
|
386 |
|
522549
82b6993806c5494341f14bf691e99906a058ca27
Bug 1622360 - Remove WebRenderScrollDataCollection. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
522548
diff
changeset
|
387 |
if (AsyncPanZoomEnabled()) { |
82b6993806c5494341f14bf691e99906a058ca27
Bug 1622360 - Remove WebRenderScrollDataCollection. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
522548
diff
changeset
|
388 |
if (mIsFirstPaint) { |
82b6993806c5494341f14bf691e99906a058ca27
Bug 1622360 - Remove WebRenderScrollDataCollection. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
522548
diff
changeset
|
389 |
mScrollData.SetIsFirstPaint(); |
82b6993806c5494341f14bf691e99906a058ca27
Bug 1622360 - Remove WebRenderScrollDataCollection. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
522548
diff
changeset
|
390 |
mIsFirstPaint = false; |
355164
9a89384b0d2c19e874059db52db86e893e5c3e6c
Bug 1357754 - Record the isFirstPaint flag in the WebRenderScrollData. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
355156
diff
changeset
|
391 |
} |
522549
82b6993806c5494341f14bf691e99906a058ca27
Bug 1622360 - Remove WebRenderScrollDataCollection. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
522548
diff
changeset
|
392 |
mScrollData.SetPaintSequenceNumber(mPaintSequenceNumber); |
524239
ba223c9eb4fdd088995bbab5087dd88a93b3b892
Bug 1627362 - Improve logging for fixed/sticky data on the WR codepath. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
523747
diff
changeset
|
393 |
if (dumpEnabled) { |
556923
77c19223a20f1ed0df92c8d26ae50467d9c783f8
Bug 1662800 - Make the WebRenderScrollData dump nicer. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
556414
diff
changeset
|
394 |
std::stringstream str; |
77c19223a20f1ed0df92c8d26ae50467d9c783f8
Bug 1662800 - Make the WebRenderScrollData dump nicer. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
556414
diff
changeset
|
395 |
str << mScrollData; |
77c19223a20f1ed0df92c8d26ae50467d9c783f8
Bug 1662800 - Make the WebRenderScrollData dump nicer. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
556414
diff
changeset
|
396 |
print_stderr(str); |
524239
ba223c9eb4fdd088995bbab5087dd88a93b3b892
Bug 1627362 - Improve logging for fixed/sticky data on the WR codepath. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
523747
diff
changeset
|
397 |
} |
355156
9801b8ad5dc2d77edd387c7b508f2bffdb409a5b
Bug 1357754 - Add a mechanism to send scroll data to APZ over PWebRenderBridge. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
355152
diff
changeset
|
398 |
} |
465755
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
399 |
|
417939
61f51684cc29e527504f1ec72824bf5b53fa1853
Bug 1452390 - Implement paint-skipping support in WebRender. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
416673
diff
changeset
|
400 |
// Since we're sending a full mScrollData that will include the new scroll |
61f51684cc29e527504f1ec72824bf5b53fa1853
Bug 1452390 - Implement paint-skipping support in WebRender. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
416673
diff
changeset
|
401 |
// offsets, and we can throw away the pending scroll updates we had kept for |
61f51684cc29e527504f1ec72824bf5b53fa1853
Bug 1452390 - Implement paint-skipping support in WebRender. r=botond
Kartikaya Gupta <kgupta@mozilla.com>
parents:
416673
diff
changeset
|
402 |
// an empty transaction. |
472326
85c60519f4c93d2eead5cb2963be5649d6d5d87b
Bug 1547435 - Ensure NotifyApzTransaction is only called once a transaction is actually sent. r=kats,rhunt
Botond Ballo <botond@mozilla.com>
parents:
471996
diff
changeset
|
403 |
auto scrollIdsUpdated = ClearPendingScrollInfoUpdate(); |
85c60519f4c93d2eead5cb2963be5649d6d5d87b
Bug 1547435 - Ensure NotifyApzTransaction is only called once a transaction is actually sent. r=kats,rhunt
Botond Ballo <botond@mozilla.com>
parents:
471996
diff
changeset
|
404 |
for (ScrollableLayerGuid::ViewID update : scrollIdsUpdated) { |
85c60519f4c93d2eead5cb2963be5649d6d5d87b
Bug 1547435 - Ensure NotifyApzTransaction is only called once a transaction is actually sent. r=kats,rhunt
Botond Ballo <botond@mozilla.com>
parents:
471996
diff
changeset
|
405 |
nsLayoutUtils::NotifyPaintSkipTransaction(update); |
85c60519f4c93d2eead5cb2963be5649d6d5d87b
Bug 1547435 - Ensure NotifyApzTransaction is only called once a transaction is actually sent. r=kats,rhunt
Botond Ballo <botond@mozilla.com>
parents:
471996
diff
changeset
|
406 |
} |
355156
9801b8ad5dc2d77edd387c7b508f2bffdb409a5b
Bug 1357754 - Add a mechanism to send scroll data to APZ over PWebRenderBridge. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
355152
diff
changeset
|
407 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
408 |
mLatestTransactionId = |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
409 |
mTransactionIdAllocator->GetTransactionId(/*aThrottle*/ true); |
447335
52a798ad6583b97fb3faf68f1849e7098d9ce4ae
Bug 1507680 - Record detailed statistics about slow WebRender frames in about:support. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
447334
diff
changeset
|
410 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
411 |
// Get the time of when the refresh driver start its tick (if available), |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
412 |
// otherwise use the time of when LayerManager::BeginTransaction was called. |
425069
c572bc658fec6ec6904eff12350962af3346ba8c
Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
Ryan Hunt <rhunt@eqrion.net>
parents:
424926
diff
changeset
|
413 |
TimeStamp refreshStart = mTransactionIdAllocator->GetTransactionStart(); |
447335
52a798ad6583b97fb3faf68f1849e7098d9ce4ae
Bug 1507680 - Record detailed statistics about slow WebRender frames in about:support. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
447334
diff
changeset
|
414 |
if (!refreshStart) { |
52a798ad6583b97fb3faf68f1849e7098d9ce4ae
Bug 1507680 - Record detailed statistics about slow WebRender frames in about:support. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
447334
diff
changeset
|
415 |
refreshStart = mTransactionStart; |
52a798ad6583b97fb3faf68f1849e7098d9ce4ae
Bug 1507680 - Record detailed statistics about slow WebRender frames in about:support. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
447334
diff
changeset
|
416 |
} |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
417 |
|
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
418 |
if (mStateManager.mAsyncResourceUpdates) { |
529362
9f69227b60a6f02cc568f3c7b2bef4838bde9bd8
Bug 1622360 - Remove resource subqueue machinery. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529211
diff
changeset
|
419 |
if (resourceUpdates.IsEmpty()) { |
9f69227b60a6f02cc568f3c7b2bef4838bde9bd8
Bug 1622360 - Remove resource subqueue machinery. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529211
diff
changeset
|
420 |
resourceUpdates.ReplaceResources( |
9f69227b60a6f02cc568f3c7b2bef4838bde9bd8
Bug 1622360 - Remove resource subqueue machinery. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529211
diff
changeset
|
421 |
std::move(mStateManager.mAsyncResourceUpdates.ref())); |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
422 |
} else { |
530184
5809724e4d1395f7c47539eb041c8a64cd1f8219
Bug 1622360 - Stop passing around the render root on the UpdateResources codepath. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529367
diff
changeset
|
423 |
WrBridge()->UpdateResources(mStateManager.mAsyncResourceUpdates.ref()); |
444115
1a3433fb1c2975e86cf2c3c7821ff10999f5dbab
Bug 1428558 - Part 2. Improve plumbing to sending resource updates to WebRender. r=nical
Andrew Osmond <aosmond@mozilla.com>
parents:
442491
diff
changeset
|
424 |
} |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
425 |
mStateManager.mAsyncResourceUpdates.reset(); |
444115
1a3433fb1c2975e86cf2c3c7821ff10999f5dbab
Bug 1428558 - Part 2. Improve plumbing to sending resource updates to WebRender. r=nical
Andrew Osmond <aosmond@mozilla.com>
parents:
442491
diff
changeset
|
426 |
} |
529362
9f69227b60a6f02cc568f3c7b2bef4838bde9bd8
Bug 1622360 - Remove resource subqueue machinery. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529211
diff
changeset
|
427 |
mStateManager.DiscardImagesInTransaction(resourceUpdates); |
444115
1a3433fb1c2975e86cf2c3c7821ff10999f5dbab
Bug 1428558 - Part 2. Improve plumbing to sending resource updates to WebRender. r=nical
Andrew Osmond <aosmond@mozilla.com>
parents:
442491
diff
changeset
|
428 |
|
529362
9f69227b60a6f02cc568f3c7b2bef4838bde9bd8
Bug 1622360 - Remove resource subqueue machinery. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529211
diff
changeset
|
429 |
WrBridge()->RemoveExpiredFontKeys(resourceUpdates); |
410346
034e1d7593701112b0c92fb1b40e0e69663b0ca9
Bug 1447910 - move WR font key deletion to the end of a transaction. r=jrmuizel
Lee Salzman <lsalzman@mozilla.com>
parents:
409329
diff
changeset
|
430 |
|
512561 | 431 |
// Skip the synchronization for buffer since we also skip the painting during |
432 |
// device-reset status. |
|
433 |
if (!gfxPlatform::GetPlatform()->DidRenderingDeviceReset()) { |
|
434 |
if (WrBridge()->GetSyncObject() && |
|
435 |
WrBridge()->GetSyncObject()->IsSyncObjectValid()) { |
|
436 |
WrBridge()->GetSyncObject()->Synchronize(); |
|
437 |
} |
|
438 |
} |
|
439 |
||
477808
4357d695b8d5dd901788d922b73e89f16c45b2c9
Bug 1464032 Part 12: Add CanvasParent, CanvasChild and RecordedTextureData. r=mattwoodrow, jld
Bob Owen <bobowencode@gmail.com>
parents:
477802
diff
changeset
|
440 |
GetCompositorBridgeChild()->EndCanvasTransaction(); |
4357d695b8d5dd901788d922b73e89f16c45b2c9
Bug 1464032 Part 12: Add CanvasParent, CanvasChild and RecordedTextureData. r=mattwoodrow, jld
Bob Owen <bobowencode@gmail.com>
parents:
477802
diff
changeset
|
441 |
|
363416
2629ca0641a72087efcc1d12498519450070dbc7
Bug 1371114 - Add gecko profiler labels for WebRender, r=kats
peter chang <pchang@mozilla.com>
parents:
362306
diff
changeset
|
442 |
{ |
510659
7e4ffedd64374713b65aeb7d120f739887d6750d
Bug 1609708 - Rename PROFILER_TRACING to PROFILER_TRACING_MARKER. r=gerald
Nazım Can Altınova <canaltinova@gmail.com>
parents:
502411
diff
changeset
|
443 |
AUTO_PROFILER_TRACING_MARKER("Paint", "ForwardDPTransaction", GRAPHICS); |
530256
c15b0564d4f593f486b0bbe482b38fcdbb8f701c
Bug 1622360 - Singularize the DisplayListData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530255
diff
changeset
|
444 |
DisplayListData dlData; |
590268
e567052f6153e252eff9f91903a65ad1b657bf85
Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
Glenn Watson <git@intuitionlibrary.com>
parents:
590169
diff
changeset
|
445 |
mDLBuilder->End(dlData); |
530256
c15b0564d4f593f486b0bbe482b38fcdbb8f701c
Bug 1622360 - Singularize the DisplayListData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530255
diff
changeset
|
446 |
resourceUpdates.Flush(dlData.mResourceUpdates, dlData.mSmallShmems, |
c15b0564d4f593f486b0bbe482b38fcdbb8f701c
Bug 1622360 - Singularize the DisplayListData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530255
diff
changeset
|
447 |
dlData.mLargeShmems); |
c15b0564d4f593f486b0bbe482b38fcdbb8f701c
Bug 1622360 - Singularize the DisplayListData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530255
diff
changeset
|
448 |
dlData.mRect = |
529211
f9e7cca93ef256454af50630fbe8f9ca67ce18f4
Bug 1622360 - Remove kRenderRoots. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529208
diff
changeset
|
449 |
LayoutDeviceRect(LayoutDevicePoint(), LayoutDeviceSize(size)); |
530256
c15b0564d4f593f486b0bbe482b38fcdbb8f701c
Bug 1622360 - Singularize the DisplayListData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530255
diff
changeset
|
450 |
dlData.mScrollData.emplace(std::move(mScrollData)); |
577074
47a2e56cc7a6a073f17a23341f4e9990632df78d
Bug 1676657 - Port paint phase weight histograms to WebRender r=nical
Miko Mynttinen <mikokm@gmail.com>
parents:
576958
diff
changeset
|
451 |
dlData.mDLDesc.gecko_display_list_type = |
47a2e56cc7a6a073f17a23341f4e9990632df78d
Bug 1676657 - Port paint phase weight histograms to WebRender r=nical
Miko Mynttinen <mikokm@gmail.com>
parents:
576958
diff
changeset
|
452 |
aDisplayListBuilder && aDisplayListBuilder->PartialBuildFailed() |
47a2e56cc7a6a073f17a23341f4e9990632df78d
Bug 1676657 - Port paint phase weight histograms to WebRender r=nical
Miko Mynttinen <mikokm@gmail.com>
parents:
576958
diff
changeset
|
453 |
? wr::GeckoDisplayListType::Full(aGeckoDLBuildTime) |
47a2e56cc7a6a073f17a23341f4e9990632df78d
Bug 1676657 - Port paint phase weight histograms to WebRender r=nical
Miko Mynttinen <mikokm@gmail.com>
parents:
576958
diff
changeset
|
454 |
: wr::GeckoDisplayListType::Partial(aGeckoDLBuildTime); |
465755
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
455 |
|
526665
29ed956cc6c3a91db481750de108a8446d604286
Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
524239
diff
changeset
|
456 |
bool ret = WrBridge()->EndTransaction( |
530256
c15b0564d4f593f486b0bbe482b38fcdbb8f701c
Bug 1622360 - Singularize the DisplayListData across IPC. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
530255
diff
changeset
|
457 |
std::move(dlData), mLatestTransactionId, containsSVGGroup, |
526665
29ed956cc6c3a91db481750de108a8446d604286
Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
524239
diff
changeset
|
458 |
mTransactionIdAllocator->GetVsyncId(), |
29ed956cc6c3a91db481750de108a8446d604286
Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
524239
diff
changeset
|
459 |
mTransactionIdAllocator->GetVsyncStart(), refreshStart, |
29ed956cc6c3a91db481750de108a8446d604286
Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
524239
diff
changeset
|
460 |
mTransactionStart, mURL); |
29ed956cc6c3a91db481750de108a8446d604286
Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
524239
diff
changeset
|
461 |
if (!ret) { |
29ed956cc6c3a91db481750de108a8446d604286
Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
524239
diff
changeset
|
462 |
// Failed to send display list, reset display item cache state. |
29ed956cc6c3a91db481750de108a8446d604286
Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
524239
diff
changeset
|
463 |
mDisplayItemCache.Clear(); |
29ed956cc6c3a91db481750de108a8446d604286
Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
524239
diff
changeset
|
464 |
} |
29ed956cc6c3a91db481750de108a8446d604286
Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
524239
diff
changeset
|
465 |
|
465755
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
466 |
WrBridge()->SendSetFocusTarget(mFocusTarget); |
96da9d241051d222bdd693bdb519d058a013b59c
Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
Doug Thayer <dothayer@mozilla.com>
parents:
465589
diff
changeset
|
467 |
mFocusTarget = FocusTarget(); |
363416
2629ca0641a72087efcc1d12498519450070dbc7
Bug 1371114 - Add gecko profiler labels for WebRender, r=kats
peter chang <pchang@mozilla.com>
parents:
362306
diff
changeset
|
468 |
} |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
469 |
|
452853
ed51ef14289e378f05974012b62f1cb2464b867b
Bug 1505363 - Call DiscardCompositorAnimations() after calling WrBridge()->EndTransaction() r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
452465
diff
changeset
|
470 |
// Discard animations after calling WrBridge()->EndTransaction(). |
ed51ef14289e378f05974012b62f1cb2464b867b
Bug 1505363 - Call DiscardCompositorAnimations() after calling WrBridge()->EndTransaction() r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
452465
diff
changeset
|
471 |
// It updates mWrEpoch in WebRenderBridgeParent. The updated mWrEpoch is |
ed51ef14289e378f05974012b62f1cb2464b867b
Bug 1505363 - Call DiscardCompositorAnimations() after calling WrBridge()->EndTransaction() r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
452465
diff
changeset
|
472 |
// necessary for deleting animations at the correct time. |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
473 |
mStateManager.DiscardCompositorAnimations(); |
452853
ed51ef14289e378f05974012b62f1cb2464b867b
Bug 1505363 - Call DiscardCompositorAnimations() after calling WrBridge()->EndTransaction() r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
452465
diff
changeset
|
474 |
|
425069
c572bc658fec6ec6904eff12350962af3346ba8c
Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
Ryan Hunt <rhunt@eqrion.net>
parents:
424926
diff
changeset
|
475 |
mTransactionStart = TimeStamp(); |
c572bc658fec6ec6904eff12350962af3346ba8c
Bug 1470528 - Implement CONTENT_FRAME_TIME for the webrender codepath. r=sotaro
Ryan Hunt <rhunt@eqrion.net>
parents:
424926
diff
changeset
|
476 |
|
341869
9af4655d0edcdd9c8099abe9a75825f051a4ab04
Bug 1318100. Follow up clean up of WebrenderBridgeChild
Mason Chang <mchang@mozilla.com>
parents:
341868
diff
changeset
|
477 |
MakeSnapshotIfRequired(size); |
352760
c2d11e5e96d664e9c88384fe3c3dfbb600f225e8
Bug 1354474 - Add FlushRendering() and Composite() support to WebRenderLayerManager r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
350351
diff
changeset
|
478 |
mNeedsComposite = false; |
341868
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
479 |
} |
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
480 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
481 |
void WebRenderLayerManager::SetFocusTarget(const FocusTarget& aFocusTarget) { |
366286
36bfbfdfa4a187ceea3aa8013963f0153b0317f3
Bug 1351783 part 11 - Sync FocusTarget with WebRenderLayerManager. r=kats
Ryan Hunt <rhunt@eqrion.net>
parents:
365845
diff
changeset
|
482 |
mFocusTarget = aFocusTarget; |
36bfbfdfa4a187ceea3aa8013963f0153b0317f3
Bug 1351783 part 11 - Sync FocusTarget with WebRenderLayerManager. r=kats
Ryan Hunt <rhunt@eqrion.net>
parents:
365845
diff
changeset
|
483 |
} |
36bfbfdfa4a187ceea3aa8013963f0153b0317f3
Bug 1351783 part 11 - Sync FocusTarget with WebRenderLayerManager. r=kats
Ryan Hunt <rhunt@eqrion.net>
parents:
365845
diff
changeset
|
484 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
485 |
bool WebRenderLayerManager::AsyncPanZoomEnabled() const { |
359306
c4eb64f48562efad2d3e7beb41d20ba4316dcd32
Bug 1361497 - Override AsyncPanZoomEnabled() in WebRenderLayerManager. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
357036
diff
changeset
|
486 |
return mWidget->AsyncPanZoomEnabled(); |
c4eb64f48562efad2d3e7beb41d20ba4316dcd32
Bug 1361497 - Override AsyncPanZoomEnabled() in WebRenderLayerManager. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
357036
diff
changeset
|
487 |
} |
c4eb64f48562efad2d3e7beb41d20ba4316dcd32
Bug 1361497 - Override AsyncPanZoomEnabled() in WebRenderLayerManager. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
357036
diff
changeset
|
488 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
489 |
void WebRenderLayerManager::MakeSnapshotIfRequired(LayoutDeviceIntSize aSize) { |
341894
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
490 |
if (!mTarget || aSize.IsEmpty()) { |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
491 |
return; |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
492 |
} |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
493 |
|
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
494 |
// XXX Add other TextureData supports. |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
495 |
// Only BufferTexture is supported now. |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
496 |
|
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
497 |
// TODO: fixup for proper surface format. |
471996
f1a87f8700525873cbe7d810ebff7587255e739a
Bug 1547097 - Get snapshots in RGBA8 instead of BGRA8 on Android. r=jnicol
Kartikaya Gupta <kgupta@mozilla.com>
parents:
471623
diff
changeset
|
498 |
// The GLES spec only guarantees that RGBA can be used with glReadPixels, |
f1a87f8700525873cbe7d810ebff7587255e739a
Bug 1547097 - Get snapshots in RGBA8 instead of BGRA8 on Android. r=jnicol
Kartikaya Gupta <kgupta@mozilla.com>
parents:
471623
diff
changeset
|
499 |
// so on Android we use RGBA. |
f1a87f8700525873cbe7d810ebff7587255e739a
Bug 1547097 - Get snapshots in RGBA8 instead of BGRA8 on Android. r=jnicol
Kartikaya Gupta <kgupta@mozilla.com>
parents:
471623
diff
changeset
|
500 |
SurfaceFormat format = |
f1a87f8700525873cbe7d810ebff7587255e739a
Bug 1547097 - Get snapshots in RGBA8 instead of BGRA8 on Android. r=jnicol
Kartikaya Gupta <kgupta@mozilla.com>
parents:
471623
diff
changeset
|
501 |
#ifdef MOZ_WIDGET_ANDROID |
475580
edbf8267dd4f5a786ae660ff9e2fe890cf74c48e
Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
Sylvestre Ledru <sledru@mozilla.com>
parents:
475564
diff
changeset
|
502 |
SurfaceFormat::R8G8B8A8; |
471996
f1a87f8700525873cbe7d810ebff7587255e739a
Bug 1547097 - Get snapshots in RGBA8 instead of BGRA8 on Android. r=jnicol
Kartikaya Gupta <kgupta@mozilla.com>
parents:
471623
diff
changeset
|
503 |
#else |
475580
edbf8267dd4f5a786ae660ff9e2fe890cf74c48e
Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
Sylvestre Ledru <sledru@mozilla.com>
parents:
475564
diff
changeset
|
504 |
SurfaceFormat::B8G8R8A8; |
471996
f1a87f8700525873cbe7d810ebff7587255e739a
Bug 1547097 - Get snapshots in RGBA8 instead of BGRA8 on Android. r=jnicol
Kartikaya Gupta <kgupta@mozilla.com>
parents:
471623
diff
changeset
|
505 |
#endif |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
506 |
RefPtr<TextureClient> texture = TextureClient::CreateForRawBufferAccess( |
475580
edbf8267dd4f5a786ae660ff9e2fe890cf74c48e
Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
Sylvestre Ledru <sledru@mozilla.com>
parents:
475564
diff
changeset
|
507 |
WrBridge(), format, aSize.ToUnknownSize(), BackendType::SKIA, |
edbf8267dd4f5a786ae660ff9e2fe890cf74c48e
Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
Sylvestre Ledru <sledru@mozilla.com>
parents:
475564
diff
changeset
|
508 |
TextureFlags::SNAPSHOT); |
341894
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
509 |
if (!texture) { |
341868
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
510 |
return; |
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
511 |
} |
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
512 |
|
342122
8f272d554787e096ae515ba635c3705a6b9b6bcf
Bug 1331515 - More WR to Wr prefix conversion. r=gfx?
Nicolas Silva <nsilva@mozilla.com>
parents:
342121
diff
changeset
|
513 |
texture->InitIPDLActor(WrBridge()); |
341894
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
514 |
if (!texture->GetIPDLActor()) { |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
515 |
return; |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
516 |
} |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
517 |
|
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
518 |
IntRect bounds = ToOutsideIntRect(mTarget->GetClipExtents()); |
544716
64b98572f2e02462068dac40c656d3c091619143
Bug 1656818 - Move decision to flip WebRender readback closer to the source, and make it correct for SWGL. r=lsalzman,geckoview-reviewers,snorp
Matt Woodrow <mwoodrow@mozilla.com>
parents:
544632
diff
changeset
|
519 |
bool needsYFlip = false; |
64b98572f2e02462068dac40c656d3c091619143
Bug 1656818 - Move decision to flip WebRender readback closer to the source, and make it correct for SWGL. r=lsalzman,geckoview-reviewers,snorp
Matt Woodrow <mwoodrow@mozilla.com>
parents:
544632
diff
changeset
|
520 |
if (!WrBridge()->SendGetSnapshot(texture->GetIPDLActor(), &needsYFlip)) { |
341894
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
521 |
return; |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
522 |
} |
341868
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
523 |
|
341894
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
524 |
TextureClientAutoLock autoLock(texture, OpenMode::OPEN_READ_ONLY); |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
525 |
if (!autoLock.Succeeded()) { |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
526 |
return; |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
527 |
} |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
528 |
RefPtr<DrawTarget> drawTarget = texture->BorrowDrawTarget(); |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
529 |
if (!drawTarget || !drawTarget->IsValid()) { |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
530 |
return; |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
531 |
} |
fa40a7b4f05f6066572872bd0ddc7a7243a862f4
Bug 1318113 - Use BufferTexture to return the reftest snapshot r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341891
diff
changeset
|
532 |
RefPtr<SourceSurface> snapshot = drawTarget->Snapshot(); |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
533 |
/* |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
534 |
static int count = 0; |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
535 |
char filename[100]; |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
536 |
snprintf(filename, 100, "output%d.png", count++); |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
537 |
printf_stderr("Writing to :%s\n", filename); |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
538 |
gfxUtils::WriteAsPNG(snapshot, filename); |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
539 |
*/ |
341868
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
540 |
|
396878
0649658ddeb253b8d05bb1b396d49035a197be3c
Bug 1423570: Use BaseRect access methods instead of member variables in gfx/ r=bas.schouten
Milan Sreckovic <milan@mozilla.com>
parents:
394341
diff
changeset
|
541 |
Rect dst(bounds.X(), bounds.Y(), bounds.Width(), bounds.Height()); |
374590
2a8f664f107efeaa3be4dee08b3ac340df88892f
Bug 1387514: Upgrade BaseRect (derived classes) width and height direct member variable use to instead use Width()/SetWidth() and Height()/SetHeight() in .cpp files in gfx/*. r=milan
Milan Sreckovic <milan@mozilla.com>
parents:
374546
diff
changeset
|
542 |
Rect src(0, 0, bounds.Width(), bounds.Height()); |
341868
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
543 |
|
499396
9277be3613ca5109ae4007a512ee75856f8f1120
Bug 1591346 - Remove EGL_ANGLE_experimental_present_path usage with WebRender r=gw
sotaro <sotaro.ikeda.g@gmail.com>
parents:
493161
diff
changeset
|
544 |
Matrix m; |
9277be3613ca5109ae4007a512ee75856f8f1120
Bug 1591346 - Remove EGL_ANGLE_experimental_present_path usage with WebRender r=gw
sotaro <sotaro.ikeda.g@gmail.com>
parents:
493161
diff
changeset
|
545 |
if (needsYFlip) { |
9277be3613ca5109ae4007a512ee75856f8f1120
Bug 1591346 - Remove EGL_ANGLE_experimental_present_path usage with WebRender r=gw
sotaro <sotaro.ikeda.g@gmail.com>
parents:
493161
diff
changeset
|
546 |
m = Matrix::Scaling(1.0, -1.0).PostTranslate(0.0, aSize.height); |
9277be3613ca5109ae4007a512ee75856f8f1120
Bug 1591346 - Remove EGL_ANGLE_experimental_present_path usage with WebRender r=gw
sotaro <sotaro.ikeda.g@gmail.com>
parents:
493161
diff
changeset
|
547 |
} |
9277be3613ca5109ae4007a512ee75856f8f1120
Bug 1591346 - Remove EGL_ANGLE_experimental_present_path usage with WebRender r=gw
sotaro <sotaro.ikeda.g@gmail.com>
parents:
493161
diff
changeset
|
548 |
SurfacePattern pattern(snapshot, ExtendMode::CLAMP, m); |
341868
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
549 |
DrawTarget* dt = mTarget->GetDrawTarget(); |
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
550 |
MOZ_RELEASE_ASSERT(dt); |
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
551 |
dt->FillRect(dst, pattern); |
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
552 |
|
f5bea7e99fdc6d291c4a0c138a5a704b28ce5dcd
Bug 1318100 - Add support for reftests in webrender. r=mstange
Mason Chang <mchang@mozilla.com>
parents:
341858
diff
changeset
|
553 |
mTarget = nullptr; |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
554 |
} |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
555 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
556 |
void WebRenderLayerManager::DiscardImages() { |
399062
62401d22f92a45c4a50040424b77915fdea687bc
Bug 1405824 - Use WebRenderBridgeChild instead of IShmemAllocator in IpcResourceUpdateQueue. r=jrmuizel
Nicolas Silva <nsilva@mozilla.com>
parents:
398790
diff
changeset
|
557 |
wr::IpcResourceUpdateQueue resources(WrBridge()); |
529362
9f69227b60a6f02cc568f3c7b2bef4838bde9bd8
Bug 1622360 - Remove resource subqueue machinery. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529211
diff
changeset
|
558 |
mStateManager.DiscardImagesInTransaction(resources); |
530184
5809724e4d1395f7c47539eb041c8a64cd1f8219
Bug 1622360 - Stop passing around the render root on the UpdateResources codepath. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529367
diff
changeset
|
559 |
WrBridge()->UpdateResources(resources); |
341822
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
560 |
} |
b4e83ae3d878b1552bbc142d848151db100ceba6
Bug 1317774 - Add gfx code needed to use WebRender in gecko. r=gfx
Mozilla Graphics Team <graphics@mozilla.com>
parents:
diff
changeset
|
561 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
562 |
void WebRenderLayerManager::DiscardLocalImages() { |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
563 |
mStateManager.DiscardLocalImages(); |
355152
73569501177174b1022ed18e439b1c397d5ebe3b
Bug 1337761 - Part 2: Don't send external images to the parent side if a transaction is incomplete. r=nical
Mason Chang <mchang@mozilla.com>
parents:
355151
diff
changeset
|
564 |
} |
73569501177174b1022ed18e439b1c397d5ebe3b
Bug 1337761 - Part 2: Don't send external images to the parent side if a transaction is incomplete. r=nical
Mason Chang <mchang@mozilla.com>
parents:
355151
diff
changeset
|
565 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
566 |
void WebRenderLayerManager::SetLayersObserverEpoch(LayersObserverEpoch aEpoch) { |
369574
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
567 |
if (WrBridge()->IPCOpen()) { |
429191
383e6ae8f7d4d1961a56aa6f5a69b4c3e8c3e2e5
Bug 1478016 - Add a strongly-typed LayersObserverEpoch type. r=mattwoodrow
Kartikaya Gupta <kgupta@mozilla.com>
parents:
427570
diff
changeset
|
568 |
WrBridge()->SendSetLayersObserverEpoch(aEpoch); |
369574
649a35887b3018c91766cc4afea8370d54dd3ccd
Bug 1350408 - Gracefully handle failures in WebRenderLayerManager::Initialize to allow reinit. r=kats
Andrew Osmond <aosmond@mozilla.com>
parents:
369217
diff
changeset
|
569 |
} |
341905
e98fd107f5a0f578a0d11c761a1531206391e1b9
Bug 1320628 - Fix background tab crash when e10s is enabled r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341901
diff
changeset
|
570 |
} |
e98fd107f5a0f578a0d11c761a1531206391e1b9
Bug 1320628 - Fix background tab crash when e10s is enabled r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341901
diff
changeset
|
571 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
572 |
void WebRenderLayerManager::DidComposite( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
573 |
TransactionId aTransactionId, const mozilla::TimeStamp& aCompositeStart, |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
574 |
const mozilla::TimeStamp& aCompositeEnd) { |
462577
c6b7a7d1835236a71bdc762a42f7bad27bcff4d0
Bug 1532510 - Add a check by IsDestroyed() to WebRenderLayerManager::DidComposite() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
461124
diff
changeset
|
575 |
if (IsDestroyed()) { |
c6b7a7d1835236a71bdc762a42f7bad27bcff4d0
Bug 1532510 - Add a check by IsDestroyed() to WebRenderLayerManager::DidComposite() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
461124
diff
changeset
|
576 |
return; |
c6b7a7d1835236a71bdc762a42f7bad27bcff4d0
Bug 1532510 - Add a check by IsDestroyed() to WebRenderLayerManager::DidComposite() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
461124
diff
changeset
|
577 |
} |
c6b7a7d1835236a71bdc762a42f7bad27bcff4d0
Bug 1532510 - Add a check by IsDestroyed() to WebRenderLayerManager::DidComposite() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
461124
diff
changeset
|
578 |
|
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
579 |
MOZ_ASSERT(mWidget); |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
580 |
|
369954
6b0a79f9009435f0ea475240c9a7aaf64c4cfc79
Bug 1378113 - Avoid LayerManager reentrency issues when propagating composite notifications. r=dvander
Nicolas Silva <nsilva@mozilla.com>
parents:
369818
diff
changeset
|
581 |
// Notifying the observers may tick the refresh driver which can cause |
6b0a79f9009435f0ea475240c9a7aaf64c4cfc79
Bug 1378113 - Avoid LayerManager reentrency issues when propagating composite notifications. r=dvander
Nicolas Silva <nsilva@mozilla.com>
parents:
369818
diff
changeset
|
582 |
// a lot of different things to happen that may affect the lifetime of |
6b0a79f9009435f0ea475240c9a7aaf64c4cfc79
Bug 1378113 - Avoid LayerManager reentrency issues when propagating composite notifications. r=dvander
Nicolas Silva <nsilva@mozilla.com>
parents:
369818
diff
changeset
|
583 |
// this layer manager. So let's make sure this object stays alive until |
6b0a79f9009435f0ea475240c9a7aaf64c4cfc79
Bug 1378113 - Avoid LayerManager reentrency issues when propagating composite notifications. r=dvander
Nicolas Silva <nsilva@mozilla.com>
parents:
369818
diff
changeset
|
584 |
// the end of the method invocation. |
6b0a79f9009435f0ea475240c9a7aaf64c4cfc79
Bug 1378113 - Avoid LayerManager reentrency issues when propagating composite notifications. r=dvander
Nicolas Silva <nsilva@mozilla.com>
parents:
369818
diff
changeset
|
585 |
RefPtr<WebRenderLayerManager> selfRef = this; |
6b0a79f9009435f0ea475240c9a7aaf64c4cfc79
Bug 1378113 - Avoid LayerManager reentrency issues when propagating composite notifications. r=dvander
Nicolas Silva <nsilva@mozilla.com>
parents:
369818
diff
changeset
|
586 |
|
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
587 |
// |aTransactionId| will be > 0 if the compositor is acknowledging a shadow |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
588 |
// layers transaction. |
414973
1224b46e13922d7fd3cec29a441560439d0166cb
Bug 1455691 - Make the transaction id a struct instead of a uint64_t. r=mattwoodrow
Kartikaya Gupta <kgupta@mozilla.com>
parents:
412606
diff
changeset
|
589 |
if (aTransactionId.IsValid()) { |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
590 |
nsIWidgetListener* listener = mWidget->GetWidgetListener(); |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
591 |
if (listener) { |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
592 |
listener->DidCompositeWindow(aTransactionId, aCompositeStart, |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
593 |
aCompositeEnd); |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
594 |
} |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
595 |
listener = mWidget->GetAttachedWidgetListener(); |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
596 |
if (listener) { |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
597 |
listener->DidCompositeWindow(aTransactionId, aCompositeStart, |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
598 |
aCompositeEnd); |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
599 |
} |
387089
e6f88e18e1bcedb34d71fc74c25d8a7a6f2c60fb
Bug 1409595 - Add pointer check in WebRenderLayerManager::DidComposite() r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385834
diff
changeset
|
600 |
if (mTransactionIdAllocator) { |
e6f88e18e1bcedb34d71fc74c25d8a7a6f2c60fb
Bug 1409595 - Add pointer check in WebRenderLayerManager::DidComposite() r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385834
diff
changeset
|
601 |
mTransactionIdAllocator->NotifyTransactionCompleted(aTransactionId); |
e6f88e18e1bcedb34d71fc74c25d8a7a6f2c60fb
Bug 1409595 - Add pointer check in WebRenderLayerManager::DidComposite() r=kats
sotaro <sotaro.ikeda.g@gmail.com>
parents:
385834
diff
changeset
|
602 |
} |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
603 |
} |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
604 |
|
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
605 |
// These observers fire whether or not we were in a transaction. |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
606 |
for (size_t i = 0; i < mDidCompositeObservers.Length(); i++) { |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
607 |
mDidCompositeObservers[i]->DidComposite(); |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
608 |
} |
341905
e98fd107f5a0f578a0d11c761a1531206391e1b9
Bug 1320628 - Fix background tab crash when e10s is enabled r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341901
diff
changeset
|
609 |
} |
e98fd107f5a0f578a0d11c761a1531206391e1b9
Bug 1320628 - Fix background tab crash when e10s is enabled r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341901
diff
changeset
|
610 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
611 |
void WebRenderLayerManager::ClearCachedResources(Layer* aSubtree) { |
470478
f987a04773cf19f1f8acf0d87c36dc45e44f586c
Bug 1545980 - Add IPCOpen() check to WebRenderLayerManager::ClearCachedResources() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
467648
diff
changeset
|
612 |
if (!WrBridge()->IPCOpen()) { |
f987a04773cf19f1f8acf0d87c36dc45e44f586c
Bug 1545980 - Add IPCOpen() check to WebRenderLayerManager::ClearCachedResources() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
467648
diff
changeset
|
613 |
gfxCriticalNote << "IPC Channel is already torn down unexpectedly\n"; |
f987a04773cf19f1f8acf0d87c36dc45e44f586c
Bug 1545980 - Add IPCOpen() check to WebRenderLayerManager::ClearCachedResources() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
467648
diff
changeset
|
614 |
return; |
f987a04773cf19f1f8acf0d87c36dc45e44f586c
Bug 1545980 - Add IPCOpen() check to WebRenderLayerManager::ClearCachedResources() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
467648
diff
changeset
|
615 |
} |
369575
7b05ec8e1222d09bbf59d0ddfaa016fed1899a48
Bug 1378697 - Release resources in WebRenderXXXLayer::ClearCachedResources() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
369574
diff
changeset
|
616 |
WrBridge()->BeginClearCachedResources(); |
574488
6df772b29a9dcdf5444bf736e737c885f74d9cad
Bug 1703244 - Flush pending async resource updates when clearing layer manager cache. r=jrmuizel
Andrew Osmond <aosmond@mozilla.com>
parents:
573310
diff
changeset
|
617 |
// We flush any pending async resource updates before we clear the display |
6df772b29a9dcdf5444bf736e737c885f74d9cad
Bug 1703244 - Flush pending async resource updates when clearing layer manager cache. r=jrmuizel
Andrew Osmond <aosmond@mozilla.com>
parents:
573310
diff
changeset
|
618 |
// list items because some resources (e.g. images) might be shared between |
6df772b29a9dcdf5444bf736e737c885f74d9cad
Bug 1703244 - Flush pending async resource updates when clearing layer manager cache. r=jrmuizel
Andrew Osmond <aosmond@mozilla.com>
parents:
573310
diff
changeset
|
619 |
// multiple layer managers, not get freed here, and we want to keep their |
6df772b29a9dcdf5444bf736e737c885f74d9cad
Bug 1703244 - Flush pending async resource updates when clearing layer manager cache. r=jrmuizel
Andrew Osmond <aosmond@mozilla.com>
parents:
573310
diff
changeset
|
620 |
// states consistent. |
6df772b29a9dcdf5444bf736e737c885f74d9cad
Bug 1703244 - Flush pending async resource updates when clearing layer manager cache. r=jrmuizel
Andrew Osmond <aosmond@mozilla.com>
parents:
573310
diff
changeset
|
621 |
mStateManager.FlushAsyncResourceUpdates(); |
399287
3ae6cbde5225f24eb512aff7acba6be65efd29ec
Bug 1429694 - Fix WebRenderLayerManager::ClearCachedResources r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
399062
diff
changeset
|
622 |
mWebRenderCommandBuilder.ClearCachedResources(); |
369818
2240f6e8de33bb22e9031a921d9e76162b565a74
Bug 1382091 - Delete ImageKeys with ClearCachedResources r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
369719
diff
changeset
|
623 |
DiscardImages(); |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
624 |
mStateManager.ClearCachedResources(); |
369575
7b05ec8e1222d09bbf59d0ddfaa016fed1899a48
Bug 1378697 - Release resources in WebRenderXXXLayer::ClearCachedResources() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
369574
diff
changeset
|
625 |
WrBridge()->EndClearCachedResources(); |
341905
e98fd107f5a0f578a0d11c761a1531206391e1b9
Bug 1320628 - Fix background tab crash when e10s is enabled r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341901
diff
changeset
|
626 |
} |
e98fd107f5a0f578a0d11c761a1531206391e1b9
Bug 1320628 - Fix background tab crash when e10s is enabled r=nical?
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341901
diff
changeset
|
627 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
628 |
void WebRenderLayerManager::WrUpdated() { |
447522
944b5385a34248376ae0d92beabf4bcb8a045567
Bug 1504699 - Part 2. Add plumbing to WebRenderLayerManager to pass on frame released messages. r=nical
Andrew Osmond <aosmond@mozilla.com>
parents:
447335
diff
changeset
|
629 |
ClearAsyncAnimations(); |
571291
5c9e27c5a0e37e17017fe35f4b8529e9746a360d
Bug 1691556 - Drop stale async resource updates after a namespace change. r=jrmuizel
Andrew Osmond <aosmond@mozilla.com>
parents:
569076
diff
changeset
|
630 |
mStateManager.mAsyncResourceUpdates.reset(); |
387094
a88fa8d0eaa0b8c908f8ab0d2923da526b787e9f
Bug 1404232 - Add WebRenderCommandBuilder::ClearCachedResources() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
387093
diff
changeset
|
631 |
mWebRenderCommandBuilder.ClearCachedResources(); |
a88fa8d0eaa0b8c908f8ab0d2923da526b787e9f
Bug 1404232 - Add WebRenderCommandBuilder::ClearCachedResources() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
387093
diff
changeset
|
632 |
DiscardLocalImages(); |
526665
29ed956cc6c3a91db481750de108a8446d604286
Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Miko Mynttinen <mikokm@gmail.com>
parents:
524239
diff
changeset
|
633 |
mDisplayItemCache.Clear(); |
438931
94a87c720eee25ae57b47fba0b564de70c7b1741
Bug 1491798- Schedule repaint if WebRender is updated by tab move r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
438273
diff
changeset
|
634 |
|
94a87c720eee25ae57b47fba0b564de70c7b1741
Bug 1491798- Schedule repaint if WebRender is updated by tab move r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
438273
diff
changeset
|
635 |
if (mWidget) { |
470938
9813ce146bc725dd83e8ff6f41bfc36dd17d935b
Bug 1534395 - Rename TabChild to BrowserChild. r=nika
Ryan Hunt <rhunt@eqrion.net>
parents:
470478
diff
changeset
|
636 |
if (dom::BrowserChild* browserChild = mWidget->GetOwningBrowserChild()) { |
9813ce146bc725dd83e8ff6f41bfc36dd17d935b
Bug 1534395 - Rename TabChild to BrowserChild. r=nika
Ryan Hunt <rhunt@eqrion.net>
parents:
470478
diff
changeset
|
637 |
browserChild->SchedulePaint(); |
438931
94a87c720eee25ae57b47fba0b564de70c7b1741
Bug 1491798- Schedule repaint if WebRender is updated by tab move r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
438273
diff
changeset
|
638 |
} |
94a87c720eee25ae57b47fba0b564de70c7b1741
Bug 1491798- Schedule repaint if WebRender is updated by tab move r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
438273
diff
changeset
|
639 |
} |
387093
fef60dc3adecc4378456e6e73bb60eca28de9921
Bug 1404232 - Add WebRenderLayerManager::WrUpdated() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
387089
diff
changeset
|
640 |
} |
fef60dc3adecc4378456e6e73bb60eca28de9921
Bug 1404232 - Add WebRenderLayerManager::WrUpdated() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
387089
diff
changeset
|
641 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
642 |
void WebRenderLayerManager::UpdateTextureFactoryIdentifier( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
643 |
const TextureFactoryIdentifier& aNewIdentifier) { |
342122
8f272d554787e096ae515ba635c3705a6b9b6bcf
Bug 1331515 - More WR to Wr prefix conversion. r=gfx?
Nicolas Silva <nsilva@mozilla.com>
parents:
342121
diff
changeset
|
644 |
WrBridge()->IdentifyTextureHost(aNewIdentifier); |
341911
dc2b7e346fc28a9658ba01008710ff97cffe0e4b
Bug 1321183 - Deliver TextureFactoryIdentifier r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341905
diff
changeset
|
645 |
} |
dc2b7e346fc28a9658ba01008710ff97cffe0e4b
Bug 1321183 - Deliver TextureFactoryIdentifier r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341905
diff
changeset
|
646 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
647 |
TextureFactoryIdentifier WebRenderLayerManager::GetTextureFactoryIdentifier() { |
342122
8f272d554787e096ae515ba635c3705a6b9b6bcf
Bug 1331515 - More WR to Wr prefix conversion. r=gfx?
Nicolas Silva <nsilva@mozilla.com>
parents:
342121
diff
changeset
|
648 |
return WrBridge()->GetTextureFactoryIdentifier(); |
341911
dc2b7e346fc28a9658ba01008710ff97cffe0e4b
Bug 1321183 - Deliver TextureFactoryIdentifier r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341905
diff
changeset
|
649 |
} |
dc2b7e346fc28a9658ba01008710ff97cffe0e4b
Bug 1321183 - Deliver TextureFactoryIdentifier r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341905
diff
changeset
|
650 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
651 |
void WebRenderLayerManager::SetTransactionIdAllocator( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
652 |
TransactionIdAllocator* aAllocator) { |
403220
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
653 |
// When changing the refresh driver, the previous refresh driver may never |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
654 |
// receive updates of pending transactions it's waiting for. So clear the |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
655 |
// waiting state before assigning another refresh driver. |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
656 |
if (mTransactionIdAllocator && (aAllocator != mTransactionIdAllocator)) { |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
657 |
mTransactionIdAllocator->ClearPendingTransactions(); |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
658 |
|
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
659 |
// We should also reset the transaction id of the new allocator to previous |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
660 |
// allocator's last transaction id, so that completed transactions for |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
661 |
// previous allocator will be ignored and won't confuse the new allocator. |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
662 |
if (aAllocator) { |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
663 |
aAllocator->ResetInitialTransactionId( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
664 |
mTransactionIdAllocator->LastTransactionId()); |
403220
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
665 |
} |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
666 |
} |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
667 |
|
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
668 |
mTransactionIdAllocator = aAllocator; |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
669 |
} |
c0a2f744ef5c3cbddcf915f7532860a3c466214f
Bug 1434996 - Update WebRenderLayerManager::SetTransactionIdAllocator to match ClientLayerManager. r=sotaro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
402873
diff
changeset
|
670 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
671 |
TransactionId WebRenderLayerManager::GetLastTransactionId() { |
418062
37746bbf1d1381346081e9606eca82ee4d83408d
Bug 1437036 - Implement GetLastTransactionId in WebRenderLayerManager. r=hiro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
417939
diff
changeset
|
672 |
return mLatestTransactionId; |
37746bbf1d1381346081e9606eca82ee4d83408d
Bug 1437036 - Implement GetLastTransactionId in WebRenderLayerManager. r=hiro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
417939
diff
changeset
|
673 |
} |
37746bbf1d1381346081e9606eca82ee4d83408d
Bug 1437036 - Implement GetLastTransactionId in WebRenderLayerManager. r=hiro
Kartikaya Gupta <kgupta@mozilla.com>
parents:
417939
diff
changeset
|
674 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
675 |
void WebRenderLayerManager::AddDidCompositeObserver( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
676 |
DidCompositeObserver* aObserver) { |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
677 |
if (!mDidCompositeObservers.Contains(aObserver)) { |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
678 |
mDidCompositeObservers.AppendElement(aObserver); |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
679 |
} |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
680 |
} |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
681 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
682 |
void WebRenderLayerManager::RemoveDidCompositeObserver( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
683 |
DidCompositeObserver* aObserver) { |
341914
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
684 |
mDidCompositeObservers.RemoveElement(aObserver); |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
685 |
} |
7c6afff0c35db7e480743d77da938e530bf4b4a5
Bug 1320864 - Add DidComposite handling r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
341911
diff
changeset
|
686 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
687 |
void WebRenderLayerManager::FlushRendering() { |
361979
63cd7aaf05d865a5ffc030a3c336b4cec40f45f2
Bug 1363958 - Fix WebRenderLayerManager::FlushRendering() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
361246
diff
changeset
|
688 |
CompositorBridgeChild* cBridge = GetCompositorBridgeChild(); |
63cd7aaf05d865a5ffc030a3c336b4cec40f45f2
Bug 1363958 - Fix WebRenderLayerManager::FlushRendering() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
361246
diff
changeset
|
689 |
if (!cBridge) { |
63cd7aaf05d865a5ffc030a3c336b4cec40f45f2
Bug 1363958 - Fix WebRenderLayerManager::FlushRendering() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
361246
diff
changeset
|
690 |
return; |
63cd7aaf05d865a5ffc030a3c336b4cec40f45f2
Bug 1363958 - Fix WebRenderLayerManager::FlushRendering() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
361246
diff
changeset
|
691 |
} |
63cd7aaf05d865a5ffc030a3c336b4cec40f45f2
Bug 1363958 - Fix WebRenderLayerManager::FlushRendering() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
361246
diff
changeset
|
692 |
MOZ_ASSERT(mWidget); |
63cd7aaf05d865a5ffc030a3c336b4cec40f45f2
Bug 1363958 - Fix WebRenderLayerManager::FlushRendering() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
361246
diff
changeset
|
693 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
694 |
// If value of IsResizingNativeWidget() is nothing, we assume that resizing |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
695 |
// might happen. |
436341
ca89cc5c6a17a86ac36c59260b5870f6bd62b4f3
Bug 1486958 - Sync FlushRendering() only during resizing on windows r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
435325
diff
changeset
|
696 |
bool resizing = mWidget && mWidget->IsResizingNativeWidget().valueOr(true); |
ca89cc5c6a17a86ac36c59260b5870f6bd62b4f3
Bug 1486958 - Sync FlushRendering() only during resizing on windows r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
435325
diff
changeset
|
697 |
|
ca89cc5c6a17a86ac36c59260b5870f6bd62b4f3
Bug 1486958 - Sync FlushRendering() only during resizing on windows r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
435325
diff
changeset
|
698 |
// Limit async FlushRendering to !resizing and Win DComp. |
ca89cc5c6a17a86ac36c59260b5870f6bd62b4f3
Bug 1486958 - Sync FlushRendering() only during resizing on windows r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
435325
diff
changeset
|
699 |
// XXX relax the limitation |
ca89cc5c6a17a86ac36c59260b5870f6bd62b4f3
Bug 1486958 - Sync FlushRendering() only during resizing on windows r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
435325
diff
changeset
|
700 |
if (WrBridge()->GetCompositorUseDComp() && !resizing) { |
427570
94fe6b1becfa17fbc1e58667512f278b3c1fb2a1
Bug 1476876 - Make FlushRendering async if DComp is used on Windows with WebRender r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
427371
diff
changeset
|
701 |
cBridge->SendFlushRenderingAsync(); |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
702 |
} else if (mWidget->SynchronouslyRepaintOnResize() || |
480648
2d7b154165c0d4513a979cca61e55f115a361b1f
Bug 1561825 - Make layers.* static prefs follow the naming convention. r=KrisWright
Nicholas Nethercote <nnethercote@mozilla.com>
parents:
477808
diff
changeset
|
703 |
StaticPrefs::layers_force_synchronous_resize()) { |
361979
63cd7aaf05d865a5ffc030a3c336b4cec40f45f2
Bug 1363958 - Fix WebRenderLayerManager::FlushRendering() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
361246
diff
changeset
|
704 |
cBridge->SendFlushRendering(); |
63cd7aaf05d865a5ffc030a3c336b4cec40f45f2
Bug 1363958 - Fix WebRenderLayerManager::FlushRendering() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
361246
diff
changeset
|
705 |
} else { |
63cd7aaf05d865a5ffc030a3c336b4cec40f45f2
Bug 1363958 - Fix WebRenderLayerManager::FlushRendering() r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
361246
diff
changeset
|
706 |
cBridge->SendFlushRenderingAsync(); |
352760
c2d11e5e96d664e9c88384fe3c3dfbb600f225e8
Bug 1354474 - Add FlushRendering() and Composite() support to WebRenderLayerManager r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
350351
diff
changeset
|
707 |
} |
c2d11e5e96d664e9c88384fe3c3dfbb600f225e8
Bug 1354474 - Add FlushRendering() and Composite() support to WebRenderLayerManager r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
350351
diff
changeset
|
708 |
} |
c2d11e5e96d664e9c88384fe3c3dfbb600f225e8
Bug 1354474 - Add FlushRendering() and Composite() support to WebRenderLayerManager r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
350351
diff
changeset
|
709 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
710 |
void WebRenderLayerManager::WaitOnTransactionProcessed() { |
359325
33adaa3e80315b3883250b30b9a71a656ab36bc2
Bug 1364626. Ensure our transaction arrives at the compositor before asking the parent to paint. r=dvander
Jeff Muizelaar <jmuizelaar@mozilla.com>
parents:
359324
diff
changeset
|
711 |
CompositorBridgeChild* bridge = GetCompositorBridgeChild(); |
33adaa3e80315b3883250b30b9a71a656ab36bc2
Bug 1364626. Ensure our transaction arrives at the compositor before asking the parent to paint. r=dvander
Jeff Muizelaar <jmuizelaar@mozilla.com>
parents:
359324
diff
changeset
|
712 |
if (bridge) { |
33adaa3e80315b3883250b30b9a71a656ab36bc2
Bug 1364626. Ensure our transaction arrives at the compositor before asking the parent to paint. r=dvander
Jeff Muizelaar <jmuizelaar@mozilla.com>
parents:
359324
diff
changeset
|
713 |
bridge->SendWaitOnTransactionProcessed(); |
33adaa3e80315b3883250b30b9a71a656ab36bc2
Bug 1364626. Ensure our transaction arrives at the compositor before asking the parent to paint. r=dvander
Jeff Muizelaar <jmuizelaar@mozilla.com>
parents:
359324
diff
changeset
|
714 |
} |
33adaa3e80315b3883250b30b9a71a656ab36bc2
Bug 1364626. Ensure our transaction arrives at the compositor before asking the parent to paint. r=dvander
Jeff Muizelaar <jmuizelaar@mozilla.com>
parents:
359324
diff
changeset
|
715 |
} |
33adaa3e80315b3883250b30b9a71a656ab36bc2
Bug 1364626. Ensure our transaction arrives at the compositor before asking the parent to paint. r=dvander
Jeff Muizelaar <jmuizelaar@mozilla.com>
parents:
359324
diff
changeset
|
716 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
717 |
void WebRenderLayerManager::SendInvalidRegion(const nsIntRegion& aRegion) { |
352760
c2d11e5e96d664e9c88384fe3c3dfbb600f225e8
Bug 1354474 - Add FlushRendering() and Composite() support to WebRenderLayerManager r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
350351
diff
changeset
|
718 |
// XXX Webrender does not support invalid region yet. |
534081
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
719 |
|
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
720 |
#ifdef XP_WIN |
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
721 |
// When DWM is disabled, each window does not have own back buffer. They would |
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
722 |
// paint directly to a buffer that was to be displayed by the video card. |
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
723 |
// WM_PAINT via SendInvalidRegion() requests necessary re-paint. |
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
724 |
const bool needsInvalidate = !gfx::gfxVars::DwmCompositionEnabled(); |
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
725 |
#else |
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
726 |
const bool needsInvalidate = true; |
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
727 |
#endif |
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
728 |
if (needsInvalidate && WrBridge()) { |
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
729 |
WrBridge()->SendInvalidateRenderedFrame(); |
bc49c7475f64fdbb09132ab4c085bdccc76f7959
Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
sotaro <sotaro.ikeda.g@gmail.com>
parents:
530257
diff
changeset
|
730 |
} |
352760
c2d11e5e96d664e9c88384fe3c3dfbb600f225e8
Bug 1354474 - Add FlushRendering() and Composite() support to WebRenderLayerManager r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
350351
diff
changeset
|
731 |
} |
c2d11e5e96d664e9c88384fe3c3dfbb600f225e8
Bug 1354474 - Add FlushRendering() and Composite() support to WebRenderLayerManager r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
350351
diff
changeset
|
732 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
733 |
void WebRenderLayerManager::ScheduleComposite() { |
402733
c7a373f1fd6954ccca201e99fcb44376dec90b7a
Bug 1435248 - Fix function naming. r=nical
Kartikaya Gupta <kgupta@mozilla.com>
parents:
400335
diff
changeset
|
734 |
WrBridge()->SendScheduleComposite(); |
352760
c2d11e5e96d664e9c88384fe3c3dfbb600f225e8
Bug 1354474 - Add FlushRendering() and Composite() support to WebRenderLayerManager r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
350351
diff
changeset
|
735 |
} |
c2d11e5e96d664e9c88384fe3c3dfbb600f225e8
Bug 1354474 - Add FlushRendering() and Composite() support to WebRenderLayerManager r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
350351
diff
changeset
|
736 |
|
392157
4a74a02c20ba4649bfdb5bdd49f5907c6f22b2d5
Bug 1411472 - Add support of PersistentBufferProviderShared r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
391829
diff
changeset
|
737 |
already_AddRefed<PersistentBufferProvider> |
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
738 |
WebRenderLayerManager::CreatePersistentBufferProvider( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
739 |
const gfx::IntSize& aSize, gfx::SurfaceFormat aFormat) { |
568767
6e3c2a39bf3272bd0be8c1365eb39e2be6f87ef1
Bug 1692894 p1: Don't create devices for canvas when remote canvas is in use. r=jrmuizel
Bob Owen <bobowencode@gmail.com>
parents:
568646
diff
changeset
|
740 |
// Ensure devices initialization for canvas 2d if not remote. The devices are |
6e3c2a39bf3272bd0be8c1365eb39e2be6f87ef1
Bug 1692894 p1: Don't create devices for canvas when remote canvas is in use. r=jrmuizel
Bob Owen <bobowencode@gmail.com>
parents:
568646
diff
changeset
|
741 |
// lazily initialized with WebRender to reduce memory usage. |
6e3c2a39bf3272bd0be8c1365eb39e2be6f87ef1
Bug 1692894 p1: Don't create devices for canvas when remote canvas is in use. r=jrmuizel
Bob Owen <bobowencode@gmail.com>
parents:
568646
diff
changeset
|
742 |
if (!gfxPlatform::UseRemoteCanvas()) { |
6e3c2a39bf3272bd0be8c1365eb39e2be6f87ef1
Bug 1692894 p1: Don't create devices for canvas when remote canvas is in use. r=jrmuizel
Bob Owen <bobowencode@gmail.com>
parents:
568646
diff
changeset
|
743 |
gfxPlatform::GetPlatform()->EnsureDevicesInitialized(); |
6e3c2a39bf3272bd0be8c1365eb39e2be6f87ef1
Bug 1692894 p1: Don't create devices for canvas when remote canvas is in use. r=jrmuizel
Bob Owen <bobowencode@gmail.com>
parents:
568646
diff
changeset
|
744 |
} |
451078
9a5ef8fd69c9b0c2210c9ef491217ddb45d3a76d
Bug 1513308 - Lazily initialize DirectX devices for WebRender r=mattwoodrow
sotaro <sotaro.ikeda.g@gmail.com>
parents:
449634
diff
changeset
|
745 |
|
477802
258c6c1996568b3e7d3ca442a2d87df3f60a4b32
Bug 1464032 Part 6: Add remote canvas pref and refactor TextuteData creation to use it. r=mattwoodrow
Bob Owen <bobowencode@gmail.com>
parents:
476237
diff
changeset
|
746 |
RefPtr<PersistentBufferProvider> provider = |
258c6c1996568b3e7d3ca442a2d87df3f60a4b32
Bug 1464032 Part 6: Add remote canvas pref and refactor TextuteData creation to use it. r=mattwoodrow
Bob Owen <bobowencode@gmail.com>
parents:
476237
diff
changeset
|
747 |
PersistentBufferProviderShared::Create(aSize, aFormat, |
258c6c1996568b3e7d3ca442a2d87df3f60a4b32
Bug 1464032 Part 6: Add remote canvas pref and refactor TextuteData creation to use it. r=mattwoodrow
Bob Owen <bobowencode@gmail.com>
parents:
476237
diff
changeset
|
748 |
AsKnowsCompositor()); |
258c6c1996568b3e7d3ca442a2d87df3f60a4b32
Bug 1464032 Part 6: Add remote canvas pref and refactor TextuteData creation to use it. r=mattwoodrow
Bob Owen <bobowencode@gmail.com>
parents:
476237
diff
changeset
|
749 |
if (provider) { |
258c6c1996568b3e7d3ca442a2d87df3f60a4b32
Bug 1464032 Part 6: Add remote canvas pref and refactor TextuteData creation to use it. r=mattwoodrow
Bob Owen <bobowencode@gmail.com>
parents:
476237
diff
changeset
|
750 |
return provider.forget(); |
392157
4a74a02c20ba4649bfdb5bdd49f5907c6f22b2d5
Bug 1411472 - Add support of PersistentBufferProviderShared r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
391829
diff
changeset
|
751 |
} |
477802
258c6c1996568b3e7d3ca442a2d87df3f60a4b32
Bug 1464032 Part 6: Add remote canvas pref and refactor TextuteData creation to use it. r=mattwoodrow
Bob Owen <bobowencode@gmail.com>
parents:
476237
diff
changeset
|
752 |
|
591057
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
753 |
return WindowRenderer::CreatePersistentBufferProvider(aSize, aFormat); |
392157
4a74a02c20ba4649bfdb5bdd49f5907c6f22b2d5
Bug 1411472 - Add support of PersistentBufferProviderShared r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
391829
diff
changeset
|
754 |
} |
4a74a02c20ba4649bfdb5bdd49f5907c6f22b2d5
Bug 1411472 - Add support of PersistentBufferProviderShared r=nical
sotaro <sotaro.ikeda.g@gmail.com>
parents:
391829
diff
changeset
|
755 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
756 |
void WebRenderLayerManager::ClearAsyncAnimations() { |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
757 |
mStateManager.ClearAsyncAnimations(); |
447522
944b5385a34248376ae0d92beabf4bcb8a045567
Bug 1504699 - Part 2. Add plumbing to WebRenderLayerManager to pass on frame released messages. r=nical
Andrew Osmond <aosmond@mozilla.com>
parents:
447335
diff
changeset
|
758 |
} |
944b5385a34248376ae0d92beabf4bcb8a045567
Bug 1504699 - Part 2. Add plumbing to WebRenderLayerManager to pass on frame released messages. r=nical
Andrew Osmond <aosmond@mozilla.com>
parents:
447335
diff
changeset
|
759 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
760 |
void WebRenderLayerManager::WrReleasedImages( |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
761 |
const nsTArray<wr::ExternalImageKeyPair>& aPairs) { |
529208
11abfe8fb1d97edf54cc580c9e65b4afab1e3685
Bug 1622360 - Downgrade mStateManagers. r=jrmuizel
Kartikaya Gupta <kgupta@mozilla.com>
parents:
529207
diff
changeset
|
762 |
mStateManager.WrReleasedImages(aPairs); |
447522
944b5385a34248376ae0d92beabf4bcb8a045567
Bug 1504699 - Part 2. Add plumbing to WebRenderLayerManager to pass on frame released messages. r=nical
Andrew Osmond <aosmond@mozilla.com>
parents:
447335
diff
changeset
|
763 |
} |
944b5385a34248376ae0d92beabf4bcb8a045567
Bug 1504699 - Part 2. Add plumbing to WebRenderLayerManager to pass on frame released messages. r=nical
Andrew Osmond <aosmond@mozilla.com>
parents:
447335
diff
changeset
|
764 |
|
543509
aaa270392a4a33ae411f7b4f462b7f615b52ac16
Bug 1251612 - Support the GetFrameUniformity API in content processes. r=botond,froydnj
Kartikaya Gupta <kgupta@mozilla.com>
parents:
543150
diff
changeset
|
765 |
void WebRenderLayerManager::GetFrameUniformity(FrameUniformityData* aOutData) { |
aaa270392a4a33ae411f7b4f462b7f615b52ac16
Bug 1251612 - Support the GetFrameUniformity API in content processes. r=botond,froydnj
Kartikaya Gupta <kgupta@mozilla.com>
parents:
543150
diff
changeset
|
766 |
WrBridge()->SendGetFrameUniformity(aOutData); |
aaa270392a4a33ae411f7b4f462b7f615b52ac16
Bug 1251612 - Support the GetFrameUniformity API in content processes. r=botond,froydnj
Kartikaya Gupta <kgupta@mozilla.com>
parents:
543150
diff
changeset
|
767 |
} |
aaa270392a4a33ae411f7b4f462b7f615b52ac16
Bug 1251612 - Support the GetFrameUniformity API in content processes. r=botond,froydnj
Kartikaya Gupta <kgupta@mozilla.com>
parents:
543150
diff
changeset
|
768 |
|
591057
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
769 |
/*static*/ |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
770 |
void WebRenderLayerManager::LayerUserDataDestroy(void* data) { |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
771 |
delete static_cast<LayerUserData*>(data); |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
772 |
} |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
773 |
|
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
774 |
UniquePtr<LayerUserData> WebRenderLayerManager::RemoveUserData(void* aKey) { |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
775 |
UniquePtr<LayerUserData> d(static_cast<LayerUserData*>( |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
776 |
mUserData.Remove(static_cast<gfx::UserDataKey*>(aKey)))); |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
777 |
return d; |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
778 |
} |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
779 |
|
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
780 |
std::unordered_set<ScrollableLayerGuid::ViewID> |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
781 |
WebRenderLayerManager::ClearPendingScrollInfoUpdate() { |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
782 |
std::unordered_set<ScrollableLayerGuid::ViewID> scrollIds( |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
783 |
mPendingScrollUpdates.Keys().cbegin(), |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
784 |
mPendingScrollUpdates.Keys().cend()); |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
785 |
mPendingScrollUpdates.Clear(); |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
786 |
return scrollIds; |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
787 |
} |
1b49e7328ae43c6565d167f4c391430575097fd3
Bug 1727682 - Make WebRenderLayerManager not inherit LayerManager. r=jrmuizel
Matt Woodrow <mwoodrow@mozilla.com>
parents:
591044
diff
changeset
|
788 |
|
448947
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
789 |
} // namespace layers |
6f3709b3878117466168c40affa7bca0b60cf75b
Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
Sylvestre Ledru <sledru@mozilla.com>
parents:
447896
diff
changeset
|
790 |
} // namespace mozilla |