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

1738 Коммитов

Автор SHA1 Сообщение Дата
sotaro 6c701a41a3 Bug 1596630 - Remove mSyncObject->Synchronize() in RenderCompositorANGLE::BeginFrame() r=nical
mSyncObject->Synchronize() was necessary to handle a case that D3D Texture was created on main thread of content process and the Texture does not have a keyed mutex. But with WebRender, the situation does not happen often. Further the Synchronize() is sometimes very slow. Therefore it is better to remove it from RenderCompositorANGLE::BeginFrame().

Canvas 2d does not use keyed mutex yet. Then the change adds keyed mutex usage for the canvas 2d.

D3D11DXVA2Manager still uses the Synchronize(). In this case, the Synchronize() is manually called in D3D11DXVA2Manager::CopyToImage(). Then RenderCompositorANGLE still needs to create SyncObjectHost.

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

--HG--
extra : moz-landing-system : lando
2019-11-18 09:49:15 +00:00
Andrew Osmond e8b66dfae2 Bug 1589402 - Stop rounding complex clip rects in layout space. r=jrmuizel
We already snap the complex clip rects during scene building, taking
into account any necessary transforms and device pixel scaling. Just
like normal clips, we shouldn't round in layout space.

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

--HG--
extra : moz-landing-system : lando
2019-11-15 18:02:17 +00:00
Bert Peers a389b627ed Bug 1596769 - Fix broken WebRender capture on Windows r=kvark
On Windows, save the Ctrl-Shift-3 capture to the user's local app data
to make sure we have write permissions.
Verified with ./mach run + capture => saved to C:\Users\...\AppData\Local\wr-capture

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

--HG--
extra : moz-landing-system : lando
2019-11-15 16:02:56 +00:00
Josh Matthews a9c6070468 Bug 1595787: Move ExternalImageHandler and OutputImageHandler traits to webrender_api. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D52686

--HG--
extra : moz-landing-system : lando
2019-11-14 17:40:28 +00:00
Markus Stange 8b245c092f Bug 1576390 - Remove the prefs gfx.core-animation.enabled and gfx.compositor.glcontext.opaque, and all the code needed to support it. r=mattwoodrow,spohl
Differential Revision: https://phabricator.services.mozilla.com/D52739

--HG--
extra : moz-landing-system : lando
2019-11-13 19:07:37 +00:00
Markus Stange ba013d0f42 Bug 1594950 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D50878

--HG--
extra : moz-landing-system : lando
2019-11-13 18:55:18 +00:00
Markus Stange 80c235777f Bug 1594950 - Bake the layer size and its opaqueness into the layer, don't allow mutating it. r=jrmuizel
These settings are now supplied during layer creation and never change.
Consumers must now create new NativeLayer objects if they want to change size or toggle opaqueness.
This aligns the NativeLayer API with DirectComposition's capabilities. It also simplifies swap chain
management.

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

--HG--
extra : moz-landing-system : lando
2019-11-13 18:46:02 +00:00
Cosmin Sabou 1d71e9f510 Backed out 4 changesets (bug 1594950) for turning bug 1405083 into permafail.
Backed out changeset 684a87e91d94 (bug 1594950)
Backed out changeset adea6912c3a3 (bug 1594950)
Backed out changeset aea7108204e9 (bug 1594950)
Backed out changeset 15baea8520de (bug 1594950)
2019-11-13 06:44:24 +02:00
sotaro 22a4932c7e Bug 1595703 - Remove DXGI_USAGE_SHADER_INPUT usage r=gw
DXGI_USAGE_SHADER_INPUT is not necessary with current WebRender.

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

--HG--
extra : moz-landing-system : lando
2019-11-12 19:15:39 +00:00
sotaro e3f85dc709 Bug 1595027 - Disable partial present when SwapChain uses alpha r=nical
During high contrast mode, alpha is used by SwapChain. In this case, IDXGISwapChain1::Present1() shows nothing with compositor window. To address the problem, we disable the Present1() usage when alpha is used.

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

--HG--
extra : moz-landing-system : lando
2019-11-12 22:13:41 +00:00
Sylvestre Ledru ea96556c9f Bug 1562642 - add missing license in gfx/ r=nical
Depends on D52581

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

--HG--
extra : moz-landing-system : lando
2019-11-12 22:01:02 +00:00
Markus Stange 2db4b324b7 Bug 1594950 - Change NextSurface APIs to accept a dirty region, and remove the public method InvalidateRegionThroughoutSwapchain. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D50878

--HG--
extra : moz-landing-system : lando
2019-11-12 19:50:26 +00:00
Markus Stange 82452d888a Bug 1594950 - Bake the layer size and its opaqueness into the layer, don't allow mutating it. r=jrmuizel
These settings are now supplied during layer creation and never change.
Consumers must now create new NativeLayer objects if they want to change size or toggle opaqueness.
This aligns the NativeLayer API with DirectComposition's capabilities. It also simplifies swap chain
management.

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

--HG--
extra : moz-landing-system : lando
2019-11-12 19:50:25 +00:00
Miko Mynttinen 887eef5e7f Bug 1595036 - Put GPU debug markers behind a pref r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D52339

--HG--
extra : moz-landing-system : lando
2019-11-08 15:59:27 +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
sotaro 7001d3c524 Bug 1592512 - Handle surface opacity of OS compositor surface on Windows r=gw
Differential Revision: https://phabricator.services.mozilla.com/D52322

--HG--
extra : moz-landing-system : lando
2019-11-08 10:15:07 +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
Barret Rennie 59bbcf47d9 Bug 1581240 - Return a Promise from windowUtils.setCompositionRecording() r=nika
`windowUtils.setCompositionRecording()` now returns a promise that is resolved
when the composition recorder is enabled (if given `true`) or when frames are
written to disk (if given `false`). To accomplish this, the
`WebRenderCompositionRecorder` now returns a `MozPromise` when writing frames
to disk begins that is resolved when that process finishes.

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

--HG--
extra : moz-landing-system : lando
2019-11-07 22:34:25 +00:00
sotaro 127c0ad209 Bug 1592510 - Make partial updates with WebRender OS compositor work on Windows r=gw
Differential Revision: https://phabricator.services.mozilla.com/D51984

--HG--
extra : moz-landing-system : lando
2019-11-07 00:57:23 +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
Barret Rennie 8323f194e5 Bug 1581240 - Return a Promise from windowUtils.setCompositionRecording() r=nika
`windowUtils.setCompositionRecording()` now returns a promise that is resolved
when the composition recorder is enabled (if given `true`) or when frames are
written to disk (if given `false`). To accomplish this, the
`WebRenderCompositionRecorder` now returns a `MozPromise` when writing frames
to disk begins that is resolved when that process finishes.

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

--HG--
extra : moz-landing-system : lando
2019-11-06 20:48:43 +00:00
Nicolas Silva 3e4e9cbc17 Bug 1568600 - Disable sub-px aa in WebRender if dual-source-blending is unavailable. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D42303

--HG--
extra : moz-landing-system : lando
2019-11-05 14:39:37 +00:00
sotaro 85db2de6eb Bug 1593903 - Change RenderCompositor::SurfaceIsYFlipped() to SurfaceOriginIsTopLeft() r=gw
Differential Revision: https://phabricator.services.mozilla.com/D51776

--HG--
extra : moz-landing-system : lando
2019-11-05 11:02:40 +00:00
sotaro b9dc0622aa Bug 1593383 - Force full rendering to external target r=nical,gw
LayerManagerComposite and LayerManagerMLGPU do full rendering for taking a snapshot. Then WR also does  full rendering for taking a snapshot.

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

--HG--
extra : moz-landing-system : lando
2019-11-05 09:06:59 +00:00
sotaro 4260baaf8f Bug 1593319 - Set aFboId in DCLayerTree::Bind() r=gw,nical
EGLSurface could be bound only to framebuffer-zero.

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

--HG--
extra : moz-landing-system : lando
2019-11-05 09:07:11 +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 34a65d16bb Bug 1575159 - Implement partial invalidation on Windows r=gw
Partial present for WR is off by default.

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

--HG--
extra : moz-landing-system : lando
2019-11-03 10:57:03 +00:00
sotaro 253cc9eb1e Bug 1573710 - Trigger composite after SetParent() r=Gankro
The patch permits to resize compositor window's size after ::SetParent() call to prevent a conflict between ::SetParent() and ::SetWindowPos(). Then it triggers a composite after SetParent() call to resize compositor window correctly.

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

--HG--
extra : moz-landing-system : lando
2019-11-01 11:01:34 +00:00
sotaro 4404c0826a Bug 1591004 - First pass of OS compositor implementation on Windows r=gw
This implementation is off by default (behind gfx.webrender.compositor) until various bugs and inefficiencies are fixed.

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

--HG--
extra : moz-landing-system : lando
2019-10-31 11:59:17 +00:00
Glenn Watson 0c98790154 Bug 1591627 - Add support for specifying surface opacity to OS compositor interface. r=mstange,kvark
Differential Revision: https://phabricator.services.mozilla.com/D51033

--HG--
extra : moz-landing-system : lando
2019-10-30 20:49:44 +00:00
Razvan Maries ee9116f875 Backed out changeset 598b2d26c136 (bug 1591627) as per Glenn's request. CLOSED TREE 2019-10-30 22:05:32 +02:00
Glenn Watson 207356d08d Bug 1591627 - Add support for specifying surface opacity to OS compositor interface. r=mstange,kvark
Differential Revision: https://phabricator.services.mozilla.com/D51033

--HG--
extra : moz-landing-system : lando
2019-10-30 18:05:49 +00:00
Markus Stange a928e461d8 Bug 1591523 - First pass of OS compositor implementation on macOS. r=sotaro
This implementation is off by default (behind gfx.webrender.compositor) until
various bugs and inefficiencies are fixed. See bug 1592016.

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

--HG--
extra : moz-landing-system : lando
2019-10-29 20:54:09 +00:00
Markus Stange f2c9430255 Bug 1591523 - Move existing NativeLayer management into RenderCompositorOGL. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D50724

--HG--
extra : moz-landing-system : lando
2019-10-29 20:50:33 +00:00
Bogdan Tara f866fef3ad Backed out 3 changesets (bug 1591523) for bustages complaining about RenderCompositorOGL.cpp CLOSED TREE
Backed out changeset 407f051e14db (bug 1591523)
Backed out changeset b4c8080dae86 (bug 1591523)
Backed out changeset abb627bc4f75 (bug 1591523)
2019-10-29 22:00:05 +02:00
Markus Stange 9585925ff5 Bug 1591523 - First pass of OS compositor implementation on macOS. r=sotaro
This implementation is off by default (behind gfx.webrender.compositor) until
various bugs and inefficiencies are fixed. See bug 1592016.

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

--HG--
extra : moz-landing-system : lando
2019-10-29 19:25:39 +00:00
Markus Stange 4631463725 Bug 1591523 - Move existing NativeLayer management into RenderCompositorOGL. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D50724

--HG--
extra : moz-landing-system : lando
2019-10-29 19:25:29 +00:00
Markus Stange 64c13fc106 Bug 1587940 - Remove capability for opaque regions from NativeLayer interface. r=jrmuizel
This change makes opaqueness a boolean per layer again. The opaque region is
currently only used by the temporary WebRender code; the future WebRender code
won't use it. Removing this support simplifies the code and makes it easier to
implement clipping.

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

--HG--
extra : moz-landing-system : lando
2019-10-29 19:24:24 +00:00
Martin Stransky bf00169ed5 Bug 1589114 [Watland] Set widget EGL window size for WebRender, r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D50746

--HG--
extra : moz-landing-system : lando
2019-10-29 09:00:26 +00:00
Narcis Beleuzu a64dcc0c07 Backed out changeset 7a4cf3982659 (bug 1573710) for mda failures on test_getUserMedia_basicScreenshare. CLOSED TREE 2019-10-29 11:28:09 +02:00
sotaro 16784c5201 Bug 1573710 - Trigger composite after SetParent() r=Gankro
The patch permits to resize compositor window's size after ::SetParent() call to prevent a conflict between ::SetParent() and ::SetWindowPos(). Then it triggers a composite after SetParent() call to resize compositor window correctly.

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

--HG--
extra : moz-landing-system : lando
2019-10-28 21:33:40 +00:00
Glenn Watson 074c0fe3ca Bug 1591527 - Integrate partial repainting with OS compositor surfaces. r=kvark,mstange
This passes the existing dirty rect for a picture cache update
through the native compositor interface, allowing compositors
to only update a sub-rect of a tile.

Also update the example to pass dirty rect to DirectComposition,
and add debug drawing for compositor redraw region.

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

--HG--
extra : moz-landing-system : lando
2019-10-28 20:56:42 +00:00
Glenn Watson d9b66a11dc Bug 1591837 - Support specification of FBO id in native compositor interface. r=mstange
Platform differences between DirectComposition and CoreAnimation
mean that WR needs to bind the FBO ID that the underlying platform
returns as part of the surface binding operation.

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

--HG--
extra : moz-landing-system : lando
2019-10-28 20:38:57 +00:00
Glenn Watson af909bd6ee Bug 1591223 - Tidy up the WR renderer options for partial present and native compositing. r=kvark
This patch is a small refactor of the public and internal structures
for options related to partial present and native compositing. It
doesn't contain any functional changes.

It adds a field to the native compositing setup to allow clients to
express whether dirty rect updates are supported when native compositing
is enabled (not currently used but will be enabled soon).

It also removes the partial present config options, and makes them
part of the default / draw compositing mode.

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

--HG--
extra : moz-landing-system : lando
2019-10-28 19:51:24 +00:00
sotaro 11d9c7b7fa Bug 1591346 - Remove EGL_ANGLE_experimental_present_path usage with WebRender r=gw
EGL_ANGLE_experimental_present_path was enabled for fast rendering to SwapChain by ANGLE. But current gecko does not request ANGLE to render to SwapChain for WebRender. Then we do not need to use EGL_ANGLE_experimental_present_path anymore. But Its usage still has a side effect that y is flipped. But OS compositor implementation on Windows does not want it. And it seems not good to continue to use EGL_ANGLE_experimental_present_path since it is experimental feature.

But when EGL_ANGLE_experimental_present_path is removed, rendering result of frame buffer is y flipped with ANGLE compared to other OpenGL implementation. It needs to be handled in WR. It is similar to chromium.

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

--HG--
extra : moz-landing-system : lando
2019-10-28 00:56:41 +00:00
Markus Stange 8785168981 Bug 1591752 - FFI for WebRender OS compositor integration: Create WrCompositor struct which implements the webrender::Compositor trait and calls through to virtual methods on RenderCompositor. r=sotaro
This patch was largely written by Sotaro.

This patch also adds an off-by-default pref gfx.webrender.compositor that currently does nothing.

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

--HG--
extra : moz-landing-system : lando
2019-10-27 01:18:27 +00:00
Martin Stransky eca6f5db8f Bug 1583731 - [Wayland] Implement RenderWaylandDMABUFTextureHostOGL based on WaylandDMABUFSurface, r=sotaro
Depends on D49263

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

--HG--
extra : moz-landing-system : lando
2019-10-17 11:28:56 +00:00
Kris Taeleman 8205a49853 Bug 1585801 - Fixing crash when folder is not writable and refactored logic. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D48999

--HG--
extra : moz-landing-system : lando
2019-10-15 17:03:22 +00:00
sotaro 61f09c1667 Bug 1588019 - Add option of enabling highlighting redraw regions of DCompositionVisual r=nical
Differential Revision: https://phabricator.services.mozilla.com/D48937

--HG--
extra : moz-landing-system : lando
2019-10-14 12:55:01 +00:00