gecko-dev/gfx/webrender_bindings
Jamie Nicol 790229886f Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro
Fenix makes use of the default clear color by setting it to a dark
color when the dark theme is enabled to avoid white flashes while
pages are loading. In bug 1663732 we hooked this functionality up to
webrender, however, it was only used by the draw compositor. Now with
software webrender on Android, we sometimes use
RenderCompositorLayersSWGL rather than the draw compositor, and users
are therefore experiencing white flashes during page loads.

This adds a clear_color argument to StartCompositing(), which
RenderCompositorLayersSWGL uses to set the CompositorOGL's clear
color. This patch also makes Renderer::clear_color not an Option
type, as we only ever used it in Some form, and that simplifies the
FFI.

Differential Revision: https://phabricator.services.mozilla.com/D119272
2021-07-08 11:46:37 +00:00
..
src Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro 2021-07-08 11:46:37 +00:00
Cargo.toml Bug 1690624 - Replace the old profiler thread registration FFIs with the new API in webrender r=jrmuizel 2021-06-09 11:22:55 +00:00
DCLayerTree.cpp Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
DCLayerTree.h
Moz2DImageRenderer.cpp Bug 1711648 - Move LayoutRect to the Box2D representation. r=jrmuizel. 2021-06-11 13:33:10 +00:00
README.webrender
RenderAndroidHardwareBufferTextureHost.cpp Bug 1519636 - Reformat recent changes to the Google coding style r=andi 2021-01-06 17:17:23 +00:00
RenderAndroidHardwareBufferTextureHost.h Bug 1519636 - Reformat recent changes to the Google coding style r=andi 2021-01-06 17:17:23 +00:00
RenderAndroidSurfaceTextureHost.cpp Bug 1699001 - Rename RenderThread::SharedGL() to SingletonGL() r=nical 2021-03-17 10:51:45 +00:00
RenderAndroidSurfaceTextureHost.h Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderBufferTextureHost.cpp Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderBufferTextureHost.h Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderCompositor.cpp Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro 2021-07-08 11:46:37 +00:00
RenderCompositor.h Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro 2021-07-08 11:46:37 +00:00
RenderCompositorANGLE.cpp Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel 2021-06-02 12:47:03 +00:00
RenderCompositorANGLE.h Bug 1712871 - Move max_update_rects into CompositorCapabilities r=lsalzman,gfx-reviewers 2021-05-26 20:09:58 +00:00
RenderCompositorD3D11SWGL.cpp Bug 1718334 - RELEASE_ASSERT the last map succeeded. r=jgilbert 2021-06-25 20:56:14 +00:00
RenderCompositorD3D11SWGL.h Bug 1707943 - webrender_bindings: Fix warnings and apply suggestions form static analysis, r=gfx-reviewers,lsalzman 2021-04-28 12:33:55 +00:00
RenderCompositorEGL.cpp Bug 1646135 - Set draw buffer after eglMakeCurrent when using desktop GL,r=gfx-reviewers,lsalzman 2021-06-25 15:29:29 +00:00
RenderCompositorEGL.h Bug 1707943 - webrender_bindings: Fix warnings and apply suggestions form static analysis, r=gfx-reviewers,lsalzman 2021-04-28 12:33:55 +00:00
RenderCompositorLayersSWGL.cpp Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro 2021-07-08 11:46:37 +00:00
RenderCompositorLayersSWGL.h Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro 2021-07-08 11:46:37 +00:00
RenderCompositorNative.cpp Bug 1711244 - Register native layers for GDK frame callbacks, 2021-06-03 17:42:29 +00:00
RenderCompositorNative.h Bug 1712871 - Move max_update_rects into CompositorCapabilities r=lsalzman,gfx-reviewers 2021-05-26 20:09:58 +00:00
RenderCompositorOGL.cpp Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel 2021-06-02 12:47:03 +00:00
RenderCompositorOGL.h Bug 1707943 - webrender_bindings: Fix warnings and apply suggestions form static analysis, r=gfx-reviewers,lsalzman 2021-04-28 12:33:55 +00:00
RenderCompositorOGLSWGL.cpp Bug 1712367. Avoid TexSubImage ES slow path. r=jgilbert,sotaro 2021-06-17 13:24:05 +00:00
RenderCompositorOGLSWGL.h Bug 1712367. Avoid TexSubImage ES slow path. r=jgilbert,sotaro 2021-06-17 13:24:05 +00:00
RenderCompositorRecordedFrame.h
RenderCompositorSWGL.cpp Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro 2021-07-08 11:46:37 +00:00
RenderCompositorSWGL.h Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro 2021-07-08 11:46:37 +00:00
RenderD3D11TextureHost.cpp Bug 1699001 - Rename RenderThread::SharedGL() to SingletonGL() r=nical 2021-03-17 10:51:45 +00:00
RenderD3D11TextureHost.h Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderDMABUFTextureHost.cpp
RenderDMABUFTextureHost.h Bug 1519636 - Reformat recent changes to the Google coding style r=andi 2021-01-06 17:17:23 +00:00
RenderEGLImageTextureHost.cpp
RenderEGLImageTextureHost.h Bug 1519636 - Reformat recent changes to the Google coding style r=andi 2021-01-06 17:17:23 +00:00
RenderExternalTextureHost.cpp Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderExternalTextureHost.h Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderMacIOSurfaceTextureHost.cpp Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderMacIOSurfaceTextureHost.h Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderSharedSurfaceTextureHost.cpp Bug 1688096 - Part 1. Merge SW-WR and WR render texture host paths to allow mixed compositors. r=mattwoodrow 2021-02-24 19:39:59 +00:00
RenderSharedSurfaceTextureHost.h Bug 1688096 - Part 1. Merge SW-WR and WR render texture host paths to allow mixed compositors. r=mattwoodrow 2021-02-24 19:39:59 +00:00
RenderTextureHost.cpp
RenderTextureHost.h Bug 1673342 - Add Support of software WebRender with CompositorOGL on Android and Linux r=mattwoodrow 2021-03-01 13:45:38 +00:00
RenderTextureHostSWGL.cpp Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderTextureHostSWGL.h Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderTextureHostWrapper.cpp Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderTextureHostWrapper.h Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
RenderThread.cpp Backed out changeset fb2f9cfe820d (bug 1716579) for valgrind bustage. CLOSED TREE 2021-06-17 19:40:08 +03:00
RenderThread.h Backed out changeset fb2f9cfe820d (bug 1716579) for valgrind bustage. CLOSED TREE 2021-06-17 19:40:08 +03:00
RendererOGL.cpp Backed out changeset fb2f9cfe820d (bug 1716579) for valgrind bustage. CLOSED TREE 2021-06-17 19:40:08 +03:00
RendererOGL.h Backed out changeset fb2f9cfe820d (bug 1716579) for valgrind bustage. CLOSED TREE 2021-06-17 19:40:08 +03:00
RendererScreenshotGrabber.cpp
RendererScreenshotGrabber.h
WebRenderAPI.cpp Bug 1670622 - Ensure GL context is current prior to webrender initialization. r=gfx-reviewers,jgilbert 2021-07-08 08:59:49 +00:00
WebRenderAPI.h Bug 1716933 - Remove DefineClip API from WR public API r=gfx-reviewers,jrmuizel 2021-06-20 22:26:54 +00:00
WebRenderTypes.cpp
WebRenderTypes.h Bug 1459526 - Handle full-range video in Webrender. r=gw,lsalzman 2021-06-25 19:16:22 +00:00
cbindgen.toml Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel 2021-06-02 12:47:03 +00:00
moz.build Bug 1699985 - Implement basic native Wayland compositor backend, r=stransky,mstange,aosmond 2021-05-11 13:38:59 +00:00
rustfmt.toml
webrender_ffi.h Bug 1690624 - Add profiler rust API for thread registration/unregistration r=gerald,emilio 2021-06-09 11:22:55 +00:00

README.webrender

To build and run WebRender in Gecko:
1. Install Rust if you don't have it already
   If you are doing gecko builds already, you should already have Rust as it is a build requirement.
   If not, you can install it using |mach bootstrap| (recommended) or from https://www.rust-lang.org/
       Note: If installing manually, use the stable 64-bit release - on Windows make sure to use the MSVC ABI installer.
   Ensure that rustc and cargo are in your $PATH (adding $HOME/.cargo/bin/ should be sufficient)
2. Build using |mach build|.
   You don't need anything special in your mozconfig for local builds; webrender will be built by default.
3. Run with |MOZ_WEBRENDER=1| in your environment. e.g. |MOZ_WEBRENDER=1 ./mach run|.
   Alternatively, you can set the gfx.webrender.enabled pref to true (browser restart required).
   Note that on Linux, acceleration is disabled by default and it needs to be enabled for WebRender to work.
   On Linux you can enable acceleration by putting |MOZ_ACCELERATED=1| in your environment, or setting layers.acceleration.force-enabled to true in about:config.
4. Verify WebRender is enabled. You can do this by going to about:support and checking the "Compositing" line in the Graphics section. It should say "WebRender".
   There should also be a WebRender section under "Decision Log" in about:support, which will provide some more detail on what caused it to be enabled/disabled.

When making changes:
    - Make the changes you want.
    - Run |mach build| or |mach build binaries| as desired.

For a debug webrender build:
    Use a debug mozconfig (ac_add_options --enable-debug)
    You can also use an opt build but make webrender less optimized by putting opt-level=0 in the [profile.release] section of your toolkit/library/rust/Cargo.toml file
    See also https://groups.google.com/forum/#!topic/mozilla.dev.servo/MbeMcqqO1fs