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

2528 Коммитов

Автор SHA1 Сообщение Дата
Lee Salzman 59bb247451 Bug 1690655 - Occlude SwCompositor surfaces. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D103949
2021-02-04 03:43:27 +00:00
Jeff Muizelaar 69eeb000ea Bug 1687522 - Use a 'gecko' feature instead of having a ThreadListener trait. r=kvark
Previously, we've taken the strategy of exposing any gecko specific hooks
as traits. The disadvantage of this approach is that it requires plumbing
a boxed trait through to any places that need to use it.

With this approach, we add global functions that don't do anything when
compiled without the 'gecko' feature. This makes it easier to add hooks
and avoids the plumbing which should reduce friction in the process
of moving more stuff out of gecko and into webrender.

Differential Revision: https://phabricator.services.mozilla.com/D102334
2021-02-03 16:19:20 +00:00
Lee Salzman 73e9582ee4 Bug 1674524 - implement KHR_blend_equation_advanced in SWGL. r=bradwerth
This patch has a few moving parts. We have to first tell WR that when it
detects the extension that it is actually allowed to use it. We have to make
the glsl-to-cxx translator eat the blend_supports_all_equations layout
qualifier. We have to enable generation of advanced-blend-equation variants
in the SWGL build setup. Then we report the actual extension inside SWGL.
Finally, we actually add all the necessary blend equation enums, hash them
down to a blend key, and implement all the blend modes therein.

Differential Revision: https://phabricator.services.mozilla.com/D103804
2021-02-02 22:18:21 +00:00
Brindusan Cristian d3b8616aad Backed out changeset f71aafc4e845 (bug 1674524) for build bustages in src/gl.cc. CLOSED TREE 2021-02-03 00:07:59 +02:00
Lee Salzman 7b87580cdf Bug 1674524 - implement KHR_blend_equation_advanced in SWGL. r=bradwerth
This patch has a few moving parts. We have to first tell WR that when it
detects the extension that it is actually allowed to use it. We have to make
the glsl-to-cxx translator eat the blend_supports_all_equations layout
qualifier. We have to enable generation of advanced-blend-equation variants
in the SWGL build setup. Then we report the actual extension inside SWGL.
Finally, we actually add all the necessary blend equation enums, hash them
down to a blend key, and implement all the blend modes therein.

Differential Revision: https://phabricator.services.mozilla.com/D103804
2021-02-02 21:43:12 +00:00
Andrew Osmond 4a410a48ae Bug 1689203 - Allow fallback from WebRender to Software WebRender. r=jrmuizel
We can disable WebRender because the GPU process crashed, or we
encountered a graceful runtime error in WebRender. This patch adds two
new prefs to control how that fallback works.

gfx.webrender.fallback.software-d3d11 controls if WebRender falls back
to Software WebRender + D3D11 compositing. If true, and the user is
allowed to get Software WebRender, we will fallback to Software
WebRender with the D3D11 compositor first.

gfx.webrender.fallback.software controls if WebRender falls back to
Software WebRender. If true, and the user is allowed to get Software
WebRender, we will fallback to Software WebRender without the D3D11
compositor.

gfx.webrender.fallback.basic controls if WebRender or Software
WebRender falls back to Basic. If true, it falls back to Basic.
Otherwise it continues to use Software WebRender without the D3D11
compositor. Note that this means OpenGL on Android.

This patch also means that gfx.webrender.all=true and MOZ_WEBRENDER=1
no longer disables Software WebRender. It will still prefer (Hardware)
WebRender but we want to allow fallback to Software WebRender for
configurations that forced WebRender on.

Differential Revision: https://phabricator.services.mozilla.com/D103491
2021-02-01 23:36:36 +00:00
Butkovits Atila 6a81495553 Backed out changeset 7ba7ce64acae (bug 1689203) for causing failure on GfxConfigManager. CLOSED TREE 2021-02-02 01:33:00 +02:00
Andrew Osmond 2a606ea074 Bug 1689203 - Allow fallback from WebRender to Software WebRender. r=jrmuizel
We can disable WebRender because the GPU process crashed, or we
encountered a graceful runtime error in WebRender. This patch adds two
new prefs to control how that fallback works.

gfx.webrender.fallback.software-d3d11 controls if WebRender falls back
to Software WebRender + D3D11 compositing. If true, and the user is
allowed to get Software WebRender, we will fallback to Software
WebRender with the D3D11 compositor first.

gfx.webrender.fallback.software controls if WebRender falls back to
Software WebRender. If true, and the user is allowed to get Software
WebRender, we will fallback to Software WebRender without the D3D11
compositor.

gfx.webrender.fallback.basic controls if WebRender or Software
WebRender falls back to Basic. If true, it falls back to Basic.
Otherwise it continues to use Software WebRender without the D3D11
compositor. Note that this means OpenGL on Android.

This patch also means that gfx.webrender.all=true and MOZ_WEBRENDER=1
no longer disables Software WebRender. It will still prefer (Hardware)
WebRender but we want to allow fallback to Software WebRender for
configurations that forced WebRender on.

Differential Revision: https://phabricator.services.mozilla.com/D103491
2021-02-01 22:27:11 +00:00
Butkovits Atila 1d0218ffe2 Backed out changeset a3c9fce26dd1 (bug 1689203) for causing build bustages on GPUProcessManager.cpp. CLOSED TREE 2021-02-02 00:22:59 +02:00
Andrew Osmond 65ad480541 Bug 1689203 - Allow fallback from WebRender to Software WebRender. r=jrmuizel
We can disable WebRender because the GPU process crashed, or we
encountered a graceful runtime error in WebRender. This patch adds two
new prefs to control how that fallback works.

gfx.webrender.fallback.software-d3d11 controls if WebRender falls back
to Software WebRender + D3D11 compositing. If true, and the user is
allowed to get Software WebRender, we will fallback to Software
WebRender with the D3D11 compositor first.

gfx.webrender.fallback.software controls if WebRender falls back to
Software WebRender. If true, and the user is allowed to get Software
WebRender, we will fallback to Software WebRender without the D3D11
compositor.

gfx.webrender.fallback.basic controls if WebRender or Software
WebRender falls back to Basic. If true, it falls back to Basic.
Otherwise it continues to use Software WebRender without the D3D11
compositor. Note that this means OpenGL on Android.

This patch also means that gfx.webrender.all=true and MOZ_WEBRENDER=1
no longer disables Software WebRender. It will still prefer (Hardware)
WebRender but we want to allow fallback to Software WebRender for
configurations that forced WebRender on.

Differential Revision: https://phabricator.services.mozilla.com/D103491
2021-02-01 20:41:09 +00:00
sotaro d26e04b806 Bug 1675876 - Make RenderBufferTextureHostSWGL::RenderBufferTextureHostSWGL() fallible r=mattwoodrow
When ShmemTextureHost does not have valid Shmem, RenderBufferTextureHostSWGL::mBuffer is nullptr. RenderBufferTextureHost and RenderExternalTextureHost handle it as fallible.

Differential Revision: https://phabricator.services.mozilla.com/D103427
2021-02-01 03:06:00 +00:00
sotaro a65011d712 Bug 1682483 - Make RenderCompositorD3D11SWGL::AttachExternalImage() fallible r=mattwoodrow
Make RenderCompositorD3D11SWGL::AttachExternalImage() to fallible like RenderThread::GetRenderTexture().

Differential Revision: https://phabricator.services.mozilla.com/D103422
2021-02-01 03:06:18 +00:00
Lee Salzman 988104567f Bug 1689245 - replace CompositorWidget::ClearBeforePaint with GetTransparentRegion. r=mattwoodrow CLOSED TREE
ClearBeforePaint put the responsibility of clearing the current frame's DrawTarget
onto the widget. This doesn't compose well with WR RenderCompositor that may do
their own internal clearing. Instead, replace this with a GetTransparentRegion API
that can be used by RenderCompositors to limit where they clear so that they are
now fully responsible for clearing.

Differential Revision: https://phabricator.services.mozilla.com/D103253
2021-01-28 09:12:40 +00:00
Lee Salzman aa6576ccde Bug 1689245 - implement GL_ARB_clear_texture extension for SWGL. r=mattwoodrow
GL_ARB_clear_texture implements some useful GL entry-points for clears
that can clear arbitrary sub-rects of the screen without having to latch
or disturb GL state. This refactors the glClear implementation to be in
terms of the provided glClearTexSubImage extension which is far more
flexible.

This further allows us to reuse clearing primitives in RenderCompositorSWGL
without having to use more expensive DrawTarget versions.

Differential Revision: https://phabricator.services.mozilla.com/D103252
2021-01-28 08:35:34 +00:00
smolnar 27de9a114b Backed out 2 changesets (bug 1689245) for causing merge conflicts.
Backed out changeset 56cb5f428fb5 (bug 1689245)
Backed out changeset b1303a0086cd (bug 1689245)
2021-01-28 12:02:57 +02:00
Lee Salzman b2bd266cde Bug 1689245 - replace CompositorWidget::ClearBeforePaint with GetTransparentRegion. r=mattwoodrow
ClearBeforePaint put the responsibility of clearing the current frame's DrawTarget
onto the widget. This doesn't compose well with WR RenderCompositor that may do
their own internal clearing. Instead, replace this with a GetTransparentRegion API
that can be used by RenderCompositors to limit where they clear so that they are
now fully responsible for clearing.

Differential Revision: https://phabricator.services.mozilla.com/D103253
2021-01-28 09:12:40 +00:00
Lee Salzman 3d319c55f8 Bug 1689245 - implement GL_ARB_clear_texture extension for SWGL. r=mattwoodrow
GL_ARB_clear_texture implements some useful GL entry-points for clears
that can clear arbitrary sub-rects of the screen without having to latch
or disturb GL state. This refactors the glClear implementation to be in
terms of the provided glClearTexSubImage extension which is far more
flexible.

This further allows us to reuse clearing primitives in RenderCompositorSWGL
without having to use more expensive DrawTarget versions.

Differential Revision: https://phabricator.services.mozilla.com/D103252
2021-01-28 08:35:34 +00:00
smolnar 79d2008ba0 Backed out 2 changesets (bug 1689245) for causing failures in CompositorWidget. CLOSED TREE
Backed out changeset 60ad4f4b141d (bug 1689245)
Backed out changeset 778ecad5812e (bug 1689245)
2021-01-28 10:25:13 +02:00
Lee Salzman 6f71c89411 Bug 1689245 - replace CompositorWidget::ClearBeforePaint with GetTransparentRegion. r=mattwoodrow
ClearBeforePaint put the responsibility of clearing the current frame's DrawTarget
onto the widget. This doesn't compose well with WR RenderCompositor that may do
their own internal clearing. Instead, replace this with a GetTransparentRegion API
that can be used by RenderCompositors to limit where they clear so that they are
now fully responsible for clearing.

Differential Revision: https://phabricator.services.mozilla.com/D103253
2021-01-28 05:35:55 +00:00
Lee Salzman 271d12aca9 Bug 1689245 - implement GL_ARB_clear_texture extension for SWGL. r=mattwoodrow
GL_ARB_clear_texture implements some useful GL entry-points for clears
that can clear arbitrary sub-rects of the screen without having to latch
or disturb GL state. This refactors the glClear implementation to be in
terms of the provided glClearTexSubImage extension which is far more
flexible.

This further allows us to reuse clearing primitives in RenderCompositorSWGL
without having to use more expensive DrawTarget versions.

Differential Revision: https://phabricator.services.mozilla.com/D103252
2021-01-28 05:36:36 +00:00
Matt Woodrow 2a0c7c976f Bug 1687124 - Pass tile valid rect into invalidate_tile, so that this is available in time for begin_compositing. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D102667
2021-01-27 03:17:41 +00:00
Matt Woodrow 05e2b31dac Bug 1687124 - Make RenderCompositorSWGL clear the non-opaque dirty areas. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102666
2021-01-27 03:17:29 +00:00
Matt Woodrow eb7fe574cb Bug 1687124 - Make SwCompositor compute the set of opaque rectangles, and forward this to the RenderCompositor. r=gw,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102665
2021-01-27 03:17:16 +00:00
Bogdan Tara 5eded5baf9 Backed out 3 changesets (bug 1687124) for webrender_bindings related failure CLOSED TREE
Backed out changeset 8832f33fa266 (bug 1687124)
Backed out changeset 27de9357456e (bug 1687124)
Backed out changeset b9ca229672d5 (bug 1687124)
2021-01-27 04:04:10 +02:00
Matt Woodrow 5cbbfdc99f Bug 1687124 - Pass tile valid rect into invalidate_tile, so that this is available in time for begin_compositing. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D102667
2021-01-27 00:48:06 +00:00
Matt Woodrow 7700b29cec Bug 1687124 - Make RenderCompositorSWGL clear the non-opaque dirty areas. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102666
2021-01-26 07:03:00 +00:00
Matt Woodrow 1875a8e5ab Bug 1687124 - Make SwCompositor compute the set of opaque rectangles, and forward this to the RenderCompositor. r=gw,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102665
2021-01-26 06:53:05 +00:00
Andrew Osmond a750b3733f Bug 1680759 - Enable EGL robustness with WebRender on Linux. r=jgilbert
This patch enables EGL robustness with WebRender. It also tries harder
to get RBAB, favouring KHR+RBAB over EXT-RBAB, as testing with Intel and
NVIDIA Mesa drivers on Ubuntu suggests we can get KHR+RBAB but not
EXT+RBAB. It also adds support for requesting NVIDIA specific resets via
EGL_NV_robustness_video_memory_purge.

Differential Revision: https://phabricator.services.mozilla.com/D102971
2021-01-26 02:25:08 +00:00
sotaro 726fe3fae9 Bug 1687889 - Add more error handling of FLIP_SEQUENTIAL r=nical
When CompositorHwnd does not exist, FLIP_SEQUENTIAL could not be used, since it could cause a problem like Bug 1435995. For example, CompositorHwnd creation could be failed on Win7.

Differential Revision: https://phabricator.services.mozilla.com/D102531
2021-01-25 22:11:51 +00:00
stransky 0c7400ee46 Bug 1674473 [Linux] SW-WR Clear background when painting popup windows, r=lsalzman
Clear alpha from buffer before painting transparent windows by SW Webrender to avoid rendering artifacts.

Differential Revision: https://phabricator.services.mozilla.com/D102189
2021-01-20 21:11:48 +00:00
Jeff Muizelaar 061b4b0ee9 Bug 1687856 - Remove unneeded Cargo.lock. r=kvark
I believe this was unintentionally added in bug 1637092.

Differential Revision: https://phabricator.services.mozilla.com/D102521
2021-01-21 15:41:03 +00:00
Lee Salzman 8f06a347bd Bug 1687265 - clear out old SWGL framebuffer after frame ends. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D102493
2021-01-21 00:42:11 +00:00
sotaro d99c416a10 Bug 1684412 - Pass only valid rests to Present1() r=nical
Empty rect causes error on Present1().

Differential Revision: https://phabricator.services.mozilla.com/D101557
2021-01-20 22:28:50 +00:00
sotaro eab83ab323 Bug 1686848 - Add fallback handling of FLIP_SEQUENTIAL init failure r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D101856
2021-01-16 22:28:06 +00:00
Sylvestre Ledru d4d28b7263 Bug 1617369 - Reformat recent rust changes with rustfmt r=emilio
Updated with rustfmt 1.4.18-stable (8157a3f 2020-07-15)

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D100935
2021-01-16 15:36:39 +00:00
sotaro f20d0b5b46 Bug 1686860 - Relax version check for CreateSwapChainForHwnd() in RenderCompositorANGLE::CreateSwapChain() r=jrmuizel
The change is related to  Bug 1686805.

Differential Revision: https://phabricator.services.mozilla.com/D101863
2021-01-15 03:08:27 +00:00
Barret Rennie 2d384c7f0e Bug 1683217 - Require non-zero window size for profiler screenshots in WebRender r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D101685
2021-01-14 22:18:54 +00:00
Alexis Beingessner 4dd35ffb42 Bug 1686158 - make max_bands atomic. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D101653
2021-01-14 01:20:12 +00:00
Jamie Nicol 3591b6e8cb Bug 1685563 - Store non-subpixel-AA glyphs in R8 texture rather than BGRA8. r=lsalzman
Add a new texture type alpha8_glyphs to the texture cache and store
alpha glyphs in it. Because the opengl texture format is R8 but the
shader requires to read the texture's alpha channel, we must swizzle
the components. We cannot rely on texture swizzling due to driver
bugs, so add the necessary code to the shader to do so manually.

Differential Revision: https://phabricator.services.mozilla.com/D101643
2021-01-13 22:51:07 +00:00
Lee Salzman 1de55e6b04 Bug 1676762 - don't directly map DT in RenderCompositorSWGL when buffering is requested. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D101533
2021-01-13 03:49:53 +00:00
Lee Salzman 19f0da9579 Bug 1686363 - offset source and dest rectangles for partial surfaces in RenderCompositorSWGL. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D101521
2021-01-13 02:01:50 +00:00
Lee Salzman e2aaaf0c12 Bug 1686363 - handle case in RenderCompositorSWGL where DT is size of window. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D101513
2021-01-13 00:04:16 +00:00
Matt Woodrow 13d9ff3426 Bug 1679585 - Ensure we always set an overlap for invalidated tiles. r=lsalzman
In rare cases, WR can invalidate a tile, but still compute a dirty rect that doesn't intersect that tile.
flush_composites expects all updated tiles to have recorded at least one overlap (for itself), so we set this manually (as we in the normal path after the early return).

Differential Revision: https://phabricator.services.mozilla.com/D101427
2021-01-12 21:33:25 +00:00
Brad Werth 3e6d3530c3 Bug 1685046: Hoist release asserts in RenderCompositorNativeOGL::Bind to crash earlier. r=jrmuizel
This change spreads the release asserts to functions that are invoked by other
callers, potentially increasing the cases where the assert will fail. This is
being done intentionally; we want additional information on the reasons for
the crashes.

Differential Revision: https://phabricator.services.mozilla.com/D101063
2021-01-11 15:49:09 +00:00
Lee Salzman 50180b37c8 Bug 1679215 - limit SWGL compositing to dirty region. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D101256
2021-01-10 23:27:01 +00:00
Lee Salzman 8bee9f98ac Bug 1679215 - add support for StartCompositing hook to RenderCompositor. r=mattwoodrow
We need to be able to delay instantiation of the drawing region until after we have the
dirty rects from start_compositing. This was currently not routed to RenderCompositor,
which is required to do this. Further, SwCompositor needs to always keep track of the
RenderCompositor that it is associated with regardless of whether or not it is a native
compositor so that this hook can be properly engaged.

Differential Revision: https://phabricator.services.mozilla.com/D100974
2021-01-10 23:26:23 +00:00
Matt Woodrow 1af68ae8c4 Bug 1685437 - Add multiple texture methods to RenderCompositorD3D11SWGL. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D100972
2021-01-10 22:49:39 +00:00
Jim Blandy 692a10e624 Bug 1681610: Use thicker borders when faking rounded rectangles. r=gw
`DisplayListBuilder::PushRoundedRect`, used for unordered list bullets and the
like, draws rounded rectangles as ordinary rectangles with rounded borders that
have a radius of half the rectangle. Unfortunately, this leads to tiny white
dots at the center of the bullet under some magnifications. I haven't diagnosed
why - perhaps there's something somewhere that snaps borders outward.

Increasing the thickness of the borders to (an impossible) 60% of the width of
the rectangle makes the problem go away. If this kludge doesn't work, we could
add a rectangle covering the center.

Differential Revision: https://phabricator.services.mozilla.com/D100753
2021-01-09 19:55:03 +00:00
sotaro cc894cd938 Bug 1685356 - Do not try to create EGLSurface when ANativeWindow size is too big r=nical
When ANativeWindow size is too big, EGLSurface creation could fail. And it should not happen on normal use case. But the error situation happens during org.mozilla.geckoview.test.ScreenshotTest.giantScreenshot.

Differential Revision: https://phabricator.services.mozilla.com/D101128
2021-01-08 10:59:17 +00:00
Dzmitry Malyshau 093ed43459 Bug 1675615 - Move WR shading module into the renderer r=nical
Differential Revision: https://phabricator.services.mozilla.com/D100941
2021-01-07 16:29:55 +00:00
sotaro 06a65d02a0 Bug 1685241 - Disable WebRender rendering when RenderCompositorEGL is paused r=nical
Crash could happen with WebRender rendering when RenderCompositorEGL is not ready for rendering. With the change, RenderCompositorEGL::BeginFrame() is not called when RenderCompositorEGL is not ready.

Differential Revision: https://phabricator.services.mozilla.com/D100871
2021-01-07 10:23:30 +00:00
Sylvestre Ledru b58ddc19df Bug 1519636 - Reformat recent changes to the Google coding style r=andi
Updated with Debian clang-format version 11.0.1-1

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D100934
2021-01-06 17:17:23 +00:00
sotaro c1ea187aa6 Bug 1685253 - Fix error handling of RenderCompositorEGL::Resume() r=nical
Changed as to return false when resume fails.

Differential Revision: https://phabricator.services.mozilla.com/D100872
2021-01-06 12:12:42 +00:00
sotaro eee67f5e4d Bug 1683988 - Do not pass unnecessary objects for software WebRender r=nical
Differential Revision: https://phabricator.services.mozilla.com/D100375
2021-01-04 09:29:38 +00:00
sotaro 6b0b8a1249 Bug 1681756 - Fix return of RenderCompositorANGLE::GetBufferSize() r=nical
I missed to read a review comment of D100220.

Differential Revision: https://phabricator.services.mozilla.com/D100456
2021-01-04 09:47:29 +00:00
Andi-Bogdan Postelnicu 7b246e293f Bug 1683551 - Make `gfx` buildable outside of `unified-build` environment. r=sg,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D100209
2021-01-04 14:20:17 +00:00
sotaro 8ba200bf20 Bug 1682753 - Add device reset handling to RenderCompositorD3D11SWGL r=aosmond
Implementation is borrowed from RenderCompositorANGLE::IsContextLost().

Differential Revision: https://phabricator.services.mozilla.com/D100376
2020-12-24 16:35:56 +00:00
Jeff Muizelaar e6dad53841 Bug 1683966. Add some more objc autorelease pools. r=mstange
This isn't very systematic as I'm not sure the best approach for that
yet. That being said, this captures the bulk of the autoreleases without
that happen without a pool.

Differential Revision: https://phabricator.services.mozilla.com/D100363
2020-12-23 04:02:43 +00:00
sotaro 896fb71c16 Bug 1681756 - Make RenderCompositorANGLE::GetBufferSize() to be positive with native compositor r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D100220
2020-12-21 23:40:59 +00:00
sotaro 213161e79e Bug 1683606 - Avoid crash by using ID3D11Texture2D that uses obsoleted ID3D11Device r=mattwoodrow
Usage of ID3D11Texture2D that uses obsoleted ID3D11Device caused crash.

Differential Revision: https://phabricator.services.mozilla.com/D100225
2020-12-21 23:40:14 +00:00
Sylvestre Ledru 00977921cb Bug 1617369 - Reformat recent rust changes with rustfmt r=emilio DONTBUILD
Updated with rustfmt 1.4.24-stable (eb894d5 2020-11-05)

# ignore-this-changeset

Depends on D100230

Differential Revision: https://phabricator.services.mozilla.com/D100231
2020-12-21 12:15:49 +00:00
sotaro 7c2f93d578 Bug 1683268 - Fix redundant ID3D11Device::OpenSharedResource() calls r=nical
When ID3D11Texture2Ds are already opened, we do not need to call the OpenSharedResource().

Differential Revision: https://phabricator.services.mozilla.com/D100099
2020-12-18 23:06:03 +00:00
sotaro 128b5a46c5 Bug 1683248 - Stop to pass WebRenderShaders to software WebRender r=nical
Differential Revision: https://phabricator.services.mozilla.com/D100080
2020-12-18 22:38:56 +00:00
sotaro 3d7b9d1062 Bug 1683247 - Stop to create shared GL and WebRenderShaders in RenderDXGITextureHost::GetD3D11Texture2D() r=nical
sw-wr does not need shared GL and WebRenderShaders.

Differential Revision: https://phabricator.services.mozilla.com/D100081
2020-12-18 22:38:22 +00:00
Glenn Watson 422112d55d Bug 1683242 - Make external_scroll_id required when defining scroll frames. r=nical,aosmond
It's always supplied by Gecko anyway, and being able to rely on this
will make it easier to create stable spatial node IDs that persist
across display lists.

Differential Revision: https://phabricator.services.mozilla.com/D100076
2020-12-18 16:02:55 +00:00
Nicolas Silva 316d3394f3 Bug 1624264 - Use different texture cache sizes for popup windows. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D99771
2020-12-18 09:27:19 +00:00
Andrew Osmond 627b3749af Bug 1682876 - Better handle Linux NVIDIA device resets, and unflushed device resets. r=sotaro,jgilbert
These NVIDIA device resets are specific to Linux and trying to handle
them more gracefully is increasingly difficult. There are many
textures/buffers that we need to clear inside WebRender, but attempting
to add them to the list has proved difficult due to the number of places
we need to add, as well as race conditions with clearing them. Given
this shouldn't happen often, it doesn't seem worth optimizing for and we
should treat it just as an innocent device reset.

Testing this revealed an issue during recovery where unflushed device
resets were not handled as expected. When we checked for errors after
creating a new GL context, we would encounter a GL_CONTEXT_LOST error
which we failed to recover from. This is because we called
GLContext::fGetError instead of the GL method directly; the context lost
state was saved in mContextLost, and any subsequent calls to
GLContext::fGetError would continue to return GL_CONTEXT_LOST.

Differential Revision: https://phabricator.services.mozilla.com/D99905
2020-12-18 12:52:00 +00:00
sotaro 148fe8e9fc Bug 1682735 - Add error log to DCLayerTree::CreateSurface() r=nical
Add a log for understanding Bug 1681756.

Differential Revision: https://phabricator.services.mozilla.com/D99860
2020-12-16 12:05:01 +00:00
Lee Salzman 656be1724e Bug 1676862 - ensure wr_notifier_wake_up passes through UpdateAndRender. r=mstange
wr_notifier_wake_up uses RenderThread::WakeUp, which in turn just directly
calls Renderer::Update. As a side-effect, this can queue a composite to the
main framebuffer deep inside the renderer, but without having gone through
the normal pathway of Renderer::UpdateAndRender. UpdateAndRender ensures
that any RenderCompositor is properly prepared for the frame by calling
BeginFrame and other hooks as appropriate. But since we went through just
Update instead, there is never any call to BeginFrame and the SWGL framebuffer
never gets a chance to be properly set up in the RenderCompositor. In such
cases that we actually need to composite to the framebuffer, it seems more
appropriate to call UpdateAndRender, which also supports a boolean indicating
whether or not we actually intend to render something. To further simplify,
we just reuse the existing HandleFrameOneDoc handler to avoid needing separate
entry-points into UpdateAndRender.

Differential Revision: https://phabricator.services.mozilla.com/D99733
2020-12-16 03:47:08 +00:00
Andrew Osmond 00670ed214 Bug 1682367 - Add crash report annotation for which WebRender shader is being compiled. r=jrmuizel,chutten
This patch adds infrastructure for crash reporter annotations to
WebRender. This is used to expose the new annotation,
GraphicsCompileShader, to indicate which shader we are in the process of
compiling. We often see crash reports when compiling shaders, and it
would be useful to know which one it is compiling.

This also adds another annotation, IsWebRenderResourcePathOverridden,
which is useful to know if someone overrode the shader resource path for
testing purposes. We can likely ignore any crash reports that have this
annotation set.

Differential Revision: https://phabricator.services.mozilla.com/D99736
2020-12-15 16:24:04 +00:00
Jeff Muizelaar 109e9c3b20 Bug 1679578. Memory report RenderTextureHosts in mRenderTextures. r=mattwoodrow
There might be some overlap with memory counted elsewhere and some of
the size calculations could be wrong but it should give us an overall
picture.

Differential Revision: https://phabricator.services.mozilla.com/D99562
2020-12-15 15:37:11 +00:00
Lee Salzman 822746ce14 Bug 1676862 - add some debug asserts to discern if/why SWGL LockFramebuffer fails. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D99724
2020-12-14 22:39:37 +00:00
sotaro 9cba7102e4 Bug 1681869 - Add screenshots and frame recording support to RenderCompositorD3D11SWGL r=mstange
Implementation mimics RenderCompositorNative and uses Compositor screenshot handling.

Differential Revision: https://phabricator.services.mozilla.com/D99418
2020-12-11 21:41:45 +00:00
Nika Layzell 6d17703514 Bug 1678463 - Part 1: Add _WITH_DELETE_ON_EVENT_TARGET macros to nsISupportsImpl, r=mccr8
This also migrates all existing users of _WITH_MAIN_THREAD_DESTRUCTION to the
new macro in nsISupportsImpl.

Differential Revision: https://phabricator.services.mozilla.com/D97825
2020-12-14 18:30:51 +00:00
Jamie Nicol 679d0b1173 Bug 1682230 - Don't call eglSetDamageRegion if buffer age is disabled. r=aosmond
If gfx.webrender.allow-partial-present-buffer-age is false then we do
not query the egl buffer age, and always render the entire
backbuffer. However, we were still calling eglSetDamageRegion if
KHR_partial_present is available. Calling eglSetDamageRegion without
first querying the buffer age is an error, which was causing an
assertion failure in debug builds. To fix this, check the value of the
pref before calling eglSetDamageRegion.

Differential Revision: https://phabricator.services.mozilla.com/D99659
2020-12-14 11:40:53 +00:00
Andrew Osmond c5e26aebfa Bug 1681671 - Ensure we clear cached DMABuf textures during an NVIDIA video memory device reset. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D99597
2020-12-14 00:26:18 +00:00
Andrew Osmond e73a5b9a7c Bug 1681563 - Record WebRender device resets in telemetry and crash reports on non-Windows. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D99346
2020-12-10 14:26:32 +00:00
Markus Stange 84b150a119 Bug 1677929 - Stop passing aEpochsBeingRendered to WebRender's APZ sampling callback, because it's now unused. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D99144
2020-12-09 03:38:31 +00:00
Markus Stange 7b0ccf01a3 Bug 1677929 - Add a way to specify an ID for a generated frame, and propagate the ID to the APZSampler. r=gw,kats
This ID allows the compositor to track per-frame information from frame
generation, through APZ sampling, to the NotifyDidRender notification.

Differential Revision: https://phabricator.services.mozilla.com/D97535
2020-12-09 03:35:50 +00:00
Markus Stange 213d8def5d Bug 1677929 - Extract the 'root' parts of NotifyPipelineRendered into a new method called NotifyDidRender. r=mattwoodrow
This reduces some code duplication, and makes it clear which things we want to
do only once per window, and which things we want to do once per pipeline / CompositorBridge.

This change affects the ordering of messages, but hopefully not in a way that
anybody was relying on. Specifically, the image notifications are now sent before
the NotifyDidPaint for the root CompositorBridge is sent.

Differential Revision: https://phabricator.services.mozilla.com/D97533
2020-12-08 22:21:37 +00:00
Andrew Osmond 45b5262f91 Bug 1632698 - Better handle device resets when we don't have a GPU process. r=sotaro,kvark,nical
Aside from on Windows, we do not appear to handle device resets properly
without the GPU process. This patch adds in the necessary plumbing to
handle the device reset properly. It also ensures that whenever we check
for a device reset reason, we handle all of the reasons (e.g. not just
the NV video memory purge reset reason) to ensure they are not lost, and
handles them all consistently in the same manner.

It also tracks the number of device resets for thresholding purposes
with an in process compositor. While it will only disable WebRender on
Linux at this time, it will put a note in the critical log if the
threshold was exceeded on all platforms. This may prove useful in
evaluating whether or not we should do the same everywhere.

Differential Revision: https://phabricator.services.mozilla.com/D98705
2020-12-07 20:36:11 +00:00
Xidorn Quan 8799a09b16 Bug 1661961 - Upgrade cstr to 0.2.x. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D98839
2020-12-07 08:01:04 +00:00
Glenn Watson 2ce239352c Bug 1679939 - Remove experimental PLS functionality. r=jnicol,nical
The pixel-local-storage functionality was an experiment for faster
drawing of clip masks on low end tiled GPUs. However, it's never
reached a point where it was shippable and showing clear performance
wins.

This patch removes the experimental PLS support - we can always
revive it from git history if we ever want to consider it again.

Differential Revision: https://phabricator.services.mozilla.com/D98290
2020-12-01 19:28:19 +00:00
Sylvestre Ledru 3412ec2dcb Bug 1617369 - Reformat recent rust changes with rustfmt r=emilio DONTBUILD
# ignore-this-changeset

Depends on D98301

Differential Revision: https://phabricator.services.mozilla.com/D98302
2020-12-01 13:51:20 +00:00
Simon Giesecke 971b645fe3 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Simon Giesecke d1c992db5d Bug 1677284 - Remove unused includes of Variant.h. r=andi
Differential Revision: https://phabricator.services.mozilla.com/D97076
2020-11-23 15:49:20 +00:00
Matt Woodrow 67114e4901 Bug 1678493 - Use the clipped dest area when computing bands so that they're evenly spread across the pixels actually drawn. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D97708
2020-11-20 07:00:38 +00:00
Matt Woodrow c913d6b79e Bug 1678493 - Pass the SwCompositor clip rect into the inner Composite code rather than intersecting if beforehand. r=lsalzman
The composite code uses the size of the dest rect to determine scaling, and we don't want this to be affected by the clip.

Differential Revision: https://phabricator.services.mozilla.com/D97707
2020-11-20 07:24:20 +00:00
Matt Woodrow 6f60512d7c Bug 1678493 - Don't support having both a native gl context and a native compositor in SwCompositor. r=lsalzman
This combination is never used, and adds complexity to support.

Differential Revision: https://phabricator.services.mozilla.com/D97706
2020-11-20 07:25:24 +00:00
Matt Woodrow 75ddcbd75d Bug 1678493 - Intersect the dirty rect with the compositor surface clip rect in SwCompositor. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D97705
2020-11-20 07:25:31 +00:00
Gerald Squelart b3314a1582 Bug 1675409 - Removed now-unused ProfilerMarkerPayload and all dependencies - r=gregtatum,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D96054
2020-11-18 21:56:57 +00:00
Razvan Maries b7eeb731df Backed out 23 changesets (bug 1675409) for build bustages on Preferences.cpp. CLOSED TREE
Backed out changeset c1a131a55767 (bug 1675409)
Backed out changeset 47d210802a5d (bug 1675409)
Backed out changeset e8ebb1c58d30 (bug 1675409)
Backed out changeset 69a1e9aeff2a (bug 1675409)
Backed out changeset 68f330b387a8 (bug 1675409)
Backed out changeset e4750d9ef5a1 (bug 1675409)
Backed out changeset bb6bb71e5ab3 (bug 1675409)
Backed out changeset 988d7f4716df (bug 1675409)
Backed out changeset ca41382e891c (bug 1675409)
Backed out changeset 90f3fbbbbeda (bug 1675409)
Backed out changeset 9b109d61a6f6 (bug 1675409)
Backed out changeset 3dd66abfdaa2 (bug 1675409)
Backed out changeset 44181df5f0db (bug 1675409)
Backed out changeset bb2603d947fc (bug 1675409)
Backed out changeset 97055cf20a56 (bug 1675409)
Backed out changeset f88fcf09de0d (bug 1675409)
Backed out changeset 7963e1c49786 (bug 1675409)
Backed out changeset 4c379c1061c3 (bug 1675409)
Backed out changeset b8be8ae7da63 (bug 1675409)
Backed out changeset 0b90aa89421e (bug 1675409)
Backed out changeset c10fb46467c9 (bug 1675409)
Backed out changeset 894ac233b290 (bug 1675409)
Backed out changeset 075d1d8e34c2 (bug 1675409)
2020-11-18 20:06:28 +02:00
Lee Salzman ebb7f57ce7 Bug 1677514 - cache current SwCompositeGraphNode with AtomicPtr to avoid locking mutex for every band. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D97361
2020-11-18 04:51:50 +00:00
Gerald Squelart ced008cc9f Bug 1675409 - Removed now-unused ProfilerMarkerPayload and all dependencies - r=gregtatum,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D96054
2020-11-17 22:26:20 +00:00
Glenn Watson 3170eddbd0 Bug 1675414 - Fix incorrect skipping of composites in some cases. r=nical
In the following circumstances, WR was failing to detect a
composite was required:
 - There is a picture cache slice that is smaller than a single tile.
 - The position of that picture cache slice is changed.
 - No other content invalidations occur.

This clip rect in the composite descriptor must include the
device_valid_rect rather than the tile device_rect. This ensures
that in the case of a picture cache slice that is smaller than a
single tile, the clip rect in the composite descriptor will change
if the position of that slice is changed. Otherwise, WR may conclude
that no composite is needed if the tile itself was not invalidated
due to changing content.

Differential Revision: https://phabricator.services.mozilla.com/D96966
2020-11-17 19:24:16 +00:00
Mihai Alexandru Michis c0d25b01b2 Backed out 24 changesets (bug 1666566, bug 1675409) for causing hazard failures in profiler/core/platform.cpp
CLOSED TREE

Backed out changeset 4d8af8533fd4 (bug 1666566)
Backed out changeset f031a3a8a20f (bug 1675409)
Backed out changeset 2b7e1a031921 (bug 1675409)
Backed out changeset bda5a24b2d0a (bug 1675409)
Backed out changeset 4282e2284314 (bug 1675409)
Backed out changeset 0637f1b26e9f (bug 1675409)
Backed out changeset 67ae04c8f607 (bug 1675409)
Backed out changeset 6c7b3f3618ef (bug 1675409)
Backed out changeset 2f325c22d169 (bug 1675409)
Backed out changeset 1e48ff70ad8f (bug 1675409)
Backed out changeset 1dfc32d6871d (bug 1675409)
Backed out changeset 4f1f218a777b (bug 1675409)
Backed out changeset e6ac8722b38e (bug 1675409)
Backed out changeset cf132e15fb57 (bug 1675409)
Backed out changeset a126e6b00ba9 (bug 1675409)
Backed out changeset fbc7fbb04f33 (bug 1675409)
Backed out changeset 554c69681474 (bug 1675409)
Backed out changeset 44d0521c701f (bug 1675409)
Backed out changeset 04653dfe4720 (bug 1675409)
Backed out changeset 41ca2c043a00 (bug 1675409)
Backed out changeset 264ae4c805d4 (bug 1675409)
Backed out changeset 5f3bbdac0d52 (bug 1675409)
Backed out changeset 11311c11a6e8 (bug 1675409)
Backed out changeset 0355fbc44baf (bug 1675409)
2020-11-17 19:31:28 +02:00
Gerald Squelart f8c24dd6a4 Bug 1675409 - Removed now-unused ProfilerMarkerPayload and all dependencies - r=gregtatum,necko-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D96054
2020-11-17 11:40:46 +00:00
Sylvestre Ledru 0dee1b74e8 Bug 1676513 - Fix clippy warnings r=emilio,webdriver-reviewers,whimboo,rhunt
Depends on D96634

Differential Revision: https://phabricator.services.mozilla.com/D96636
2020-11-17 12:02:22 +00:00
Lee Salzman 8b495f9b45 Bug 1677514 - always wait for SwComposite jobs to become available when job count is non-zero. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D97243
2020-11-17 02:06:49 +00:00
Lee Salzman 6d68b3a282 Bug 1677514 - always signal that SwComposite jobs are available when they are sent. r=jrmuizel
Fix an unintentional bug where I had not originally anticipated the renderer
thread to be waiting on the jobs available condition, so had avoided trying to
signal the condition. Later revisions of the patch then made the thread wait on
the condition, so it is always necessary to signal from either thread sending
jobs to make sure either thread wakes up when necessary to process jobs.

Differential Revision: https://phabricator.services.mozilla.com/D97194
2020-11-16 18:56:58 +00:00
Lee Salzman 6bdcedb745 Bug 1677236 - don't require padding for SWGL FBO textures. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D97061
2020-11-16 16:43:23 +00:00
Andrew Osmond ca9f3b661d Bug 1677165 - Add support for partial present to GLX. r=kvark,jgilbert
This adds support for GLX_EXT_buffer_age if available to minimize how
much must be redrawn when using GLX.

Differential Revision: https://phabricator.services.mozilla.com/D93098
2020-11-13 18:41:41 +00:00
Matt Woodrow 7edd8e0527 Bug 1677211 - Add Read access flags to D3D11 staging textures to avoid slow accesses when reading our intermediate results. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D97106
2020-11-16 03:21:52 +00:00
Matt Woodrow c347392269 Bug 1676719 - Allow WebRender ANGLE in parent process for Nightly. r=jrmuizel
Depends on D96766

Differential Revision: https://phabricator.services.mozilla.com/D96768
2020-11-12 01:31:19 +00:00
Matt Woodrow d418438c0c Bug 1676719 - Only attempt a partial present when we have DXGI 1.2 available. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D96766
2020-11-12 01:30:10 +00:00
Matt Woodrow 35b11ac2f9 Bug 1676332 - Use D3D11 staging textures within RenderCompositorD3D11SWGL for faster uploads. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D96665
2020-11-12 01:21:41 +00:00
Lee Salzman 238f5569e7 Bug 1670328 - reduce stack size for SwComposite threads. r=mattwoodrow
There appears to be a substantial overhead for trying to wake cold threads
from a thread pool (especially with rayon), so for now let's leave the existing
thread spawning in place, but reduce the stack size for individual threads.
Since these threads only call into SWGL's composite routines and do little else,
there isn't much harm in having a small stack size.

Differential Revision: https://phabricator.services.mozilla.com/D96748
2020-11-11 20:24:38 +00:00
Lee Salzman 2443ca341f Bug 1670328 - use SwCompositeGraphNodeRef wrapper for cleaner node mutation. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D96732
2020-11-11 20:22:22 +00:00
Lee Salzman 0da6812d97 Bug 1670328 - remove crossbeam usage from SwCompositor. r=mattwoodrow
We seem to be spending a significant amount of time inside crossbeam channels
sending jobs across. Sending multiple bands for a given job tends to relock the
channel multiple times when ideally we only want to queue the job once, or lock
the channel once (neither of which we can conveniently do with crossbeam). To
alleviate this, I've implemented a more custom solution with a mutexed VecDeque
and some Condvars.

Differential Revision: https://phabricator.services.mozilla.com/D96520
2020-11-11 20:23:22 +00:00
smolnar 50215d649d Backed out 1 changesets (bug 1676332) for causing reftest failures. CLOSED TREE
Backed out changeset e767b7053baa (bug 1676332)
2020-11-11 10:27:34 +02:00
Matt Woodrow cf7e7e302d Bug 1676332 - Use D3D11 staging textures within RenderCompositorD3D11SWGL for faster uploads. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D96665
2020-11-11 03:54:36 +00:00
sotaro eff81341d5 Bug 1676550 - Add more overrides to RenderCompositorD3D11SWGL r=mattwoodrow
Some override functions do not have override.

Differential Revision: https://phabricator.services.mozilla.com/D96661
2020-11-11 02:02:24 +00:00
Matt Woodrow 912cfd9639 Bug 1674029 - Only commit the dirty rects in RenderCompositorSWGL. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D96495
2020-11-10 06:07:06 +00:00
Sylvestre Ledru 396275b3c3 Bug 1617369 - Reformat recent rust changes with rustfmt r=emilio
# ignore-this-changeset

Depends on D96608

Differential Revision: https://phabricator.services.mozilla.com/D96609
2020-11-10 19:10:16 +00:00
Matt Woodrow a289a86c53 Bug 1675665 - Don't draw surfaces if we're not currently presenting a frame. r=lsalzman
WR can run an update which outputs the compositor surfaces, but never calls Begin/EndFrame.

Differential Revision: https://phabricator.services.mozilla.com/D96380
2020-11-09 22:05:46 +00:00
Jamie Nicol e17f6c30ce Bug 1661528 - Update gleam to 0.13.1. r=kvark
Provides glBufferStorage and glFlushMappedBufferRange, and fixes
glClientWaitSync's return type.

Differential Revision: https://phabricator.services.mozilla.com/D96023
2020-11-07 00:30:09 +00:00
Matt Woodrow ec72f3a124 Bug 1673983 - Support using D3D11 textures as external compositor surfaces with D3D11 compositor. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95800
2020-11-06 00:01:54 +00:00
Matt Woodrow 979882e86f Bug 1673983 - Add RenderTextureHostSWGL support to D3D11 RenderTextureHosts. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95799
2020-11-06 00:01:36 +00:00
Matt Woodrow 603d0db408 Bug 1673983 - Add D3D11 RenderCompositor for SWGL. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95797
2020-11-06 00:00:47 +00:00
Narcis Beleuzu 37bd723824 Backed out 4 changesets (bug 1673983) for linting failure on moz.build CLOSED TREE
Backed out changeset f408fc890ba1 (bug 1673983)
Backed out changeset 49ae9de85ab9 (bug 1673983)
Backed out changeset 91d8f0f829fd (bug 1673983)
Backed out changeset 91cb8ee8ddd8 (bug 1673983)
2020-11-06 00:10:34 +02:00
Matt Woodrow d3116d3c9e Bug 1673983 - Support using D3D11 textures as external compositor surfaces with D3D11 compositor. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95800
2020-11-05 19:27:23 +00:00
Matt Woodrow 489a752d51 Bug 1673983 - Add RenderTextureHostSWGL support to D3D11 RenderTextureHosts. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95799
2020-11-05 20:18:13 +00:00
Matt Woodrow 50873a9666 Bug 1673983 - Add D3D11 RenderCompositor for SWGL. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95797
2020-11-05 19:26:21 +00:00
Glenn Watson 007ecb6d4f Bug 1675159 - Pt 2 - Expose dirty rects to start_compositing. r=sotaro
Move the calculation of the dirty rects array earlier in frame
drawing, and supply that to the `start_compositing` method of
the compositor trait.

For now, it's assumed that the native compositor wants a single
dirty rect, and doesn't use buffer-age functionality. These
params will be configurable as part of the compositor capabilities
struct in follow up patches.

Differential Revision: https://phabricator.services.mozilla.com/D95828
2020-11-05 20:01:36 +00:00
smolnar 625b8a74be Backed out 4 changesets (bug 1673983) for causing build bustages in RenderCompositorD3D11SWGL. CLOSED TREE
Backed out changeset 134e621d0902 (bug 1673983)
Backed out changeset 81601a02d9b7 (bug 1673983)
Backed out changeset 72d4bf5b093e (bug 1673983)
Backed out changeset 99b2e5c55a25 (bug 1673983)
2020-11-05 11:40:36 +02:00
Matt Woodrow f59d6ceb00 Bug 1673983 - Support using D3D11 textures as external compositor surfaces with D3D11 compositor. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95800
2020-11-05 09:15:28 +00:00
Matt Woodrow b8c9f1b675 Bug 1673983 - Add RenderTextureHostSWGL support to D3D11 RenderTextureHosts. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95799
2020-11-05 09:15:05 +00:00
Matt Woodrow f9fe60e315 Bug 1673983 - Add D3D11 RenderCompositor for SWGL. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D95797
2020-11-05 09:14:52 +00:00
Glenn Watson 38056c9366 Bug 1675159 - Pt 1 - Pass `buffer_age` via `render` rather than callback. r=jnicol
Implementing the Draw compositor via the native compositor interface
is simpler if the buffer age is passed into the top level render method.

Differential Revision: https://phabricator.services.mozilla.com/D95824
2020-11-04 22:12:40 +00:00
Dorel Luca 15bd274cab Backed out changeset 644505d8afbb (bug 1675159) for Browser-chrome failures in browser/base/content/test/general/browser_save_video_frame.js. CLOSED TREE 2020-11-05 00:08:32 +02:00
Glenn Watson 1b9c2f8652 Bug 1675159 - Pt 1 - Pass `buffer_age` via `render` rather than callback. r=jnicol
Implementing the Draw compositor via the native compositor interface
is simpler if the buffer age is passed into the top level render method.

Differential Revision: https://phabricator.services.mozilla.com/D95824
2020-11-04 20:04:02 +00:00
Sylvestre Ledru 31599d2440 Bug 1617369 - Reformat recent rust changes with rustfmt r=emilio,necko-reviewers
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D95435
2020-11-04 17:03:33 +00:00
Matt Woodrow 726340ba67 Bug 1674878 - Expose more detailed WR backend information to TextureFactoryIdentifier. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D95588
2020-11-03 18:24:43 +00:00
Jeff Muizelaar b91e9dc743 Bug 1674943. Ensure the CStrings live long enough. r=glandium
Differential Revision: https://phabricator.services.mozilla.com/D95643
2020-11-03 01:16:31 +00:00
Glenn Watson c1e5418cb9 Bug 1674690 - Remove DocumentLayer while retaining the rest of the Document API. r=nical
This removes some of the complexity in the renderer associated with
drawing multiple document layers in a single render. It retains
the rest of the document API, which will be used to implement the
functionality in bug #1654938.

Differential Revision: https://phabricator.services.mozilla.com/D95478
2020-11-02 20:27:58 +00:00
Ricky Stewart 02a7b4ebdf Bug 1654103: Standardize on Black for Python code in `mozilla-central`.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00
Bogdan Tara da1098d4aa Backed out 10 changesets (bug 1654103, bug 1672023, bug 1518999) for PanZoomControllerTest.touchEventForResult gv-junit failures CLOSED TREE
Backed out changeset ff3fb0b4a512 (bug 1672023)
Backed out changeset e7834b600201 (bug 1654103)
Backed out changeset 807893ca8069 (bug 1518999)
Backed out changeset 13e6b92440e9 (bug 1518999)
Backed out changeset 8b2ac5a6c98a (bug 1518999)
Backed out changeset 575748295752 (bug 1518999)
Backed out changeset 65f07ce7b39b (bug 1518999)
Backed out changeset 4bb80556158d (bug 1518999)
Backed out changeset 8ac8461d7bd7 (bug 1518999)
Backed out changeset e8ba13ee17f5 (bug 1518999)
2020-10-24 03:36:18 +03:00
Ricky Stewart c0cea3b0fa Bug 1654103: Standardize on Black for Python code in `mozilla-central`. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-23 20:40:42 +00:00
Lee Salzman 5b66b078c2 Bug 1671071 - support HDR formats in SWGL. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D94304
2020-10-22 03:59:17 +00:00
Dorel Luca 1ff59cb7a3 Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart 50762dacab Bug 1654103: Standardize on Black for Python code in `mozilla-central`. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-21 21:27:27 +00:00
Lee Salzman 14606fb8f8 Bug 1670139 - surface origin for RenderCompositorSWGL is top left. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D94348
2020-10-21 20:44:46 +00:00
Jean-Yves Avenard 5de404e405 Bug 1595994 - P1D. Properly serialize display size when sending image over IPC. r=mattwoodrow
The code always assumed that the size of the image with the Y plane dimensions, which, while often the case, isn't correct.
We remove the assertions that the display offset was always (0,0) and properly carry the actual data over IPC.

Remoting the theora decoder and enabling fast video copy exposed several other related issues in the various D3D11 image types.
Various WPT uses theora YUV44 images (because we do not support YUV444 H264 ones). Those images are made of 32 pixels planes with a display size set to 20 pixels. Prior P1D the backend image was a ShareYCbCrPlanar image which correctly handled the size settings.

Like the image serializer, the various D3D11 images always assumed that the Y plane size was the image size.

This however expose existing issues where the offset position of the display is completely ignored for some image type. See bug 1669054

All those problems explain why sometimes we displayed more pixels than we should have.

Depends on D91914

Differential Revision: https://phabricator.services.mozilla.com/D92233
2020-10-20 23:30:04 +00:00
Nicolas Silva 41bda13c88 Bug 1671289 - Improve WebRender's integrated profiler. r=gw
In a (large-ish) nutshell:

 - Consolidate all counters under a single type.
 - Counters are all arranged in an array and referred to via index.
 - All counters can be displayed as average+max (float/int), graph, and change indicator.
 - Specify what to show and in what form via a pref.
 - All counters and visualizations support not having values every frame.
 - GPU time queries visualization is easier to read relative to the frame budget:
  - If the maximum value is under 16ms, the right side of the graph is fixed at 16ms.
  - If the maximum value is above 16ms, draw a vertical bar at 16ms.
 - Added a few new profile counters:
  - Total frame CPU time (from API send to the end of GPU command submission).
  - Visibility, Prepare, Batching and Glyph resolve times.

The main change is how profile counters are represented. Instead of having different types for different visualizations, every counter is represented the same way, tracking average/max values over half a ms and optionally recording a graph over a number of frames. Counters are stored in a vector and referred to via index (See constants at the top of profiler.rs).
The main motivation for this storage is to facilitate adding counters without having to think too much about where to store them and how to pass them to the renderer.

The profiler's UI is defined by a string with with a single syntax:
 - Comma separated list of tokens (leading and trailing spaces ignored), which can be:
  - A counter name:
   - If prefixed with a '#' character, the counter is shown as a graph.
   - If prefixed with a '*' character, the counter is shown as a change indicator
   - By default (counter name without prefix), the counter is shown as average and max over half a second.
  - A preset name:
   - A preset is a builtin UI string in the same syntax that can be nested in the main UI string.
   - Presets are defined towards the top of profiler.rs and can also refer to other presets.
  - An empty token adds a  bit of vertical space.
  - A '|' token begins a new column.
  - A '_' token begins a new row.

Differential Revision: https://phabricator.services.mozilla.com/D93603
2020-10-20 08:54:04 +00:00
Narcis Beleuzu 1fa351142a Backed out 1 changesets (bug 1671289) for wrench bustages on profiler.rs . CLOSED TREE
Backed out changeset db80ac24d32f (bug 1671289)
2020-10-19 23:58:05 +03:00
Nicolas Silva b5e41f1e7e Bug 1671289 - Improve WebRender's integrated profiler. r=gw
In a (large-ish) nutshell:

 - Consolidate all counters under a single type.
 - Counters are all arranged in an array and referred to via index.
 - All counters can be displayed as average+max (float/int), graph, and change indicator.
 - Specify what to show and in what form via a pref.
 - All counters and visualizations support not having values every frame.
 - GPU time queries visualization is easier to read relative to the frame budget:
  - If the maximum value is under 16ms, the right side of the graph is fixed at 16ms.
  - If the maximum value is above 16ms, draw a vertical bar at 16ms.
 - Added a few new profile counters:
  - Total frame CPU time (from API send to the end of GPU command submission).
  - Visibility, Prepare, Batching and Glyph resolve times.

The main change is how profile counters are represented. Instead of having different types for different visualizations, every counter is represented the same way, tracking average/max values over half a ms and optionally recording a graph over a number of frames. Counters are stored in a vector and referred to via index (See constants at the top of profiler.rs).
The main motivation for this storage is to facilitate adding counters without having to think too much about where to store them and how to pass them to the renderer.

The profiler's UI is defined by a string with with a single syntax:
 - Comma separated list of tokens (leading and trailing spaces ignored), which can be:
  - A counter name:
   - If prefixed with a '#' character, the counter is shown as a graph.
   - If prefixed with a '*' character, the counter is shown as a change indicator
   - By default (counter name without prefix), the counter is shown as average and max over half a second.
  - A preset name:
   - A preset is a builtin UI string in the same syntax that can be nested in the main UI string.
   - Presets are defined towards the top of profiler.rs and can also refer to other presets.
  - An empty token adds a  bit of vertical space.
  - A '|' token begins a new column.
  - A '_' token begins a new row.

Differential Revision: https://phabricator.services.mozilla.com/D93603
2020-10-19 20:07:54 +00:00
Bob Owen e9515cbc26 Bug 1654477 P5: Add crashtest to trigger texture handle open failures. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D93674
2020-10-16 10:57:16 +00:00
Glenn Watson b4aecd470f Bug 1670842 - Pt 1 - Remove option to disable picture caching. r=jnicol
This patch removes the public API and high level logic for
disabling picture caching for debugging and pinch-zoom in
some cases.

Follow up patches will remove and simplify the internal parts
of WR that remain to handle the disabled picture caching
code path.

Differential Revision: https://phabricator.services.mozilla.com/D93446
2020-10-14 06:06:45 +00:00
Matt Woodrow 2de72f3cef Bug 1666055 - Merge IOSurface RenderTextureHosts, so that NativeLayerCA can handle surfaces passed through SWGL. r=lsalzman
NativeLayerCA only understands how to extract the IOSurface from a RenderMacIOSurfaceTextureHost.

Rather than trying to support both types, this just merges them, as they are both just an IOSurface pointer and some associated helper functions.

Differential Revision: https://phabricator.services.mozilla.com/D93181
2020-10-14 07:58:45 +00:00
Matt Woodrow 5487b02f9e Bug 1666055 - Remove RenderTextureHostOGL. r=lsalzman
This interface is never used directly, and the only consumers of the virtual functions are by the derived classes themselves.

Differential Revision: https://phabricator.services.mozilla.com/D93180
2020-10-14 07:58:18 +00:00
Matt Woodrow 324654797b Bug 1666055 - Disable buffer textures as external compositor surfaces on MacOS. r=lsalzman
When using the native RenderCompositor+SWGL on MacOS, we don't support passing buffer textures directly to the compositor.

Differential Revision: https://phabricator.services.mozilla.com/D93179
2020-10-14 07:56:47 +00:00
Lee Salzman ca9278009f Bug 1670164 - implement APPLE_rgb_422 extension in SWGL. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D93055
2020-10-12 07:10:12 +00:00
Kartikaya Gupta 719b5d3455 Bug 1666802 - Remove unused serializers. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D93145
2020-10-11 23:22:51 +00:00
Jamie Nicol 788a554a66 Bug 1670014 - Delay querying buffer age until it is actually needed. r=sotaro
Currently we query the backbuffer age in
RenderCompositor::BeginFrame(). Querying the age on android requires
the driver to dequeue a new backbuffer. By doing this right at the
start of the frame, we may cause the driver to block until a buffer is
ready.

We don't actually need the buffer age until part way through
rendering, in Renderer::composite_simple(), by which point there is a
better chance the buffer is available. So move the query to there instead.

Differential Revision: https://phabricator.services.mozilla.com/D92950
2020-10-09 08:25:43 +00:00
Jean-Yves Avenard 9e8b4a210f Bug 1630733 - Only attempt to use TextureHost if it's valid. r=mattwoodrow,nical
It is possible that when the ImageBridge received a new image to composite, that image hasn't yet been registered via the VideoBridge.

This can happen if the decoding occurs in the different process than the content process. Even though the VideoBridge registration message was sent earlier by the RDD process, the ImageBridge message sent by the content process reached the compositor earlier.

So we only attempt to use the TextureHost if it is valid and the underlying image has been properly registered. Otherwise we will continue to use the previous image.

Some methods are modified to lazily perform their action only once the image has been registered from the PVideoBridge.

Differential Revision: https://phabricator.services.mozilla.com/D92234
2020-10-09 02:54:30 +00:00
Jim Blandy f97fb69900 Bug 1669394: Draw rounded rectangles using WebRender borders. r=gw
The DisplayListBuilder::PushRoundedRect function is used for <li> bullets and a
few other decorations. It draws a rounded rectangle as an ordinary rectangle
with a rounded rect clip.

However, you can get the same effect by drawing a box border with rounded
corners around a box with zero width and height. This, WebRender can cache as a
bitmap and draw as an image. Clips are not cached in this way, and require extra
attention from WebRender to process.

Differential Revision: https://phabricator.services.mozilla.com/D92984
2020-10-08 20:22:57 +00:00
Lee Salzman 165e8d8f80 Bug 1623074 - support overlay surfaces being added late in frame in SwCompositor. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D92909
2020-10-08 18:49:39 +00:00
Kartikaya Gupta cfcbbaae93 Bug 1668921 - Update cbindgen version and generate ostream serializers for WR structs. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D92842
2020-10-08 09:24:36 +00:00
Glenn Watson 5eb6500eff Bug 1669567 - Use fixed size texture arrays for picture cache slices. r=jnicol
Previously we used a single texture array for a given tile size,
and resized the texture array as more tiles were needed.

However, this results in expensive driver stalls and GPU copy times
when resizing the array.

Instead, use a fixed slice count for each texture array, and support
multiple textures with the same tile size.

This may result in slightly more draw calls during compositing of
picture cache tiles due to batch breaks, but will remain a small
number due to the limited number of picture cache tiles that are
allocated at any one time.

Differential Revision: https://phabricator.services.mozilla.com/D92715
2020-10-07 21:58:06 +00:00
sotaro 4f1c35bfbd Bug 1669143 - Handle a case that GetDeviceOfEGLDisplay() returned nullptr r=nical
When ANGLE detects device reset, GetDeviceOfEGLDisplay() returns nullptr. It is not handled as device reset in current RenderCompositorANGLE::ShutdownEGLLibraryIfNecessary(). It should be handled as device reset.

Differential Revision: https://phabricator.services.mozilla.com/D92543
2020-10-06 09:31:05 +00:00
Nicolas Silva 1db54669eb Bug 1667696 - Use standard rust channels on Windows. r=jrmuizel
While we measuered somewhat surprisingly high performance improvements on linux when replacing standard channels with crossbeam ones on Linux, there has been a CONTENT_FRAME_TIME regression on Windows around the same time. In doubt, this patch makes us use standard channels on Windows to see if it fixes the regression. This patch will be reverted if it doesn't turn out restore the CONTENT_FRAME_TIME numbers.

Swgl needs to continue using crossbeam because it depends on select which doesn't exist in standard channels.

Differential Revision: https://phabricator.services.mozilla.com/D92383
2020-10-05 14:01:08 +00:00
Solomon Chiu 26f860a4a3 Bug 1667939 - Make the picture tile size configurable via pref. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D91759
2020-10-02 10:38:45 +00:00
Jamie Nicol 7adec85b80 Bug 1575765 - Implement KHR_partial_update for webrender. r=sotaro,jgilbert
KHR_partial_update allows us to avoid rerendering the entire
backbuffer every frame, and instead only render what has changed on
the current frame, as well as the difference between the current
backbuffer and the current frontbuffer. It works similarily to
EXT_buffer_age, which we already support, with the additional
requirement that we must call eglSetDamageRegion each frame before
rendering to the backbuffer.

Modify GLContextEGL::GetBufferAge() so that it queries the age if
either EXT_buffer_age or KHR_partial_update are available. This will
now automatically be queried by webrender through the
PartialPresentCompositor trait. Add a new function to that trait,
set_buffer_damage_region(), whose RenderCompositorEGL implementation
calls eglSetDamageRegion(). Call this from composite_simple(), once
the damage rect has been calculated but before rendering to the
backbuffer.

Additionally, change both RenderCompositorEGL and
RenderCompositorOGL's implementations of
ShouldDrawPreviousPartialPresentRegions() to unconditionally return
true, rather than checking for the existence of EXT_buffer_age (or
adding a new check for KHR_partial_update). The lack of these
extensions does not mean that webrender is able to skip rendering
previous frames' damage. Rather the opposite, it means we cannot
render *only* the previous frames' damage, and must instead always
render the entire buffer.

Differential Revision: https://phabricator.services.mozilla.com/D91203
2020-10-02 10:23:56 +00:00
Jamie Nicol 5d407f06e0 Bug 1656533 - Handle buffer ages other than 2 for EGL_EXT_buffer_age. r=sotaro,gw
Add a trait PartialPresentCompositor with a function get_buffer_age(),
and allow gecko to pass an implementation to webrender during
initialization. This allows webrender to query the age of the current
backbuffer during compositing.

Make webrender track the previous 2 frame's dirty rects, rather than
just the previous 1 frame's, allowing it to calculate the total damage
rect for buffer ages of up to 3. If the age is greater than 3, treat
the entire buffer as invalid. Also handle special cases of ages 0 and
1, 0 meaning the entire buffer is invalid, and 1 meaning the entire
buffer is valid. Make gecko stop requesting a full render for buffer
ages other than 2, as webrender can now handle these cases itself.

Differential Revision: https://phabricator.services.mozilla.com/D91202
2020-10-02 10:23:49 +00:00
Razvan Maries 63b41aa30f Backed out 3 changesets (bug 1656533, bug 1575765) for WebRender bustages. CLOSED TREE
Backed out changeset 84c31fd9ff82 (bug 1575765)
Backed out changeset 48c1532d1d9d (bug 1575765)
Backed out changeset ed9075d9319b (bug 1656533)
2020-10-02 12:51:55 +03:00
Jamie Nicol 5b8c7d826e Bug 1575765 - Implement KHR_partial_update for webrender. r=sotaro,jgilbert
KHR_partial_update allows us to avoid rerendering the entire
backbuffer every frame, and instead only render what has changed on
the current frame, as well as the difference between the current
backbuffer and the current frontbuffer. It works similarily to
EXT_buffer_age, which we already support, with the additional
requirement that we must call eglSetDamageRegion each frame before
rendering to the backbuffer.

Modify GLContextEGL::GetBufferAge() so that it queries the age if
either EXT_buffer_age or KHR_partial_update are available. This will
now automatically be queried by webrender through the
PartialPresentCompositor trait. Add a new function to that trait,
set_buffer_damage_region(), whose RenderCompositorEGL implementation
calls eglSetDamageRegion(). Call this from composite_simple(), once
the damage rect has been calculated but before rendering to the
backbuffer.

Additionally, change both RenderCompositorEGL and
RenderCompositorOGL's implementations of
ShouldDrawPreviousPartialPresentRegions() to unconditionally return
true, rather than checking for the existence of EXT_buffer_age (or
adding a new check for KHR_partial_update). The lack of these
extensions does not mean that webrender is able to skip rendering
previous frames' damage. Rather the opposite, it means we cannot
render *only* the previous frames' damage, and must instead always
render the entire buffer.

Differential Revision: https://phabricator.services.mozilla.com/D91203
2020-10-02 08:38:29 +00:00
Jamie Nicol 2bccc84f56 Bug 1656533 - Handle buffer ages other than 2 for EGL_EXT_buffer_age. r=sotaro,gw
Add a trait PartialPresentCompositor with a function get_buffer_age(),
and allow gecko to pass an implementation to webrender during
initialization. This allows webrender to query the age of the current
backbuffer during compositing.

Make webrender track the previous 2 frame's dirty rects, rather than
just the previous 1 frame's, allowing it to calculate the total damage
rect for buffer ages of up to 3. If the age is greater than 3, treat
the entire buffer as invalid. Also handle special cases of ages 0 and
1, 0 meaning the entire buffer is invalid, and 1 meaning the entire
buffer is valid. Make gecko stop requesting a full render for buffer
ages other than 2, as webrender can now handle these cases itself.

Differential Revision: https://phabricator.services.mozilla.com/D91202
2020-10-02 09:04:09 +00:00
Matt Woodrow d01e76fc58 Bug 1668302 - Implement RenderTextureHostSWL for wrapper texture hosts. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D92008
2020-10-01 22:18:52 +00:00
Bogdan Tara 3de7cdb1ac Backed out 2 changesets (bug 1668302) for swr reftest failures CLOSED TREE
Backed out changeset 8434906c98c4 (bug 1668302)
Backed out changeset ea6160902594 (bug 1668302)
2020-10-01 16:06:19 +03:00
Gerald Squelart ee701f64d7 Bug 1667915 - Separate marker category from marker options - r=gregtatum
The `category.WithOptions(...)` syntax was a bit strange and difficult to explain.

Now the category and options are separate parameters. Default options can be specified with `MarkerOptions{}` or just `{}`.

As a special case, defaulted-NoPayload functions don't need `<>`, and defaulted-NoPayload functions and macros don't even need `{}` for default options, e.g.:
`profiler_add_marker("name", OTHER); PROFILER_MARKER_UNTYPED("name", OTHER);`

Differential Revision: https://phabricator.services.mozilla.com/D91680
2020-10-01 11:02:23 +00:00
Bogdan Tara ababae891b Backed out 2 changesets (bug 1667915) for platform related bustage CLOSED TREE
Backed out changeset e7a0788a1741 (bug 1667915)
Backed out changeset d34505b2d81b (bug 1667915)
2020-10-01 12:34:39 +03:00
Matt Woodrow dccc13919e Bug 1668302 - Implement RenderTextureHostSWL for wrapper texture hosts. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D92008
2020-10-01 02:56:23 +00:00
Gerald Squelart e07ae06a1d Bug 1667915 - Separate marker category from marker options - r=gregtatum
The `category.WithOptions(...)` syntax was a bit strange and difficult to explain.

Now the category and options are separate parameters. Default options can be specified with `MarkerOptions{}` or just `{}`.

As a special case, defaulted-NoPayload functions don't need `<>`, and defaulted-NoPayload functions and macros don't even need `{}` for default options, e.g.:
`profiler_add_marker("name", OTHER); PROFILER_MARKER_UNTYPED("name", OTHER);`

Differential Revision: https://phabricator.services.mozilla.com/D91680
2020-10-01 01:44:47 +00:00
Jamie Nicol d2b7bc3c03 Bug 1640858 - Fix damage region calculation for eglSwapBuffersWithDamage. r=sotaro
Webrender provides dirty rects with a top-left origin, whereas EGL
requires bottom-left. We also clamp the region to the framebuffer size
prior to passing it to EGL. There was a bug in this calculation when
the dirty rect had a negative y-offset and a height greater than the
framebuffer's height. This was causing too little of the screen to be
updated in some circumstances, resulting in stale content.

Note that this is only an issue when
gfx.webrender.max-partial-present-rects != 0.

Differential Revision: https://phabricator.services.mozilla.com/D91714
2020-09-30 12:53:13 +00:00
sotaro 2ba6f43481 Bug 1661371 - Use eglWaitSyncKHR() for andoid fence if possible r=jnicol
For performance, it is better to use eglWaitSyncKHR() for andoid fence if possible.

This change is not used by gecko yet.

Differential Revision: https://phabricator.services.mozilla.com/D89882
2020-09-30 06:45:30 +00:00
sotaro a489219995 Bug 1667927 - Do not close file descriptor of android::Fence if EGLSync is created r=jnicol
When EGLSync is created from fence file descriptor, gecko should not close it. It should be closed by gecko only when EGLSync creation is failed.

Differential Revision: https://phabricator.services.mozilla.com/D91702
2020-09-29 07:32:14 +00:00
Matt Woodrow a1bb0c4f87 Bug 1667919 - Don't crash when calling IsContextLost on a RenderCompositorSWGL. r=jrmuizel
Depends on D91671

Differential Revision: https://phabricator.services.mozilla.com/D91672
2020-09-29 02:20:20 +00:00
sotaro 8a2f3ac45d Bug 1667343 - Skip Video SwapChain present if no video texture update r=nical
Video SwapChain present is not necessary if there is no video texture update.

Differential Revision: https://phabricator.services.mozilla.com/D91404
2020-09-25 14:05:26 +00:00
Kartikaya Gupta aaef0a4678 Bug 1667176 - Miscellaneous unified build fixes. r=mattwoodrow
Upcoming patches shift around which files get unified and expose these build
failures.

Differential Revision: https://phabricator.services.mozilla.com/D91332
2020-09-25 08:57:23 +00:00
Michael Froman 5b942915e9 Bug 1664898 - move media/mtransport to media/transport. r=ng
Differential Revision: https://phabricator.services.mozilla.com/D90309
2020-09-22 21:43:49 +00:00
Sylvestre Ledru fd8b54c40d Bug 1617369 - Reformat recent rust changes with rustfmt r=emilio,necko-reviewers,valentin
# ignore-this-changeset

Depends on D90793

Differential Revision: https://phabricator.services.mozilla.com/D90794
2020-09-20 16:09:26 +00:00
Markus Stange bbb8d6b5a2 Bug 1664049 - Allow capturing recorded frames from NativeLayerSnapshotter. r=mattwoodrow
This makes the recording API work in the macOS + WR compositor configuration.

Differential Revision: https://phabricator.services.mozilla.com/D89868
2020-09-18 01:26:32 +00:00
Markus Stange 1772b930c8 Bug 1664049 - Move WebRenderCompositionRecorder functionality into RendererOGL. r=barret
I liked the separation, but having everything in RendererOGL.cpp makes the next patch easier.

One nice effect of this patch is that all the recorder-related wr_renderer_* functions
are now called from the same file. Previously, most of them were called in
WebRenderCompositionRecorder.cpp, but the cleanup function
wr_renderer_release_composition_recorder_structures was called from RendererOGL.cpp.

Differential Revision: https://phabricator.services.mozilla.com/D89867
2020-09-18 01:27:33 +00:00
Markus Stange 5b5bc2d532 Bug 1664049 - Move WebRenderCompositionRecorder into RendererOGL. r=barret
Rather than having two windowID -> [something] hash tables, this reduces it to
one: The renderer is already per-window so we just put the recorder into the
renderer.

Differential Revision: https://phabricator.services.mozilla.com/D89866
2020-09-18 19:32:14 +00:00
Markus Stange 367aa1ab62 Bug 1664049 - Move the creation of the WebRenderCompositionRecorder into RenderThread. r=barret
Differential Revision: https://phabricator.services.mozilla.com/D89865
2020-09-18 01:24:57 +00:00
Kartikaya Gupta 1f997d0f93 Bug 1665501 - Remove unnecessary typedefs. r=mstange
These typedefs seem redundant given the `using` statements in
the webrender_ffi_generated.h header.

Differential Revision: https://phabricator.services.mozilla.com/D90736
2020-09-18 18:31:12 +00:00
Markus Stange 6d2642e09e Bug 1664047 - Only call UpdateSnapshot when ScreenshotGrabber calls GetWindowContents, which it only does if the profiler is running (and Screenshots are enabled). r=mattwoodrow
This requires passing down the window size down in a different way, because the
NativeLayerRootSnapshotter does not know the window size otherwise.

At the same time, this patch also removes WindowNLRS and makes the NativeLayerRoot
implement the profiler_screenshots::Window interface directly.

Differential Revision: https://phabricator.services.mozilla.com/D89864
2020-09-15 20:47:19 +00:00
Markus Stange aa018205e1 Bug 1664135 - Null-check the return value of CreateSnapshotter(). r=mattwoodrow
This can return null when the creation of the GL context for the snapshotter fails, for example.

Differential Revision: https://phabricator.services.mozilla.com/D89863
2020-09-15 14:20:14 +00:00
Jamie Nicol cd32d3d834 Bug 1663732 - Hook up GeckoView's CompositorController.setClearColor() to webrender. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D90098
2020-09-15 13:22:24 +00:00
Mihai Alexandru Michis a75aa1f3ed Backed out 2 changesets (bug 1664047, bug 1664135) for causing dt failures in ScreenshotGrabber.cpp
CLOSED TREE

Backed out changeset d8996fcd3568 (bug 1664047)
Backed out changeset 070815d3ff02 (bug 1664135)
2020-09-15 03:09:08 +03:00
Markus Stange b2cdbc6d3e Bug 1664047 - Only call UpdateSnapshot when ScreenshotGrabber calls GetWindowContents, which it only does if the profiler is running (and Screenshots are enabled). r=mattwoodrow
This requires passing down the window size down in a different way, because the
NativeLayerRootSnapshotter does not know the window size otherwise.

At the same time, this patch also removes WindowNLRS and makes the NativeLayerRoot
implement the profiler_screenshots::Window interface directly.

Depends on D89863

Differential Revision: https://phabricator.services.mozilla.com/D89864
2020-09-13 21:41:24 +00:00
Markus Stange fafb77fc27 Bug 1664135 - Null-check the return value of CreateSnapshotter(). r=mattwoodrow
This can return null when the creation of the GL context for the snapshotter fails, for example.

Differential Revision: https://phabricator.services.mozilla.com/D89863
2020-09-13 21:34:50 +00:00
Alexis Beingessner e5dd298d13 Bug 1654807 - update thin-vec to 0.2.1 for potential endianess fix. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D87019
2020-09-14 17:32:40 +00:00
Andrew Osmond 64ae7b6168 Bug 1664703 - Expose yet more (round 2) WebRender initializaiton failure error messages to telemetry.
Differential Revision: https://phabricator.services.mozilla.com/D90045
2020-09-13 17:31:14 +00:00
Andrew Osmond a9c24fabba Bug 1664560 - Expose yet more WebRender initialization failure error messages to telemetry. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D89966
2020-09-11 22:40:40 +00:00
Gerald Squelart b0bf2c2172 Bug 1663554 - Convert PROFILER_ADD_TEXT_MARKER and friends to PROFILER_MARKER_TEXT - r=gregtatum
Mostly mechanical changes, with some work needed to convert the different payloads (with optional timestamps, inner window id, and/or backtrace) to the equivalent MarkerOptions.

Differential Revision: https://phabricator.services.mozilla.com/D89587
2020-09-11 00:41:27 +00:00
Nicolas Silva b1c3ab9869 Bug 1662827 - Move the api senders to the webrender crate. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D89387
2020-09-09 12:45:00 +00:00
sotaro 54ede5160d Bug 1460499 - Use DirectComposition for hardware decoded video on Windows r=nical
Use ID3D11VideoProcessor for video frame rendering.

WebRenderError::VIDEO_OVERLAY does not cause disabling WebRender. It just change gfxVars::UseWebRenderDCompVideoOverlayWin() to false.

Differential Revision: https://phabricator.services.mozilla.com/D88763
2020-09-09 01:04:53 +00:00
Mihai Alexandru Michis 002a3217ae Backed out 4 changesets (bug 1662827) for causing webrender bustages.
Backed out changeset 4d216f67247b (bug 1662827)
Backed out changeset 25ef3ef3c69d (bug 1662827)
Backed out changeset 461e4e35a0e3 (bug 1662827)
Backed out changeset 40366bd1a0f7 (bug 1662827)
2020-09-08 17:11:19 +03:00
Nicolas Silva a7e48b6370 Bug 1662827 - Move the api senders to the webrender crate. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D89387
2020-09-08 13:06:16 +00:00
Sylvestre Ledru ba8d39bfb3 Bug 1617369 - Reformat recent rust changes with rustfmt r=emilio
# ignore-this-changeset

Depends on D89392

Differential Revision: https://phabricator.services.mozilla.com/D89393
2020-09-07 19:57:24 +00:00
Andrew Osmond c45c3ac881 Bug 1662836 - Expose detailed initialization failure reason for WebRender. r=kvark
We don't know why we see initialization failures in the telemetry which
makes it hard to investigate why users aren't getting WebRender and
instead fallback to basic. Let's expose the detailed error message
WebRender already generates and puts in the critical log.

Differential Revision: https://phabricator.services.mozilla.com/D89185
2020-09-08 02:03:26 +00:00
sotaro 64acea96e5 Bug 1658684 - Add android Fence handling to WebRender r=nical
Release fence is delivered from RenderCompositorEGL to WebRenderImageHost via AsyncImagePipelineManager. And the fence is sent to client side by ImageBridgeParent.

Differential Revision: https://phabricator.services.mozilla.com/D88158
2020-09-02 14:21:36 +00:00
Lee Salzman 16b168d133 Bug 1661427 - Allow SWGL SwCompositor to split up compositing work between SwComposite and render threads. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D88392
2020-08-31 18:26:20 +00:00
Sylvestre Ledru 86c0cc26c0 Bug 1617369 - Reformat recent rust changes with rustfmt r=emilio
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D88714
2020-08-31 06:51:29 +00:00
Razvan Maries b16f595134 Backed out changeset b99610a6833f (bug 1661427) for Talos perma failures. 2020-08-30 21:13:42 +03:00
Lee Salzman d3aa4d7686 Bug 1661427 - Allow SWGL SwCompositor to split up compositing work between SwComposite and render threads. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D88392
2020-08-28 22:27:54 +00:00
Markus Stange 7787074ce9 Bug 1658856 - Fix overdraw and unused tile pixel computation in the profiler markers. r=mattwoodrow
Depends on D86880

Differential Revision: https://phabricator.services.mozilla.com/D86888
2020-08-27 04:01:01 +00:00
Markus Stange 035e844287 Bug 1592031 - Use NativeLayerSnapshotter to capture profiler screenshots with WebRender on macOS. r=mattwoodrow
Depends on D59158

Differential Revision: https://phabricator.services.mozilla.com/D86880
2020-08-27 04:00:57 +00:00
Glenn Watson 9ef894831d Bug 1661185 - Remove implicit scroll/hit-test APIs. r=kats
Previously, it was possible to instruct WR to find the closest
scroll node, and apply a scroll delta to that. However, it's
generally the case that there is more context required that
the application applies in selecting which frame to scroll.

This patch removes the unused APIs, which simplifies some of
the hit-testing code. In turn, this simplifies some in-progress
optimization and refactoring of the hit-test internals.

Differential Revision: https://phabricator.services.mozilla.com/D88234
2020-08-26 20:38:46 +00:00
sotaro 0d083ef8b6 Bug 1661197 - Initialize mBufferAge at constructor r=jnicol
Differential Revision: https://phabricator.services.mozilla.com/D88246
2020-08-26 10:50:44 +00:00
Lee Salzman 8d53aef426 Bug 1622966 - composite YUV surfaces directly in SWGL SwCompositor. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D88102
2020-08-26 00:36:24 +00:00
Matt Woodrow b5a52cf1f5 Bug 1657312 - Don't round clip rect. r=mstange
Depends on D86088

Differential Revision: https://phabricator.services.mozilla.com/D87023
2020-08-14 06:16:52 +00:00
sotaro 712543d5bc Bug 1658005 - Unify RenderTextureHost async function calls r=nical,jnicol
The following functions are asynchronously called by a bit different ways. It seems not good. It seems better to unify them.
PrepareForUse()
NofityForUse()
NotifyNotUsed()

Differential Revision: https://phabricator.services.mozilla.com/D87709
2020-08-21 07:32:47 +00:00
Narcis Beleuzu c259d84931 Backed out 4 changesets (bug 1658856, bug 1592031) for bustages on ScreenshotGrabber.h . CLOSED TREE
Backed out changeset 6d54a1050bbd (bug 1658856)
Backed out changeset 19145f742503 (bug 1592031)
Backed out changeset 5db68a6a5bc2 (bug 1592031)
Backed out changeset 925e3b179b9b (bug 1592031)
2020-08-22 02:06:39 +03:00
Markus Stange 418d5452f5 Bug 1658856 - Fix overdraw and unused tile pixel computation in the profiler markers. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D86888
2020-08-21 22:47:38 +00:00
Markus Stange 66928a1e5b Bug 1592031 - Use NativeLayerSnapshotter to capture profiler screenshots with WebRender on macOS. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D86880
2020-08-21 22:33:41 +00:00
Glenn Watson 7aba1426fd Bug 1659676 - Simplify WR hit-test API. r=kats,kvark,nical
Specifically:
 - Remove hit test tag from common display item properties.
 - Simplify WR bindings to use hit-test items exclusively.
 - Remove support for transparent rectangles to be hit-test items.
 - Remove support for any primitive to be a hit-test item.

Differential Revision: https://phabricator.services.mozilla.com/D87421
2020-08-19 15:05:30 +00:00
Nicolas Silva cebafe261f Bug 1656236 - Update to euclid 0.22. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D85549
2020-08-18 22:09:27 +00:00
Csoregi Natalia fd9ca77e37 Backed out 3 changesets (bug 1656236) for wrench failures on filter-drop-shadow-clip-3.yaml. CLOSED TREE
Backed out changeset 78205b816ac8 (bug 1656236)
Backed out changeset dc4ccb5a8ea9 (bug 1656236)
Backed out changeset dcfa644ba078 (bug 1656236)
2020-08-18 20:22:57 +03:00
Nicolas Silva fc87bc960e Bug 1656236 - Update to euclid 0.22. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D85549
2020-08-18 16:06:07 +00:00
Jean-Yves Avenard 98c585cfb8 Bug 1659015 - P1. Add YUV identity support (rgb) to WR. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D87167
2020-08-16 20:04:39 +00:00
Matt Woodrow a250b4d7a3 Bug 1656818 - Move decision to flip WebRender readback closer to the source, and make it correct for SWGL. r=lsalzman,geckoview-reviewers,snorp
Differential Revision: https://phabricator.services.mozilla.com/D86892
2020-08-14 18:40:09 +00:00
Matt Woodrow 5e382d20a3 Bug 1658858 - Implement ImageRendering filtering parameter for SwCompositor. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D86890
2020-08-14 00:56:22 +00:00
Csoregi Natalia 8896454838 Backed out 4 changesets (bug 1656817, bug 1656818, bug 1658858) for bustage on RendererOGL.cpp. CLOSED TREE
Backed out changeset 9c8e4ec4e47c (bug 1656818)
Backed out changeset 92252cfd26de (bug 1656818)
Backed out changeset 1bebb79150d6 (bug 1656817)
Backed out changeset e1becb3a2fb5 (bug 1658858)
2020-08-14 00:25:44 +03:00
Matt Woodrow 65e227f6dd Bug 1656818 - Move decision to flip WebRender readback closer to the source, and make it correct for SWGL. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D86892
2020-08-13 20:43:35 +00:00
Matt Woodrow 9f6c145559 Bug 1658858 - Implement ImageRendering filtering parameter for SwCompositor. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D86890
2020-08-13 20:42:29 +00:00
Lee Salzman 8326780f95 Bug 1652894 - add SWGL RenderTextureHosts. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D86340
2020-08-12 21:25:17 +00:00
Lee Salzman 8c69cf96f0 Bug 1652894 - add SWGL utility bindings for managing textures. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D86338
2020-08-11 23:11:33 +00:00
Lee Salzman 7a6953c9a3 Bug 1652894 - allow SWGL contexts to have multiple strong references. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D86337
2020-08-11 23:11:35 +00:00
Mihai Alexandru Michis f44ab317a5 Backed out 4 changesets (bug 1652894) for causing multiple reftest failures.
CLOSED TREE

Backed out changeset d6786fcf717b (bug 1652894)
Backed out changeset 97df16d3b738 (bug 1652894)
Backed out changeset 8a1f8b9e2524 (bug 1652894)
Backed out changeset 96bca5729430 (bug 1652894)
2020-08-12 02:08:28 +03:00
Lee Salzman 75d072859c Bug 1652894 - add SWGL RenderTextureHosts. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D86340
2020-08-11 15:53:15 +00:00
Lee Salzman 25a8fdd2c8 Bug 1652894 - add SWGL utility bindings for managing textures. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D86338
2020-08-11 12:53:54 +00:00
Lee Salzman 9875e7ea3f Bug 1652894 - allow SWGL contexts to have multiple strong references. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D86337
2020-08-11 12:53:43 +00:00
Miko Mynttinen 3c0a965bd5 Bug 1658113 - Set the surface format based on YCbCrDescriptor color depth r=jya
Differential Revision: https://phabricator.services.mozilla.com/D86600
2020-08-11 01:13:30 +00:00
Csoregi Natalia cc057fb442 Backed out 4 changesets (bug 1652894) for texture related crashes. CLOSED TREE
Backed out changeset 714ad1b01cb2 (bug 1652894)
Backed out changeset e3b4753fd09c (bug 1652894)
Backed out changeset 8abaf47071d8 (bug 1652894)
Backed out changeset 175df7659c3f (bug 1652894)
2020-08-11 15:50:07 +03:00
Lee Salzman 6b4a081f33 Bug 1652894 - add SWGL RenderTextureHosts. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D86340
2020-08-11 07:38:10 +00:00
Lee Salzman 25da5abf77 Bug 1652894 - add SWGL utility bindings for managing textures. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D86338
2020-08-11 06:02:23 +00:00
Lee Salzman 96653665f3 Bug 1652894 - allow SWGL contexts to have multiple strong references. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D86337
2020-08-11 06:02:25 +00:00
Csoregi Natalia 555c643104 Backed out 4 changesets (bug 1652894) for bustages on RenderThread.cpp. CLOSED TREE
Backed out changeset 0e0107226c9e (bug 1652894)
Backed out changeset ff5e4bffb497 (bug 1652894)
Backed out changeset 2e4c7cced692 (bug 1652894)
Backed out changeset a8b850455c90 (bug 1652894)
2020-08-11 08:52:47 +03:00
Lee Salzman 385e5cc6c6 Bug 1652894 - add SWGL RenderTextureHosts. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D86340
2020-08-11 05:24:04 +00:00
Lee Salzman 4c242bb65c Bug 1652894 - add SWGL utility bindings for managing textures. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D86338
2020-08-11 05:04:03 +00:00
Lee Salzman 114fe878d9 Bug 1652894 - allow SWGL contexts to have multiple strong references. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D86337
2020-08-11 00:50:12 +00:00
Matt Woodrow 6c1b2412c5 Bug 1657771 - Implement scaling and flipping for SwCompositor. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D86500
2020-08-11 04:46:31 +00:00
Razvan Maries 23ffaf1a19 Backed out changeset 56973e24eb3d (bug 1657771) for build bustages. CLOSED TREE 2020-08-11 07:23:46 +03:00
Matt Woodrow 1808e4e837 Bug 1657771 - Implement scaling and flipping for SwCompositor. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D86500
2020-08-11 03:58:53 +00:00
Matt Woodrow 8cc57f6b55 Bug 1657428 - Use correct interpolation mode for native compositing layers. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D86090
2020-08-06 21:14:45 +00:00
Jeff Gilbert a824ab4d81 Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Have webrender use its own EGLDisplay, letting WebGL use a different
one.

Differential Revision: https://phabricator.services.mozilla.com/D85496
2020-08-07 07:14:46 +00:00
Mihai Alexandru Michis 639b2bd075 Backed out changeset f1f10f791e99 (bug 1656034) for causing bustages in DMABufSurface.cpp
CLOSED TREE
2020-08-07 02:36:33 +03:00
Jeff Gilbert b5d6906473 Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Have webrender use its own EGLDisplay, letting WebGL use a different
one.

Differential Revision: https://phabricator.services.mozilla.com/D85496
2020-08-06 22:53:53 +00:00