Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync changes from mozilla-central gfx/wr #3833

Merged
merged 32 commits into from Jan 15, 2020
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
1d95e5d
Bug 1606827 - A corner is not rounded when the radius is zero in eith…
SimonSapin Jan 15, 2020
8e3220d
Bug 1595767 - Don't use rayon for glyph rasterization unless there is…
bpeersmoz Jan 15, 2020
4a2f3cf
Bug 1607352 - Support DirectComposition virtual surface API. r=sotaro
Jan 15, 2020
8b55532
Bug 1606685 - Support empty tiles within compositor surfaces. r=sotaro
Jan 15, 2020
2a5c1b3
Bug 1607419 - Avoid option.expect(&format in hot code. r=jrmuizel
nical Jan 15, 2020
c5a8d9a
Bug 1607697 - Address some clippy lints in WebRender API. r=Gankro
nical Jan 15, 2020
6e0321a
Bug 1607697 - Remove leading zeros in dither matrix litterals. r=Gankro
nical Jan 15, 2020
2958cde
Bug 1607697 - Allow excessive precision in debug color constants. r=G…
nical Jan 15, 2020
4509d8f
Bug 1607697 - Address unwrap_or_else(callback) and functions in callb…
nical Jan 15, 2020
3597f88
Bug 1607697 - Address clippy lints about nested branches. r=Gankro
nical Jan 15, 2020
f4171db
Bug 1607697 - Pass-by-value clippy lints for some small structures. r…
nical Jan 15, 2020
f8796d8
Bug 1607697 - Box the memory reports in enums. r=Gankro
nical Jan 15, 2020
c76840d
Bug 1607697 - Miscellaneous clippy lint fixes. r=Gankro
nical Jan 15, 2020
a74df4e
Backed out 8 changesets (bug 1607697) for Build bustages. CLOSED TREE
dgluca Jan 15, 2020
d3458da
Bug 1607697 - Address some clippy lints in WebRender API. r=Gankro
nical Jan 15, 2020
f7e0447
Bug 1607697 - Remove leading zeros in dither matrix litterals. r=Gankro
nical Jan 15, 2020
8e23cfc
Bug 1607697 - Allow excessive precision in debug color constants. r=G…
nical Jan 15, 2020
4510da2
Bug 1607697 - Address unwrap_or_else(callback) and functions in callb…
nical Jan 15, 2020
d2dab4f
Bug 1607697 - Address clippy lints about nested branches. r=Gankro
nical Jan 15, 2020
4fe4faa
Bug 1607697 - Pass-by-value clippy lints for some small structures. r…
nical Jan 15, 2020
4a21991
Bug 1607697 - Box the memory reports in enums. r=Gankro
nical Jan 15, 2020
7b98dfb
Bug 1607697 - Miscellaneous clippy lint fixes. r=Gankro
nical Jan 15, 2020
b383cb6
Bug 1607697 - Address servo-tidy complaint.
nical Jan 15, 2020
b25c1f8
Bug 1608280 - Support a per-tile clip (valid) region for compositor t…
gw3583 Jan 15, 2020
67f9d48
Bug 1607746 - Part 1: Move opacity to its own shader in WebRender r=n…
cbrewster Jan 15, 2020
b549115
Bug 1607746 - Part 2: Clean up passing filter mode to shader r=nical
cbrewster Jan 15, 2020
3ddb13b
Backed out changeset 7295ca89e880 (bug 1608280) for causing bug 16089…
AndreeaPavel Jan 15, 2020
3b18bde
Merge mozilla-central to autoland on a CLOSED TREE
AndreeaPavel Jan 15, 2020
c9fe1c3
Bug 1609049 - WebRender version bump. r=jrmuizel
nical Jan 15, 2020
3167089
Bug 1609049 - Add required fileds in peek-poke Cargo.toml. r=jrmuizel
nical Jan 15, 2020
2b9f40d
Bug 1609136 - Fix cs_border_solid attribute names r=jrmuizel
kvark Jan 15, 2020
93c7a2b
Bug 1605171 - Replace wrupdater with github-sync r=tomprince
kvark Jan 15, 2020
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

Bug 1606685 - Support empty tiles within compositor surfaces. r=sotaro

This adds support for holes within virtual surfaces. On platforms
that don't use virtual surfaces, this just works by destroying
the tile that is empty so it never gets composited.

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

[ghsync] From https://hg.mozilla.org/mozilla-central/rev/e9d191b5eb8a78b117f55c0dd6993cb0d136c7c8
  • Loading branch information
Glenn Watson authored and moz-gfx committed Jan 15, 2020
commit 8b5553201582bc492a730e6624a2cb119a12158c
@@ -880,21 +880,19 @@ impl Tile {
// Invalidate the tile based on the content changing.
self.update_content_validity(ctx, state);

// TODO(gw): This is a hack / temporary bug fix. With the recent changes
// to treat native surfaces as an entire surface, we need to
// skip the optimization that drops empty tiles within the
// surface area. This has some unfortunate performance implications
// in some cases, so we'll need a proper fix for this, but this
// should fix correctness for now, at least.
match state.composite_state.compositor_kind {
CompositorKind::Draw { .. } => {
// If there are no primitives there is no need to draw or cache it.
if self.current_descriptor.prims.is_empty() {
return false;
// If there are no primitives there is no need to draw or cache it.
if self.current_descriptor.prims.is_empty() {
// If there is a native compositor surface allocated for this (now empty) tile
// it must be freed here, otherwise the stale tile with previous contents will
// be composited. If the tile subsequently gets new primitives added to it, the
// surface will be re-allocated when it's added to the composite draw list.
if let Some(TileSurface::Texture { descriptor: SurfaceTextureDescriptor::Native { mut id, .. }, .. }) = self.surface.take() {
if let Some(id) = id.take() {
state.resource_cache.destroy_compositor_tile(id);
}
}
CompositorKind::Native { .. } => {
}

return false;
}

// Check if this tile can be considered opaque. Opacity state must be updated only
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.