Commit Graph

304 Commits

Author SHA1 Message Date
Markus Stange
106a936cc5 Bug 1570869 - Replace mRenderingCount with a boolean, to make it clear that we are only ever rendering at most one frame. r=nical
The only place that increments mRenderingCount, HandleFrameOneDoc, also synchronously calls FrameRenderingComplete
at the end of the function, which decrements mRenderingCount again. So it can never grow beyond 1.

Depends on D40372

Differential Revision: https://phabricator.services.mozilla.com/D40373
2019-08-05 12:02:38 +00:00
Markus Stange
e2434f79cd Bug 1570869 - Remove mPendingCount in favor of an accessor. r=nical
Depends on D40371

Differential Revision: https://phabricator.services.mozilla.com/D40372
2019-08-05 11:59:35 +00:00
Markus Stange
27bc9d68d8 Bug 1570869 - Inline IncRenderingFrameCount into HandleFrame. r=sotaro
IncRenderingFrame only had one caller. Inlining it into HandleFrame makes it clearer
how the values in mWindowInfos are mutated and in what order calls happen.
This also renames HandleFrame to HandleFrameOneDoc, because we're expecting one call
per document before we actually trigger the render.

Depends on D40370

Differential Revision: https://phabricator.services.mozilla.com/D40371
2019-08-06 07:01:15 +00:00
Markus Stange
5b72331327 Bug 1570869 - Combine pending frame info in RenderThread's WindowInfo. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D40370
2019-08-05 11:54:31 +00:00
Barret Rennie
f20289cf75 Bug 1566915 - Do not ref count the CompositionRecorder r=mstange
Now that there is only ever a single handle to the `CompositionRecorder`, it no
longer needs to be ref-counted. And since the `WebRenderCompositionRecorder` is
owned exclusively by the `RenderThread`, it no longer needs a mutex. All the
code that resulted from having handles to the `WebRenderCompositionRecorder` on
two different threads is now no longer necessary.

Differential Revision: https://phabricator.services.mozilla.com/D39791
2019-07-31 18:28:47 +00:00
Barret Rennie
705960ee41 Bug 1566915 - Write collected frames from the composition recorder on the render thread r=kvark
On macOS, if we try to write the collected frames from the
`CompositorBridgeParent` we will not have an active GL context, resulting in a
crash. Writing the frames from the `RenderThread` solves this problem.

Differential Revision: https://phabricator.services.mozilla.com/D39789
2019-07-31 18:28:34 +00:00
sotaro
dcb0d482c5 Bug 1567816 - Remove WebRenderTextureHostWrapper r=nical
Differential Revision: https://phabricator.services.mozilla.com/D38837
2019-07-22 08:03:59 +00:00
Jeff Gilbert
019f1b3c01 No bug - clang-format dom/canvas, gfx/[gl,layers,webrender_bindings]. 2019-07-11 15:36:44 -07:00
Nicolas Silva
918f71e7c2 Bug 1557208 - Deallocate thread pool handles during RenderThread sync shutdown. r=sotaro 2019-07-01 17:24:32 +02:00
Barret Rennie
2b03db342d Bug 1289211 - Rename InfallibleTArray to nsTArray in gfx/webrender_bindings/ r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D36957
2019-07-10 03:30:18 +00:00
Jamie Nicol
b9bea93ee7 Bug 1535146 - Use a whitelist to decide which shaders to load from disk on startup. r=bholley
Webrender caches the program binaries of shaders used within the first
ten frames, so that on next startup it can load them from disk rather
than having to recompile them.

Previously it would load all binaries found in the disk cache on
startup, and when saving to the cache it would delete any existing
binaries that weren't used.

This changes it so that unused binaries are not deleted. The disk
space this requires is insignificant, but as the cache grows loading
all the shaders on startup can get expensive. To solve that we write a
whitelist of the shaders used during startup, and only load those
during the next startup.

Differential Revision: https://phabricator.services.mozilla.com/D33954
2019-07-09 10:20:04 +00:00
Kartikaya Gupta
123f7b8e3d Bug 1525314 - Skip assertion intermittently failing on Android. r=aosmond
Depends on D36796

Differential Revision: https://phabricator.services.mozilla.com/D36797
2019-07-04 21:35:02 +00:00
Coroiu Cristina
21635a841e Backed out 6 changesets (bug 1525314) for reftest failures at reftests/svg/filters/css-filters/saturate-zero.html om a CLOSED TREE
Backed out changeset 0ed2509b7191 (bug 1525314)
Backed out changeset af72d1c4c107 (bug 1525314)
Backed out changeset ab21a3ff4ae4 (bug 1525314)
Backed out changeset 02399933ac4b (bug 1525314)
Backed out changeset 95790a07a93c (bug 1525314)
Backed out changeset 28f52fd3934e (bug 1525314)
2019-07-05 00:29:12 +03:00
Kartikaya Gupta
b9114f8a27 Bug 1525314 - Skip assertion intermittently failing on Android. r=aosmond
Depends on D36796

Differential Revision: https://phabricator.services.mozilla.com/D36797
2019-07-04 18:39:08 +00:00
sotaro
5bd32fa610 Bug 1533296 - Make WebRender error as to Fallback to Compositor rendering during disabling WebRender on android r=nical
On android, android's nsWindow creates LayerManaer only in nsWindow::Create(). When WebRender error happened, gecko just stopped rendering by disabling Webrender.
The nsWindow needs to re-create LayerManager during disabling Webrender. Further, during disabling WebRender, All GeckoSurfaceTextures should not be attached to GLContext. It is for preventing a conflict with AttachToGLContext() call in SurfaceTextureHost::EnsureAttached().

Differential Revision: https://phabricator.services.mozilla.com/D26687
2019-06-19 16:14:56 +00:00
Barret Rennie
3e472f1004 Bug 1551735 - Clearly document the case of the RendererOGL receiving a new WebRenderCompositionRecorder while it has one r=kats
Differential Revision: https://phabricator.services.mozilla.com/D32356
2019-05-31 00:31:52 +00:00
Barret Rennie
9f007cc907 Bug 1551735 - Record compositions in Web Render r=kats
Now that we have a suitable composition recorder infrastructure, it is just a
matter of plumbing the `WebRenderCompositionRecorder` from the
`CompositorBridgeParent` to the `RenderThread` to start recording frames.

Differential Revision: https://phabricator.services.mozilla.com/D32234
2019-05-31 00:31:39 +00:00
Coroiu Cristina
30de317061 Backed out 7 changesets (bug 1551735) for build bustage at src/gfx/layers/wr/WebRenderCompositionRecorder.h on a CLOSED TREE
Backed out changeset 98e75ac2cf4f (bug 1551735)
Backed out changeset 152e3a6e5c10 (bug 1551735)
Backed out changeset 9deb5350e244 (bug 1551735)
Backed out changeset 6154bdfe6fad (bug 1551735)
Backed out changeset 4a0936bda490 (bug 1551735)
Backed out changeset a7868d694fe1 (bug 1551735)
Backed out changeset 06c8e5f7768d (bug 1551735)
2019-05-31 00:05:00 +03:00
Barret Rennie
f057813a41 Bug 1551735 - Clearly document the case of the RendererOGL receiving a new WebRenderCompositionRecorder while it has one r=kats
Differential Revision: https://phabricator.services.mozilla.com/D32356
2019-05-30 20:19:56 +00:00
Barret Rennie
5725e2d53f Bug 1551735 - Record compositions in Web Render r=kats
Now that we have a suitable composition recorder infrastructure, it is just a
matter of plumbing the `WebRenderCompositionRecorder` from the
`CompositorBridgeParent` to the `RenderThread` to start recording frames.

Differential Revision: https://phabricator.services.mozilla.com/D32234
2019-05-30 20:19:48 +00:00
Noemi Erli
e91c1e09bb Backed out 7 changesets (bug 1551735) for build bustages in RenderThread.cpp CLOSED TREE
Backed out changeset aa165d8c181d (bug 1551735)
Backed out changeset e7b857609786 (bug 1551735)
Backed out changeset f2a2396a0d4a (bug 1551735)
Backed out changeset 5891d00fca85 (bug 1551735)
Backed out changeset 2e6ca6d6c527 (bug 1551735)
Backed out changeset 3b2078f90715 (bug 1551735)
Backed out changeset a516d20303e6 (bug 1551735)
2019-05-30 23:10:21 +03:00
Barret Rennie
7f3ab9fa81 Bug 1551735 - Clearly document the case of the RendererOGL receiving a new WebRenderCompositionRecorder while it has one r=kats
Differential Revision: https://phabricator.services.mozilla.com/D32356
2019-05-29 21:53:44 +00:00
Barret Rennie
5787244479 Bug 1551735 - Record compositions in Web Render r=kats
Now that we have a suitable composition recorder infrastructure, it is just a
matter of plumbing the `WebRenderCompositionRecorder` from the
`CompositorBridgeParent` to the `RenderThread` to start recording frames.

Differential Revision: https://phabricator.services.mozilla.com/D32234
2019-05-29 23:05:54 +00:00
Jean-Yves Avenard
3d2cd88230 Bug 1554438 - P2. Only shutdown thread if it was started. r=sotaro
It is theorically possible that the WinCompositorWindowThread failed to start. Should this happen, attempting to shut it down will cause shutdown to hang forever.

Differential Revision: https://phabricator.services.mozilla.com/D32602
2019-05-26 02:17:10 +00:00
sotaro
3e8d108ec5 Bug 1551392 - Remove RenderThread::DecPendingFrameCount() r=nical
Differential Revision: https://phabricator.services.mozilla.com/D31021
2019-05-14 07:18:03 +00:00
Kartikaya Gupta
54c6340626 Bug 1547097 - Get snapshots in RGBA8 instead of BGRA8 on Android. r=jnicol
BGRA may not be supported on GLES implementations, such as on the
Pixel 2 device. Since WR on Android uses GLES, we should use RGBA
when getting snapshots so that it actually works instead of failing
silently.

Differential Revision: https://phabricator.services.mozilla.com/D29060
2019-04-30 17:49:30 +00:00
sotaro
88d6456559 Bug 1544642 - Do not bind SurfaceTexture of video to gl context if it is used by WebGL r=nical
GeckoSurfaceTexture could bind to only one GL context at once. With WebRender, GeckoSurfaceTexture is soon bounded to sharedGL on render thread. It caused the problem if GeckoSurfaceTexture is rendered to WebGL. It could happen only for video's GeckoSurfaceTexture. To avoid the problem, the GeckoSurfaceTexture is bound to gl context when it is actually rendered on WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D27873
2019-04-26 07:48:54 +00:00
Sylvestre Ledru
893cfb7019 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D28329
2019-04-22 16:35:03 +00:00
Kartikaya Gupta
c2b6f1daf9 Bug 1536487 - Use a RenderRootSet instead of nsTArray<RenderRoot>. r=dthayer
The array takes up more space than a bitset, and we don't need to keep
duplicates anyway, so the set doesn't lose us anything.

Differential Revision: https://phabricator.services.mozilla.com/D27900
2019-04-17 15:12:10 +00:00
Doug Thayer
1af37a5137 Bug 1538710 - Add WR API endpoint for sending multiple transactions r=nical
We discussed this a bit in Orlando. Essentially, we want to run cleanup
operations in texture_cache before all documents' frames, and then be
able to ensure that every document generates a frame, because otherwise
we will run into problems with evicted cache items used by non-updating-
but-still-rendering documents. Accordingly, we need an endpoint to
lump all of the transactions that generate frames together. This adds
that and builds out all of the plumbing necessary.

Differential Revision: https://phabricator.services.mozilla.com/D25132
2019-04-15 22:34:13 +00:00
Daniel Varga
a3c70e6ea9 Backed out 4 changesets (bug 1538710) for webrender-lint
Backed out changeset 6f3f506c7740 (bug 1538710)
Backed out changeset 1a529f967061 (bug 1538710)
Backed out changeset afa5cc2c6032 (bug 1538710)
Backed out changeset ab2083ff97f4 (bug 1538710)
2019-04-15 23:18:19 +03:00
Doug Thayer
300f788c21 Bug 1538710 - Add WR API endpoint for sending multiple transactions r=nical
We discussed this a bit in Orlando. Essentially, we want to run cleanup
operations in texture_cache before all documents' frames, and then be
able to ensure that every document generates a frame, because otherwise
we will run into problems with evicted cache items used by non-updating-
but-still-rendering documents. Accordingly, we need an endpoint to
lump all of the transactions that generate frames together. This adds
that and builds out all of the plumbing necessary.

Differential Revision: https://phabricator.services.mozilla.com/D25132
2019-04-15 18:56:04 +00:00
Martin Stransky
b35f31bf45 Bug 1535893 - Use SharedGL in RenderCompositorEGL on wayland, r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D26800
2019-04-12 08:08:03 +00:00
Dorel Luca
c2f2a7f423 Backed out 3 changesets (bug 1538710) for Wrench bustage. CLOSED TREE
Backed out changeset 9a80bc4d626a (bug 1538710)
Backed out changeset f5f916011032 (bug 1538710)
Backed out changeset 585b51bba30d (bug 1538710)
2019-04-08 19:09:49 +03:00
Doug Thayer
975c789280 Bug 1538710 - Add WR API endpoint for sending multiple transactions r=nical
We discussed this a bit in Orlando. Essentially, we want to run cleanup
operations in texture_cache before all documents' frames, and then be
able to ensure that every document generates a frame, because otherwise
we will run into problems with evicted cache items used by non-updating-
but-still-rendering documents. Accordingly, we need an endpoint to
lump all of the transactions that generate frames together. This adds
that and builds out all of the plumbing necessary.

Differential Revision: https://phabricator.services.mozilla.com/D25132
2019-04-08 15:23:20 +00:00
sotaro
244ac025bf Bug 1529870 - Add handling of single buffer mode android SurfaceTexture r=nical
When SurfaceTexture is single buffer mode, UpdateTexImage() should be called only once for each publish. If UpdateTexImage() is called more than once, it causes hand on puglish side.

Differential Revision: https://phabricator.services.mozilla.com/D24483
2019-04-03 22:05:27 +00:00
Jeff Gilbert
f036fbf0ae No bug - clang-format -p gfx 2019-03-29 23:41:48 -07:00
Doug Thayer
78132cddf9 Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
This is a large patch that contains all of the core changes for
renderroot splitting.

Differential Revision: https://phabricator.services.mozilla.com/D20701
2019-03-22 18:28:42 +00:00
Ciure Andrei
be6acddb9e Backed out 7 changesets (bug 1441308)for causing webrender build bustages CLOSED TREE
Backed out changeset 1764701d11d1 (bug 1441308)
Backed out changeset 32f7793dfd1a (bug 1441308)
Backed out changeset d8b4d6ec9b40 (bug 1441308)
Backed out changeset e2f83e4816dd (bug 1441308)
Backed out changeset baee8ada680f (bug 1441308)
Backed out changeset c09a51622e98 (bug 1441308)
Backed out changeset 737807563dd5 (bug 1441308)
2019-03-22 10:52:44 +02:00
Doug Thayer
4c535e830a Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
This is a large patch that contains all of the core changes for
renderroot splitting.

Differential Revision: https://phabricator.services.mozilla.com/D20701
2019-03-22 03:15:14 +00:00
sotaro
fbc707d761 Bug 1532929 - Use SharedGL on android r=nical
RenderCompositorEGL is also used on wayland, but SharedGL is not enabled on wayalnd. Since SharedGL caused flickering, when multiple windows were opened on wayland.

Differential Revision: https://phabricator.services.mozilla.com/D23786
2019-03-20 11:51:33 +00:00
Bobby Holley
7fd99373e9 Bug 1535745 - Eliminate gfx.webrender.program-binary. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D23731
2019-03-16 00:31:38 +00:00
sotaro
b06ad97a23 Bug 1526213 - Enable WebRenderTextureHostWrapper for canvas r=nical
By using WebRenderTextureHostWrapper for canvas, we could avoid triggering frame build on WebRender backend if WebRenderTextureHostWrapper is only change.

Differential Revision: https://phabricator.services.mozilla.com/D19896
2019-02-18 09:33:32 +00:00
Cosmin Sabou
57bb107987 Merge mozilla-inbound to mozilla-central. a=merge 2019-01-19 11:57:49 +02:00
Jeff Muizelaar
083789129d Bug 1520955. Add ref qualifier to DataMutex for more safety. r=froydnj
We lose some sugar but gain some safety. This seems like the right
trade. If people want sugar they should use Rust.

Differential Revision: https://phabricator.services.mozilla.com/D16918
2019-01-18 16:48:22 +00:00
Greg Tatum
7ced9eb1ec Bug 1520526 - Add categories to all profiler markers; r=mstange
This commit adds categories to all markers. This way the profiler's
marker categories and frame label categories agree. There are a few
duplicate category properties on some of the marker payloads, but
this could be cleaned up in a follow-up if needed.

Differential Revision: https://phabricator.services.mozilla.com/D16864
2019-01-18 15:40:15 +00:00
Jeff Muizelaar
f6fb7e2e5c Bug 1520651. Use a DataMutex around mWindowInfos instead of a standalone Mutex. r=mattwoodrow
This ensures that access is locked.

Differential Revision: https://phabricator.services.mozilla.com/D16760
2019-01-16 23:25:35 +00:00
Margareta Eliza Balazs
7fe3543679 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-01-18 12:31:59 +02:00
Ehsan Akhgari
498e2df734 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset
2019-01-18 10:16:18 +01:00
Sylvestre Ledru
3ece000f7a Bug 1516555 - Reformat everything to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D15426
2018-12-28 15:48:06 +00:00