Граф коммитов

187 Коммитов

Автор SHA1 Сообщение Дата
sotaro d117745eaf Bug 1633303 - Add glDebugCallback support to non shared gl context with WebRender r=gw
Bug 1632096 added the capability to shared gl context with WebRender. This bug extends the support to non shared gl context.

Differential Revision: https://phabricator.services.mozilla.com/D72579
2020-04-27 02:51:48 +00:00
sotaro 74fce68a04 Bug 1632096 - Forward WebRender gl(ANGLE) error message to gfx critical note r=gw
Differential Revision: https://phabricator.services.mozilla.com/D72123
2020-04-24 11:32:05 +00:00
Narcis Beleuzu 3eaaf8fd77 Backed out changeset d84032238d5f (bug 1632096) for bustages on GLContext.h . CLOSED TREE 2020-04-24 05:46:10 +03:00
sotaro 41ebbb733f Bug 1632096 - Forward WebRender gl(ANGLE) error message to gfx critical note r=gw
Differential Revision: https://phabricator.services.mozilla.com/D72123
2020-04-23 22:58:27 +00:00
sotaro 5e373d876a Bug 1626142 - Fix canvas handling during resuming on Android r=jnicol
CanvasClientSharedSurface did not handle a case that CanvasClientSharedSurface was re-created, but GLScreenBuffer was not re-created. And RenderCompositorEGL::Pause() detaches all SurfaceTesxtures, but RenderAndroidSurfaceTextureHostOGL did not handle it.

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

--HG--
extra : moz-landing-system : lando
2020-04-14 14:07:30 +00:00
Botond Ballo 0db5983e81 Bug 1627482 - Fix non-unified build errors in gfx/webrender_bindings. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D69736

--HG--
extra : moz-landing-system : lando
2020-04-05 03:49:51 +00:00
Nicolas Silva fdb6027218 Bug 1624627 - Reimplement the slow frame indicator. r=jrmuizel
This removes the WebRender side of the previous slow frame indicator and replace it with a simple implementation that only looks at the CPU time on the render backend and renderer thread involved for building a frame.

A followup patch will add a separate indicator for when the displaylist/ipc/scene bits take too long.

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

--HG--
extra : moz-landing-system : lando
2020-04-02 17:23:15 +00:00
Lee Salzman ec2805f08f Bug 1612941 - add SWGL glue to webrender_bindings. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65592

--HG--
extra : moz-landing-system : lando
2020-03-13 18:18:14 +00:00
shindli 8a8793039d Backed out 12 changesets (bug 1612941) for webrender linting bustage CLOSED TREE
Backed out changeset bbb8ec38f354 (bug 1612941)
Backed out changeset cd798d2a0433 (bug 1612941)
Backed out changeset c02c4c5bf7f7 (bug 1612941)
Backed out changeset 2e0c9b9bd507 (bug 1612941)
Backed out changeset ec0fffd12dec (bug 1612941)
Backed out changeset 2d6f65fe6ec0 (bug 1612941)
Backed out changeset dd1a92041bb4 (bug 1612941)
Backed out changeset 3cae17a5ec80 (bug 1612941)
Backed out changeset edfca5676513 (bug 1612941)
Backed out changeset f94d5c7cee41 (bug 1612941)
Backed out changeset 67bba000daba (bug 1612941)
Backed out changeset 60151122db4d (bug 1612941)
2020-03-11 14:28:55 +02:00
Lee Salzman 0b6ec64adc Bug 1612941 - add SWGL glue to webrender_bindings. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65592

--HG--
extra : moz-landing-system : lando
2020-03-11 12:05:07 +00:00
shindli 0830b5e7f8 Backed out 12 changesets (bug 1612941) for causing bustages CLOSED TREE
Backed out changeset 29f9f745ff65 (bug 1612941)
Backed out changeset d92e03315f8d (bug 1612941)
Backed out changeset 9b1360daa75a (bug 1612941)
Backed out changeset ad7f43d72b08 (bug 1612941)
Backed out changeset 30b28118362a (bug 1612941)
Backed out changeset 76f80dce8875 (bug 1612941)
Backed out changeset 375896f494ae (bug 1612941)
Backed out changeset bd8ba66dc2ac (bug 1612941)
Backed out changeset 54ec5a6e8e45 (bug 1612941)
Backed out changeset 419105739e53 (bug 1612941)
Backed out changeset c198dedeaa1b (bug 1612941)
Backed out changeset 87ddcdfc5fcf (bug 1612941)
2020-03-11 14:01:26 +02:00
Lee Salzman f1882a34ed Bug 1612941 - add SWGL glue to webrender_bindings. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D65592

--HG--
extra : moz-landing-system : lando
2020-03-11 11:47:16 +00:00
Martin Stransky 3e8ae1409e Bug 1619270 [Wayland] Check we're really on Wayland and not on headless, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D65489

--HG--
extra : moz-landing-system : lando
2020-03-05 10:20:48 +00:00
Emilio Cobos Álvarez d18caaa054 Bug 1616395 - Remove FfiVec. r=jrmuizel
Use ThinVec instead, which is compatible with nsTArray, and makes stuff much
harder to misuse.

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

--HG--
extra : moz-landing-system : lando
2020-02-19 18:34:51 +00:00
sotaro 56b30bd8c4 Bug 1602643 - Disable WebRender compositor dinamically for async screenshot r=gw
Differential Revision: https://phabricator.services.mozilla.com/D59658

--HG--
extra : moz-landing-system : lando
2020-01-23 23:52:05 +00:00
Mihai Alexandru Michis d8a8849254 Backed out changeset f3b490c076d6 (bug 1602643) for causing bustages regarding CompositorKindChanged
CLOSED TREE
2020-01-23 16:27:33 +02:00
sotaro 7afb826ef9 Bug 1602643 - Disable WebRender compositor dinamically for async screenshot r=gw
Differential Revision: https://phabricator.services.mozilla.com/D59658

--HG--
extra : moz-landing-system : lando
2020-01-23 04:37:28 +00:00
Nazım Can Altınova d8afe0647a Bug 1609708 - Rename PROFILER_TRACING to PROFILER_TRACING_MARKER. r=gerald
Depends on D60229

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

--HG--
extra : moz-landing-system : lando
2020-01-17 21:29:15 +00:00
sotaro 1a4d9c67f5 Bug 1606046 - Enable CreateContextFlags::PREFER_ROBUSTNESS flag for WebRender GLContextEGL on Windows r=gw
When EGL_LOSE_CONTEXT_ON_RESET is set by CreateContextFlags::PREFER_ROBUSTNESS flag, ANGLE avoids to release D3D resources when ANGLE detects device reset. It is necessary to avoid nullptr dereference in ANGLE.

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

--HG--
extra : moz-landing-system : lando
2020-01-06 02:35:25 +00:00
Markus Stange 0f70058b6f Bug 1592044 - Reduce the frequency of IOSurface and framebuffer creation and destruction with the help of a surface pool. r=jgilbert
There are multiple SurfacePools: Main thread painting and the non-WebRender compositors create a new pool per window, and WebRender creates one shared pool across all windows. The non-WebRender users set the pool size limit to zero, i.e. no recycling across paints. This preserves the pre-existing behavior.
WebRender's pool size is configurable with the gfx.webrender.compositor.surface-pool-size pref.
Every window holds on to a SurfacePoolHandle. A SurfacePoolHandle has an owning reference to the pool, via a surface pool wrapper. Once all handles are gone, the surface pool goes away, too.
The SurfacePool holds on to IOSurfaces and MozFramebuffers. Both are created on demand, independently, but are associated with each other.
A given NativeLayer uses only one surface pool handle during its lifetime. The native layer no longer influences which GLContext its framebuffers are created for; the GL context is now managed by the surface pool handle.
As a result, a NativeLayer can no longer change which GLContext its framebuffers are created by.
So in the future, if we ever need to migrate a window frome one GLContext to another, we will need to recreate the NativeLayers inside it. I think that's ok.

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

--HG--
extra : moz-landing-system : lando
2019-12-18 21:01:51 +00:00
Bert Peers 8edb97a47a Bug 1595708 - Cargo build timings SVG output Freezes the entire browser with WebRender r=nical,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D56244

--HG--
extra : moz-landing-system : lando
2019-12-09 20:21:41 +00:00
sotaro d5a300b92b Bug 1599887 - Update frame is when WR rendering is skipped r=nical
wr::WebRenderPipelineInfo needs to be handled even when WR rendering does not happen.

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

--HG--
extra : moz-landing-system : lando
2019-12-06 13:06:21 +00:00
Markus Stange d72f22d80a Bug 1449205 - Share OpenGL contexts between WebRender windows on macOS. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D53121

--HG--
extra : moz-landing-system : lando
2019-11-19 17:46:39 +00:00
sotaro 19b4d3425b Bug 1594303 - Code clean up around RenderAndroidSurfaceTextureHostOGL r=jnicol
Removes NofityForUse() functions for simplicity.

Ensure that RenderTextureHost::PrepareForUse() is called before RenderTextureHost:: Lock(). When a task of calling RenderTextureHost::PrepareForUse() is simply posted to render thread, there is a case that RenderTextureHost:: Lock() is called before PrepareForUse() .

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

--HG--
extra : moz-landing-system : lando
2019-11-08 12:52:16 +00:00
Barret Rennie e62c6d736d Bug 1581240 - Add an API to retrieve the collected frames from WebRender r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D47816

--HG--
extra : moz-landing-system : lando
2019-11-07 22:34:49 +00:00
Daniel Varga 8afb8d99f1 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 3f8aaa035d Bug 1581240 - Add an API to retrieve the collected frames from WebRender r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D47816

--HG--
extra : moz-landing-system : lando
2019-11-06 20:48:47 +00:00
Bob Owen 32869c5f76 Bug 1589718: Add a RenderedFrameId to RenderCompositor and use it to control release of textures. r=sotaro
This replaces mUpdatesCount in AsyncImagePipelineManager, which was really how
many times NotifyPipelinesUpdated was called with aRender == true. I think this
makes the release logic clearer as it is more explicit.
It also changes things for RenderCompositorANGLE, so that we check to see if
any other frames have completed even if we don't want to wait for them.

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

--HG--
extra : moz-landing-system : lando
2019-11-04 16:15:20 +00:00
sotaro 4f131bcbd5 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

--HG--
extra : moz-landing-system : lando
2019-09-26 09:29:24 +00:00
sotaro f3029ff35f Bug 1583703 - Fix reset handling in RenderThread::HandleFrameOneDoc() r=nical
Move DeviceReset handling before the assert. It is OK, since RendererOGL instance is not re-used after the DeviceReset. It is replaced by a new RendererOGL.

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

--HG--
extra : moz-landing-system : lando
2019-09-26 09:52:04 +00:00
sotaro 33aa5e8fda Bug 1581307 - Remove wr::WrExternalImageId r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D45937

--HG--
extra : moz-landing-system : lando
2019-09-16 22:13:16 +00:00
Markus Stange dd7b882fd0 Bug 1570869 - Inline FrameRenderingComplete into HandleFrameOneDoc. r=nical
Depends on D40374

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

--HG--
extra : moz-landing-system : lando
2019-08-05 12:09:46 +00:00
Markus Stange d4aaf327fd 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

--HG--
extra : moz-landing-system : lando
2019-08-05 12:07:29 +00:00
Markus Stange 6ebb22a9d3 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

--HG--
extra : moz-landing-system : lando
2019-08-05 12:02:38 +00:00
Markus Stange d00dade81c Bug 1570869 - Remove mPendingCount in favor of an accessor. r=nical
Depends on D40371

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

--HG--
extra : moz-landing-system : lando
2019-08-05 11:59:35 +00:00
Markus Stange 17df58880c 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

--HG--
extra : moz-landing-system : lando
2019-08-06 07:01:15 +00:00
Markus Stange e36f7409a9 Bug 1570869 - Combine pending frame info in RenderThread's WindowInfo. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D40370

--HG--
extra : moz-landing-system : lando
2019-08-05 11:54:31 +00:00
Barret Rennie c32eee8ff0 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

--HG--
extra : moz-landing-system : lando
2019-07-31 18:28:47 +00:00
Barret Rennie 4374f75f51 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

--HG--
extra : moz-landing-system : lando
2019-07-31 18:28:34 +00:00
sotaro 70e1a770b5 Bug 1567816 - Remove WebRenderTextureHostWrapper r=nical
Differential Revision: https://phabricator.services.mozilla.com/D38837

--HG--
extra : moz-landing-system : lando
2019-07-22 08:03:59 +00:00
Jeff Gilbert a4edc05171 No bug - clang-format dom/canvas, gfx/[gl,layers,webrender_bindings]. 2019-07-11 15:36:44 -07:00
Nicolas Silva b32c2e1cd0 Bug 1557208 - Deallocate thread pool handles during RenderThread sync shutdown. r=sotaro
--HG--
extra : rebase_source : f373ba053d7f79c67aa34c93fe20fe7359d79386
extra : source : e7f3a4b3f5dcdbb1052e387a74fd14e4fcb225a7
2019-07-01 17:24:32 +02:00
Barret Rennie 942eaabecc Bug 1289211 - Rename InfallibleTArray to nsTArray in gfx/webrender_bindings/ r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D36957

--HG--
extra : moz-landing-system : lando
2019-07-10 03:30:18 +00:00
Jamie Nicol c9c015cbff 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

--HG--
extra : moz-landing-system : lando
2019-07-09 10:20:04 +00:00
Kartikaya Gupta b4060b7612 Bug 1525314 - Skip assertion intermittently failing on Android. r=aosmond
Depends on D36796

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

--HG--
extra : moz-landing-system : lando
2019-07-04 21:35:02 +00:00
Coroiu Cristina 3983fddf6d 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 90b331cafa Bug 1525314 - Skip assertion intermittently failing on Android. r=aosmond
Depends on D36796

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

--HG--
extra : moz-landing-system : lando
2019-07-04 18:39:08 +00:00
sotaro 1b3de0879f 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

--HG--
extra : moz-landing-system : lando
2019-06-19 16:14:56 +00:00
Barret Rennie 8923589429 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

--HG--
extra : moz-landing-system : lando
2019-05-31 00:31:52 +00:00
Barret Rennie d9cb9952d0 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

--HG--
extra : moz-landing-system : lando
2019-05-31 00:31:39 +00:00