Commit Graph

133 Commits

Author SHA1 Message Date
Daniel Varga
9b61b8264e Backed out 4 changesets (bug 1581240) for build bustage with error: implicit instantiation of undefined template 'nsTString<char>. On a CLOSED TREE
Backed out changeset b73b86efe266 (bug 1581240)
Backed out changeset 17dd226e21ae (bug 1581240)
Backed out changeset e2fd47ff8a89 (bug 1581240)
Backed out changeset c0589670c762 (bug 1581240)
2019-11-07 01:31:57 +02:00
Barret Rennie
95061f2e33 Bug 1581240 - Add an API to retrieve the collected frames from WebRender r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D47816
2019-11-06 20:48:47 +00:00
sotaro
a4ee6dbf95 Bug 1572222 - Revert TooManyPendingFrames() logic r=nical
Before  Bug 1570869, new frame was generated if WR does not have a pending frame build task. But  since Bug 1570869 fix, there is a case that new frame generation does not happen even when WR does not have a frame build task.

Differential Revision: https://phabricator.services.mozilla.com/D47045
2019-09-26 09:29:24 +00:00
sotaro
e37a08b0de Bug 1581307 - Remove wr::WrExternalImageId r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D45937
2019-09-16 22:13:16 +00:00
Markus Stange
fd6b2f6a4d Bug 1570869 - Add some comments to WindowInfo and reorder members a little. r=nical
Depends on D40375

Differential Revision: https://phabricator.services.mozilla.com/D40376
2019-08-05 12:08:18 +00:00
Markus Stange
e663b012d7 Bug 1570869 - Inline FrameRenderingComplete into HandleFrameOneDoc. r=nical
Depends on D40374

Differential Revision: https://phabricator.services.mozilla.com/D40375
2019-08-05 12:09:46 +00:00
Markus Stange
a5f90b336d Bug 1570869 - Fold mRender, mDocFramesSeen and mDocFrameCounts into PendingFrameInfo. r=nical
This makes it clear that these belong to a single frame and makes some assumptions explicit.
For example, in the old code, mDocFrameCounts.size() was the same as mPendingFrames.size()
when a pending frame was added, but then the sizes differed during rendering because a frame's
mDocFrameCount would be popped at the beginning of rendering while mPendingFrames would be
popped at the end of rendering.
This modification also makes some clearing of values unnecessary. A new frame always starts out
with cleared values for mDocFramesSeen and mFrameNeedsRender.

This patch also combines the two locks in HandleFrameOneDoc.

Depends on D40373

Differential Revision: https://phabricator.services.mozilla.com/D40374
2019-08-05 12:07:29 +00:00
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
Nicolas Silva
918f71e7c2 Bug 1557208 - Deallocate thread pool handles during RenderThread sync shutdown. r=sotaro 2019-07-01 17:24:32 +02: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
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
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
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
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
Jean-Yves Avenard
e98f4caee4 Bug 1540581 - P6. Tidy some C++ declarations in gfx/. r=gerald,jrmuizel
* Remove redundant virtual keywords
* Mark all destructors of inheriting classes as virtual for clarity
* Mark all classes without virtual destructor as final (exposed errors)
* Make destructor virtual where it needed to be (some were missing)
* Replace empty ({}) code declaration in header with = default
* Remove virtual unused methods

I probably missed some, it quickly became a rabbit hole.

Differential Revision: https://phabricator.services.mozilla.com/D26060
2019-04-11 12:36:51 +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
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
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
Jeff Gilbert
8e894f5e81 Bug 1528394 - Reduce includes of GLContext.h. r=lsalzman
Splitting part of OGLShaderProgram.h out into OGLShaderConfig.h makes it
easier to keep GLContext.h included in OGLShaderProgram.h for inlining
purposes.

Differential Revision: https://phabricator.services.mozilla.com/D20017
2019-02-19 23:25:42 +00:00
Dorel Luca
d6b222d4f6 Backed out changeset 2c28c2185a32 (bug 1528394) for build bustage. CLOSED TREE 2019-02-19 22:09:07 +02:00
Jeff Gilbert
2a66371508 Bug 1528394 - Reduce includes of GLContext.h. r=lsalzman
Splitting part of OGLShaderProgram.h out into OGLShaderConfig.h makes it
easier to keep GLContext.h included in OGLShaderProgram.h for inlining
purposes.

Differential Revision: https://phabricator.services.mozilla.com/D20017
2019-02-19 05:23:54 +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
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
Matt Woodrow
b6c358af34 Bug 1510853 - Add CONTENT_FRAME_TIME_REASON. r=jrmuizel, data-review=chutten
MozReview-Commit-ID: 9RV9ZkHXZTR

Differential Revision: https://phabricator.services.mozilla.com/D13351
2018-12-07 23:28:41 +00:00
Ciure Andrei
a6997e55b7 Backed out 4 changesets (bug 1510853) for TelemetryHistogramEnums.h build bustages CLOSED TREE
Backed out changeset 80baa7b09930 (bug 1510853)
Backed out changeset d1ef6db7fc28 (bug 1510853)
Backed out changeset ae190948ad73 (bug 1510853)
Backed out changeset 0ade0aa77b2f (bug 1510853)
2018-12-07 19:38:47 +02:00
Matt Woodrow
5c02bca5bf Bug 1510853 - Add CONTENT_FRAME_TIME_REASON. r=jrmuizel, data-review=chutten
MozReview-Commit-ID: 9RV9ZkHXZTR

Differential Revision: https://phabricator.services.mozilla.com/D13351
2018-12-07 17:02:58 +00:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
sotaro
eaf9a57f34 Bug 1506091 - Wait for GPU after posting NotifyDidRender r=mattwoodrow 2018-11-12 10:36:13 +09:00
Matt Woodrow
e715de6498 Bug 1503730 - Add visual indicator for when WebRender frames record a CONTENT_FRAME_TIME of >200. r=sotaro
MozReview-Commit-ID: KdRf3WClD6M

Differential Revision: https://phabricator.services.mozilla.com/D10442
2018-11-04 20:35:36 +00:00
sotaro
c5565cca7a Bug 1497910 - Call wr_renderer_readback() before calling RenderCompositor::EndFrame() r=nical 2018-10-17 07:54:01 +09:00
Jeff Muizelaar
be193259f0 Bug 1495902. Create a shared Shaders object for all windows to use. r=jrmuizel 2018-10-09 23:20:20 -04:00
Dan Glastonbury
312c310bf4 Bug 1494763 - Use a single shared GLContext in RenderThread when we support it. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D7382
2018-10-04 02:54:50 +00:00
sotaro
dfc06846ef Bug 1495352 - Make wr_notifier_nop_frame_done() notify DidComposite r=nical 2018-10-02 12:13:22 +09:00
Bobby Holley
9aaefccf1e Bug 1480293 - Basic Memory Reporting for WebRender. r=jrmuizel
Reviewers: jrmuizel, gw

Tags: #secure-revision

Bug #: 1480293

Differential Revision: https://phabricator.services.mozilla.com/D5719

MozReview-Commit-ID: 1vGl3890CjR
2018-09-14 15:27:31 -07:00
Gurzau Raul
912758b2d2 Backed out changeset 9762d76da9b3 (bug 1480293) for failing at aboutmemory/tests/test_memoryReporters.xul 2018-09-14 22:32:18 +03:00
Bobby Holley
7af16feb57 Bug 1480293 - Basic Memory Reporting for WebRender. r=jrmuizel
Reviewers: jrmuizel, gw

Tags: #secure-revision

Bug #: 1480293

Differential Revision: https://phabricator.services.mozilla.com/D5719

MozReview-Commit-ID: 1vGl3890CjR
2018-09-14 10:59:00 -07:00
sotaro
ea892379c7 Bug 1477608 - Reuse same ExternalImageId for different video frames if possible r=jrmuizel 2018-07-25 23:30:08 +09:00
sotaro
bf6acdb5a5 Bug 1474806 - Use more std::unordered_map in layers r=nical 2018-07-12 12:12:50 +09:00