Commit Graph

85 Commits

Author SHA1 Message Date
Timothy Nikkel
487492593e Bug 1505871. Implement putting the required data in the gpu cache for component transfer. r=gw
For table/discrete we just create a lookup table for all 256 possible input values. We should probably switch to just computing the value in the shader, unless the list of value is really long.
2019-02-26 00:16:37 -06:00
Timothy Nikkel
02ac32975f Bug 1505871. Implement the necessary things for interning of filter data. r=gw 2019-02-26 00:16:36 -06:00
Timothy Nikkel
f39f60fa91 Bug 1505871. Write component transfer filter data into the webrender display list bitstream. r=jrmuizel
The format for stacking contexts in the built display list goes from

PushStackingContext item
push_iter of Vec<FilterOp>

to

SetFilterOps item
push_iter of Vec<FilterOp>
1st SetFilterData item
push_iter of array of func types
push_iter funcR values
push_iter funcG values
push_iter funcB values
push_iter funcA values
.
.
.
nth SetFilterData item
push_iter of array of func types
push_iter funcR values
push_iter funcG values
push_iter funcB values
push_iter funcA values
PushStackingContext item

We need separate a SetFilterData item for each filter because we can't push_iter a variable sized thing.

When we iterate over the built display list to flatten it we work similarly to how gradients work with a SetGradientStops item before the actual gradient item. So when we see SetFilterOps or SetFilterData we use them to fill out values on the built display list iterator but don't those items return them to the iterator user and instead continue iterating until we hit the PushStackingContext item, at which point to the iterator consumer it appears as those the FilterOps and FilterDatas were on the PushStackingContext item. (This part is trickier too since we need a TempFilterData type that just holds ItemRange's until we get the actual bytes later.)

Do we need to clear cur_filters and cur_filter_data at some point to prevent them from getting ready by items for which they do not apply?
2019-02-26 00:16:36 -06:00
Timothy Nikkel
213203d8e5 Backed out changeset 90660632d641 2019-02-25 22:48:04 -06:00
Timothy Nikkel
8238bfd239 Backed out changeset 11c9d5a64a30 2019-02-25 22:47:40 -06:00
Timothy Nikkel
22cf8be9b7 Bug 1505871. Implement the necessary things for interning of filter data. r=gw 2019-02-25 22:45:16 -06:00
Timothy Nikkel
5455bb5b62 Bug 1505871. Write component transfer filter data into the webrender display list bitstream. r=jrmuizel
The format for stacking contexts in the built display list goes from

PushStackingContext item
push_iter of Vec<FilterOp>

to

SetFilterOps item
push_iter of Vec<FilterOp>
1st SetFilterData item
push_iter of array of func types
push_iter funcR values
push_iter funcG values
push_iter funcB values
push_iter funcA values
.
.
.
nth SetFilterData item
push_iter of array of func types
push_iter funcR values
push_iter funcG values
push_iter funcB values
push_iter funcA values
PushStackingContext item

We need separate a SetFilterData item for each filter because we can't push_iter a variable sized thing.

When we iterate over the built display list to flatten it we work similarly to how gradients work with a SetGradientStops item before the actual gradient item. So when we see SetFilterOps or SetFilterData we use them to fill out values on the built display list iterator but don't those items return them to the iterator user and instead continue iterating until we hit the PushStackingContext item, at which point to the iterator consumer it appears as those the FilterOps and FilterDatas were on the PushStackingContext item. (This part is trickier too since we need a TempFilterData type that just holds ItemRange's until we get the actual bytes later.)

Do we need to clear cur_filters and cur_filter_data at some point to prevent them from getting ready by items for which they do not apply?
2019-02-25 22:45:15 -06:00
Noemi Erli
a50bfca7a3 Backed out 10 changesets (bug 1505871) for wrench bustages CLOSED TREE
Backed out changeset 045ab0ec3613 (bug 1505871)
Backed out changeset 6486435a048d (bug 1505871)
Backed out changeset 9be871042749 (bug 1505871)
Backed out changeset 0007feaf988d (bug 1505871)
Backed out changeset 3cb8fb01e77e (bug 1505871)
Backed out changeset 2fff213d97e3 (bug 1505871)
Backed out changeset 1ad20d485eca (bug 1505871)
Backed out changeset 0fd8742fa662 (bug 1505871)
Backed out changeset 1899600a7985 (bug 1505871)
Backed out changeset f9578d20e54e (bug 1505871)
2019-02-26 03:43:12 +02:00
Timothy Nikkel
884401cb0c Bug 1505871. Implement putting the required data in the gpu cache for component transfer. r=gw
For table/discrete we just create a lookup table for all 256 possible input values. We should probably switch to just computing the value in the shader, unless the list of value is really long.
2019-02-25 19:20:28 -06:00
Timothy Nikkel
a4387cfbd9 Bug 1505871. Implement the necessary things for interning of filter data. r=gw 2019-02-25 19:20:27 -06:00
Timothy Nikkel
e2881f6cb4 Bug 1505871. Write component transfer filter data into the webrender display list bitstream. r=jrmuizel
The format for stacking contexts in the built display list goes from

PushStackingContext item
push_iter of Vec<FilterOp>

to

SetFilterOps item
push_iter of Vec<FilterOp>
1st SetFilterData item
push_iter of array of func types
push_iter funcR values
push_iter funcG values
push_iter funcB values
push_iter funcA values
.
.
.
nth SetFilterData item
push_iter of array of func types
push_iter funcR values
push_iter funcG values
push_iter funcB values
push_iter funcA values
PushStackingContext item

We need separate a SetFilterData item for each filter because we can't push_iter a variable sized thing.

When we iterate over the built display list to flatten it we work similarly to how gradients work with a SetGradientStops item before the actual gradient item. So when we see SetFilterOps or SetFilterData we use them to fill out values on the built display list iterator but don't those items return them to the iterator user and instead continue iterating until we hit the PushStackingContext item, at which point to the iterator consumer it appears as those the FilterOps and FilterDatas were on the PushStackingContext item. (This part is trickier too since we need a TempFilterData type that just holds ItemRange's until we get the actual bytes later.)

Do we need to clear cur_filters and cur_filter_data at some point to prevent them from getting ready by items for which they do not apply?
2019-02-25 19:20:27 -06:00
Coroiu Cristina
6a915c899d Merge mozilla-central to inbound a=merge 2019-02-22 18:41:16 +02:00
Nicolas Silva
b9092ff14c Bug 1528753 - Update euclid dependency. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D20176

--HG--
extra : moz-landing-system : lando
2019-02-21 14:41:36 +00:00
Nicolas Silva
a9803d039d Bug 1529272 - Reduce the amount of allocations, hashing and moves related to FontInstance. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D20503

--HG--
extra : source : 8c408c32fb6fdd1162938336ab26ece65a249c82
extra : histedit_source : c19032ba76065988f2fb4bc62d207e2437bfb90e
2019-02-22 14:53:37 +01:00
Kartikaya Gupta
c366cdefb9 Bug 1528987 - Send the gecko scroll offsets for scrollframes to WR. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D20667

--HG--
extra : moz-landing-system : lando
2019-02-21 21:06:25 +00:00
Csoregi Natalia
208f1b790a Backed out 2 changesets (bug 1529117) for failures on webdriver/tests/new_session/invalid_capabilities.py. CLOSED TREE
Backed out changeset 27882e7ca2a9 (bug 1529117)
Backed out changeset fcfafe134f70 (bug 1529117)
2019-02-20 18:20:49 +02:00
Kartikaya Gupta
15cd3ce2f6 Bug 1529117 - Bump serde_derive to branch from 1.0.88. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D20460

--HG--
extra : moz-landing-system : lando
2019-02-20 13:58:32 +00:00
Dzmitry Malyshau
78eba476ed Bug 1527325 - Refactor webrender_api includes r=gw,nical
Differential Revision: https://phabricator.services.mozilla.com/D19499

--HG--
extra : moz-landing-system : lando
2019-02-15 18:59:31 +00:00
Noemi Erli
0e4944369a Backed out changeset 541f044e3e7b (bug 1527325) for webrender bustage CLOSED TREE 2019-02-15 20:14:54 +02:00
Dzmitry Malyshau
1a4b75a034 Bug 1527325 - Refactor webrender_api includes r=gw,nical
Differential Revision: https://phabricator.services.mozilla.com/D19499

--HG--
extra : moz-landing-system : lando
2019-02-15 17:39:40 +00:00
Nicolas Silva
b32dce70e6 Bug 1527884 - WebRender version 0.60.0. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D19796

--HG--
extra : moz-landing-system : lando
2019-02-15 02:54:40 +00:00
Bogdan Tara
3ccaa3b9ba Backed out changeset e23608ddeac0 (bug 1527884) for wrench bustages CLOSED TREE 2019-02-14 16:43:24 +02:00
Nicolas Silva
3d93798308 Bug 1527884 - WebRender version 0.60.0. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D19780

--HG--
extra : moz-landing-system : lando
2019-02-14 13:40:51 +00:00
Glenn Watson
d8ff6b6597 Bug 1525500 - Add a zoom debugging widget in webrender. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D18776

--HG--
extra : moz-landing-system : lando
2019-02-06 10:20:39 +00:00
Dzmitry Malyshau
5a351be647 Bug 1521656 - WR switch image UV quad coordinates into homogeneous space r=gw
For screen-space rasterized images, we provide the shader with the
    UV corners of an image. The shaders then interpolate between the corners
    as an intermediate step of finding their UV to assign to a vertex.

    When the transformation is perspective, the corners stop being
    representative in real screen space, and the old code didn't handle the
    case of a corner being out of the positive hemisphere. This change
    doesn't do perspective division on Rust side and defers this to the
    shader, which can do division *after* interpolation between corners.

    This change makes us handle the near plane better and resolves clipping
    problems with perspective-interpolated images that occured due to
    precision issues of perspective divided corners.

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

--HG--
extra : moz-landing-system : lando
2019-01-31 02:50:38 +00:00
Emilio Cobos Álvarez
a2231bd95c Bug 1498639 - Give WR the id of the scroll frame perspective scrolls relative to, and compute the right transform based on that. r=kats,kvark
I think this is as clean as it can get.

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

--HG--
extra : moz-landing-system : lando
2019-01-28 23:41:08 +00:00
Glenn Watson
a792eb73a1 Bug 1522395 - Fix double inflation of text shadow bounds. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D17468

--HG--
extra : moz-landing-system : lando
2019-01-25 00:28:46 +00:00
Bobby Holley
bf4d481f78 Bug 1522017 - Make picture caching explicit. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D17435
2019-01-24 10:44:35 -08:00
Lee Salzman
c7d1539b15 Bug 1455848 - use paths for WR font handles on Windows. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D16896
2019-01-17 15:45:07 -05:00
Razvan Maries
6161f7cc5b Backed out 4 changesets (bug 1455848) for windows wrench failures. CLOSED TREE
Backed out changeset d56504db04ea (bug 1455848)
Backed out changeset f2279ecacb81 (bug 1455848)
Backed out changeset 44a36f0fe512 (bug 1455848)
Backed out changeset b8444f241aca (bug 1455848)
2019-01-24 00:56:40 +02:00
Lee Salzman
bd0b2ed9f0 Bug 1455848 - use paths for WR font handles on Windows. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D16896
2019-01-17 15:45:07 -05:00
Bobby Holley
819658d44b Bug 1521187 - Derive more. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D17029
2019-01-22 12:19:22 -08:00
Bobby Holley
c0182b02f9 Bug 1521187 - Add a dependency on derive_more. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D17028


--HG--
rename : third_party/rust/semver/.cargo-checksum.json => third_party/rust/semver-0.6.0/.cargo-checksum.json
rename : third_party/rust/semver/Cargo.toml => third_party/rust/semver-0.6.0/Cargo.toml
rename : third_party/rust/semver/README.md => third_party/rust/semver-0.6.0/README.md
rename : third_party/rust/semver/src/lib.rs => third_party/rust/semver-0.6.0/src/lib.rs
rename : third_party/rust/semver/src/version.rs => third_party/rust/semver-0.6.0/src/version.rs
rename : third_party/rust/semver/src/version_req.rs => third_party/rust/semver-0.6.0/src/version_req.rs
2019-01-22 12:19:22 -08:00
Bobby Holley
0d9b3416c9 Bug 1520678 - Simplify naming of interner and data_store instances. r=kamidphish
Depends on D16780

Differential Revision: https://phabricator.services.mozilla.com/D16781
2019-01-17 22:21:48 -08:00
Bobby Holley
8120983fd7 Bug 1520678 - Declare intern-related types in a structured way. r=kamidphish
Differential Revision: https://phabricator.services.mozilla.com/D16779
2019-01-17 22:21:41 -08:00
Bogdan Tara
b93f9fb7c3 Backed out 4 changesets (bug 1520678) for build bustages complaining no field resources CLOSED TREE
Backed out changeset ad7c9c863c2e (bug 1520678)
Backed out changeset 64717bf7f849 (bug 1520678)
Backed out changeset 5fa2f414676e (bug 1520678)
Backed out changeset 1d2ae392021c (bug 1520678)
2019-01-18 04:05:26 +02:00
Bobby Holley
1cc37c6e8c Bug 1520678 - Simplify naming of interner and data_store instances. r=kamidphish
Depends on D16780

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

--HG--
extra : moz-landing-system : lando
2019-01-18 00:45:13 +00:00
Bobby Holley
9dd944fbdf Bug 1520678 - Declare intern-related types in a structured way. r=kamidphish
Differential Revision: https://phabricator.services.mozilla.com/D16779

--HG--
extra : moz-landing-system : lando
2019-01-18 00:39:24 +00:00
Emilio Cobos Álvarez
2c1aaa2304 Bug 1520851 - Make a reference frame's transform not optional. r=kvark
No good reason for it to be an option.

Differential Revision: https://phabricator.services.mozilla.com/D16876
2019-01-17 21:13:15 +01:00
Emilio Cobos Álvarez
4a8ff157a5 Bug 1520664 - Cleanup ReferenceFrame so that each of them has a single matrix. r=kvark
The only thing using both was perspective, but that's not really needed with the current setup.

This more closely matches Gecko, too.

Differential Revision: https://phabricator.services.mozilla.com/D16764
2019-01-17 21:13:07 +01:00
Brindusan Cristian
ac9bb930c9 Backed out changeset bbc57e229df6 (bug 1520664) for webrender bustages. CLOSED TREE 2019-01-17 19:20:00 +02:00
Emilio Cobos Álvarez
3fe4fef309 Bug 1520664 - Bug 1498639 - Cleanup ReferenceFrame so that each of them has a single matrix. r=kvark
The only thing using both was perspective, but that's not really needed with the current setup.

This more closely matches Gecko, too.

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

--HG--
extra : moz-landing-system : lando
2019-01-17 16:08:35 +00:00
Bobby Holley
e12967b520 Bug 1520275 - Add primitive debug display. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D16593
2019-01-16 15:25:25 -08:00
Cosmin Sabou
c5393102ee Backed out changeset 0b1911ea8b8b (bug 1520275) for qr wrench bustages. CLOSED TREE 2019-01-16 21:22:29 +02:00
Bobby Holley
7635435179 Bug 1520275 - Add primitive debug display. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D16593
2019-01-16 10:55:11 -08:00
Mathijs Henquet
b280254a84 Bug 1519536 - Remove rustdoc of removed argument. r=kvark
Depends on D16359

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

--HG--
extra : moz-landing-system : lando
2019-01-14 15:38:59 +00:00
Bobby Holley
dc649b23cc Bug 1519454 - Use a macro to declare interners and hook up memory reporters. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D16356
2019-01-12 12:36:27 -08:00
Bobby Holley
1f5bd4be39 Bug 1519454 - Implement MallocSizeOf for Interner and DataStore. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D16355
2019-01-12 12:36:26 -08:00
Bobby Holley
e888d6e804 Bug 1519454 - Hook up MallocSizeOf and use it to replace some manual reporting. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D16354
2019-01-12 12:36:24 -08:00
Bobby Holley
b381fba212 Bug 1519454 - Put malloc_size_of_derive on crates.io, and add a reduced fork of malloc_size_of for WebRender. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D16353


--HG--
rename : servo/components/malloc_size_of_derive/LICENSE-APACHE => gfx/wr/wr_malloc_size_of/LICENSE-APACHE
rename : servo/components/malloc_size_of_derive/LICENSE-MIT => gfx/wr/wr_malloc_size_of/LICENSE-MIT
rename : servo/components/malloc_size_of_derive/LICENSE-APACHE => third_party/rust/malloc_size_of_derive/LICENSE-APACHE
rename : servo/components/malloc_size_of_derive/LICENSE-MIT => third_party/rust/malloc_size_of_derive/LICENSE-MIT
rename : servo/components/malloc_size_of_derive/lib.rs => third_party/rust/malloc_size_of_derive/lib.rs
2019-01-12 12:36:22 -08:00