Alexis Beingessner
8289701d8c
Bug 1536121 - rearchitect the webrender display-list. r=gw
...
disclaimer: this isn't an *amazing* cleanup, but more of a major step that
unlocks the ability to do more minor cleanups and refinements. There's some
messy things and inconsistencies here and there, but we can hopefully iron
them out over time.
1. The primary change here is to move from
struct { common_fields, enum(specific_fields) }
to
enum (maybe_common_fields, specific_fields)
most notably this drops the common fields from a ton of things
that don't need them PopXXX, SetXXX, ClipChain, etc.
2. Additionally some types have had some redundant states shaved off,
for instance, rect no longer has *both* bounds and a clip_rect, as
the intersection of the two can be used. This was done a bit conservatively
as some adjustments will need to be done to the backend to fully eliminate
some states, and this can be done more incrementally.
2.5. As a minor side-effect of 2, we now early-reject some primitives whose
bounds and clip_rect are disjoint.
3. A HitTest display item has been added, which is just a Rect without
color. In addition to the minor space wins from this, this makes it much
easier to debug display lists
4. Adds a bunch of comments to the display list, making it easier to understand
things.
The end result of all these changes is a significantly smaller and easier to
understand display list. Especially on pages like gmail which have so many
clip chains. However this ultimately just makes text an even greater percentage
of pages (often 70-80%).
Differential Revision: https://phabricator.services.mozilla.com/D27439
--HG--
extra : moz-landing-system : lando
2019-04-23 17:29:58 +00:00
Dorel Luca
0caaab0f1e
Backed out 2 changesets (bug 1536121) for Reftest failures
...
Backed out changeset 0fc395a2ac71 (bug 1536121)
Backed out changeset 430032511561 (bug 1536121)
--HG--
extra : rebase_source : 95c710b24ec5b76da20ddb5573036c8c73873e9e
2019-04-23 10:05:14 +03:00
Alexis Beingessner
ee4e394f45
Bug 1536121 - rearchitect the webrender display-list. r=gw
...
disclaimer: this isn't an *amazing* cleanup, but more of a major step that
unlocks the ability to do more minor cleanups and refinements. There's some
messy things and inconsistencies here and there, but we can hopefully iron
them out over time.
1. The primary change here is to move from
struct { common_fields, enum(specific_fields) }
to
enum (maybe_common_fields, specific_fields)
most notably this drops the common fields from a ton of things
that don't need them PopXXX, SetXXX, ClipChain, etc.
2. Additionally some types have had some redundant states shaved off,
for instance, rect no longer has *both* bounds and a clip_rect, as
the intersection of the two can be used. This was done a bit conservatively
as some adjustments will need to be done to the backend to fully eliminate
some states, and this can be done more incrementally.
2.5. As a minor side-effect of 2, we now early-reject some primitives whose
bounds and clip_rect are disjoint.
3. A HitTest display item has been added, which is just a Rect without
color. In addition to the minor space wins from this, this makes it much
easier to debug display lists
4. Adds a bunch of comments to the display list, making it easier to understand
things.
The end result of all these changes is a significantly smaller and easier to
understand display list. Especially on pages like gmail which have so many
clip chains. However this ultimately just makes text an even greater percentage
of pages (often 70-80%).
Differential Revision: https://phabricator.services.mozilla.com/D27439
--HG--
extra : moz-landing-system : lando
2019-04-23 02:32:50 +00:00
Dzmitry Malyshau
7f7b9d9668
Bug 1527325 - Don't re-export contents of WR API units r=gw
...
The cleans up our WR use statements further, easying the merge conflicts.
Note: this PR is subject to instant rot, it is preferred to land quickly.
Differential Revision: https://phabricator.services.mozilla.com/D23373
--HG--
extra : moz-landing-system : lando
2019-03-14 01:44:05 +00:00
Gurzau Raul
fc5efa3bc0
Backed out changeset 950174a8c708 (bug 1527325) for wrench failures on a CLOSED TREE.
2019-03-14 00:56:55 +02:00
Dzmitry Malyshau
5136f1e520
Bug 1527325 - Don't re-export contents of WR API units r=gw
...
The cleans up our WR use statements further, easying the merge conflicts.
Note: this PR is subject to instant rot, it is preferred to land quickly.
Differential Revision: https://phabricator.services.mozilla.com/D23373
--HG--
extra : moz-landing-system : lando
2019-03-13 19:30:56 +00:00
Dzmitry Malyshau
79ad259c7c
Bug 1531217 - Document origin rewrite and framebuffer coordinates r=gw,nical
...
The goal of this change was to simplify the semantics of our document placement and split the logical elements inside (display list) from the actual screen rectangle occupied by a document.
To achieve that, we introduce the framebuffer space for things Y-flipped on screen.
We fix the frame outputs, so that they get produced on the first frame without loopback from the frame building to scene building.
Differential Revision: https://phabricator.services.mozilla.com/D21641
--HG--
extra : moz-landing-system : lando
2019-03-01 17:16:59 +00:00
Csoregi Natalia
b2672c85cf
Backed out changeset 93f7dc3084a1 (bug 1531217) for wrench failures. CLOSED TREE
2019-03-01 18:48:30 +02:00
Dzmitry Malyshau
a8d4f45a20
Bug 1531217 - Document origin rewrite and framebuffer coordinates r=gw,nical
...
The goal of this change was to simplify the semantics of our document placement and split the logical elements inside (display list) from the actual screen rectangle occupied by a document.
To achieve that, we introduce the framebuffer space for things Y-flipped on screen.
We fix the frame outputs, so that they get produced on the first frame without loopback from the frame building to scene building.
Differential Revision: https://phabricator.services.mozilla.com/D21641
--HG--
extra : moz-landing-system : lando
2019-03-01 14:25:36 +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
WR Updater Bot
44eff8f1b7
Bug 1518605 - Update webrender to commit e16ab884672151fbdebc149479f9bfdecd1da216 (WR PR #3251 ). r=kats
...
https://github.com/servo/webrender/pull/3251
Differential Revision: https://phabricator.services.mozilla.com/D16005
--HG--
extra : moz-landing-system : lando
2019-01-09 03:27:04 +00:00
WR Updater Bot
aada6c49ca
Bug 1509495 - Update webrender to commit af2b372624db589115511b4705849a33e6acd35d (WR PR #3277 ). r=kats
...
https://github.com/servo/webrender/pull/3277
Differential Revision: https://phabricator.services.mozilla.com/D12809
--HG--
extra : moz-landing-system : lando
2018-11-23 23:32:57 +00:00
Kartikaya Gupta
2719e9d65e
Bug 1507524 - Move webrender to gfx/wr. r=jrmuizel
...
This patch copies the webrender repository contents into gfx/wr. The
existing files from gfx/webrender, gfx/webrender_api, and gfx/wrench are
moved, and the remaining files are added. The revision being used is the
same as before.
In addition, the mozilla-central top-level Cargo.toml and the
gfx/webrender_bindings/Cargo.toml files are updated to reflect the new
structure.
Differential Revision: https://phabricator.services.mozilla.com/D12059
--HG--
rename : gfx/webrender/src/device/mod.rs => gfx/wr/direct-composition/src/main.rs
rename : gfx/webrender/Cargo.toml => gfx/wr/webrender/Cargo.toml
rename : gfx/webrender/build.rs => gfx/wr/webrender/build.rs
rename : gfx/webrender/doc/CLIPPING_AND_POSITIONING.md => gfx/wr/webrender/doc/CLIPPING_AND_POSITIONING.md
rename : gfx/webrender/doc/blob.md => gfx/wr/webrender/doc/blob.md
rename : gfx/webrender/doc/text-rendering.md => gfx/wr/webrender/doc/text-rendering.md
rename : gfx/webrender/res/Proggy.ttf => gfx/wr/webrender/res/Proggy.ttf
rename : gfx/webrender/res/area-lut.tga => gfx/wr/webrender/res/area-lut.tga
rename : gfx/webrender/res/base.glsl => gfx/wr/webrender/res/base.glsl
rename : gfx/webrender/res/brush.glsl => gfx/wr/webrender/res/brush.glsl
rename : gfx/webrender/res/brush_blend.glsl => gfx/wr/webrender/res/brush_blend.glsl
rename : gfx/webrender/res/brush_image.glsl => gfx/wr/webrender/res/brush_image.glsl
rename : gfx/webrender/res/brush_linear_gradient.glsl => gfx/wr/webrender/res/brush_linear_gradient.glsl
rename : gfx/webrender/res/brush_mix_blend.glsl => gfx/wr/webrender/res/brush_mix_blend.glsl
rename : gfx/webrender/res/brush_radial_gradient.glsl => gfx/wr/webrender/res/brush_radial_gradient.glsl
rename : gfx/webrender/res/brush_solid.glsl => gfx/wr/webrender/res/brush_solid.glsl
rename : gfx/webrender/res/brush_yuv_image.glsl => gfx/wr/webrender/res/brush_yuv_image.glsl
rename : gfx/webrender/res/clip_shared.glsl => gfx/wr/webrender/res/clip_shared.glsl
rename : gfx/webrender/res/cs_blur.glsl => gfx/wr/webrender/res/cs_blur.glsl
rename : gfx/webrender/res/cs_border_segment.glsl => gfx/wr/webrender/res/cs_border_segment.glsl
rename : gfx/webrender/res/cs_border_solid.glsl => gfx/wr/webrender/res/cs_border_solid.glsl
rename : gfx/webrender/res/cs_clip_box_shadow.glsl => gfx/wr/webrender/res/cs_clip_box_shadow.glsl
rename : gfx/webrender/res/cs_clip_image.glsl => gfx/wr/webrender/res/cs_clip_image.glsl
rename : gfx/webrender/res/cs_clip_rectangle.glsl => gfx/wr/webrender/res/cs_clip_rectangle.glsl
rename : gfx/webrender/res/cs_line_decoration.glsl => gfx/wr/webrender/res/cs_line_decoration.glsl
rename : gfx/webrender/res/cs_scale.glsl => gfx/wr/webrender/res/cs_scale.glsl
rename : gfx/webrender/res/debug_color.glsl => gfx/wr/webrender/res/debug_color.glsl
rename : gfx/webrender/res/debug_font.glsl => gfx/wr/webrender/res/debug_font.glsl
rename : gfx/webrender/res/ellipse.glsl => gfx/wr/webrender/res/ellipse.glsl
rename : gfx/webrender/res/gpu_cache.glsl => gfx/wr/webrender/res/gpu_cache.glsl
rename : gfx/webrender/res/gpu_cache_update.glsl => gfx/wr/webrender/res/gpu_cache_update.glsl
rename : gfx/webrender/res/pf_vector_cover.glsl => gfx/wr/webrender/res/pf_vector_cover.glsl
rename : gfx/webrender/res/pf_vector_stencil.glsl => gfx/wr/webrender/res/pf_vector_stencil.glsl
rename : gfx/webrender/res/prim_shared.glsl => gfx/wr/webrender/res/prim_shared.glsl
rename : gfx/webrender/res/ps_split_composite.glsl => gfx/wr/webrender/res/ps_split_composite.glsl
rename : gfx/webrender/res/ps_text_run.glsl => gfx/wr/webrender/res/ps_text_run.glsl
rename : gfx/webrender/res/rect.glsl => gfx/wr/webrender/res/rect.glsl
rename : gfx/webrender/res/render_task.glsl => gfx/wr/webrender/res/render_task.glsl
rename : gfx/webrender/res/shared.glsl => gfx/wr/webrender/res/shared.glsl
rename : gfx/webrender/res/shared_other.glsl => gfx/wr/webrender/res/shared_other.glsl
rename : gfx/webrender/res/snap.glsl => gfx/wr/webrender/res/snap.glsl
rename : gfx/webrender/res/transform.glsl => gfx/wr/webrender/res/transform.glsl
rename : gfx/webrender/src/batch.rs => gfx/wr/webrender/src/batch.rs
rename : gfx/webrender/src/border.rs => gfx/wr/webrender/src/border.rs
rename : gfx/webrender/src/box_shadow.rs => gfx/wr/webrender/src/box_shadow.rs
rename : gfx/webrender/src/capture.rs => gfx/wr/webrender/src/capture.rs
rename : gfx/webrender/src/clip.rs => gfx/wr/webrender/src/clip.rs
rename : gfx/webrender/src/clip_scroll_tree.rs => gfx/wr/webrender/src/clip_scroll_tree.rs
rename : gfx/webrender/src/debug_colors.rs => gfx/wr/webrender/src/debug_colors.rs
rename : gfx/webrender/src/debug_font_data.rs => gfx/wr/webrender/src/debug_font_data.rs
rename : gfx/webrender/src/debug_render.rs => gfx/wr/webrender/src/debug_render.rs
rename : gfx/webrender/src/debug_server.rs => gfx/wr/webrender/src/debug_server.rs
rename : gfx/webrender/src/device/gl.rs => gfx/wr/webrender/src/device/gl.rs
rename : gfx/webrender/src/device/mod.rs => gfx/wr/webrender/src/device/mod.rs
rename : gfx/webrender/src/device/query_gl.rs => gfx/wr/webrender/src/device/query_gl.rs
rename : gfx/webrender/src/display_list_flattener.rs => gfx/wr/webrender/src/display_list_flattener.rs
rename : gfx/webrender/src/ellipse.rs => gfx/wr/webrender/src/ellipse.rs
rename : gfx/webrender/src/frame_builder.rs => gfx/wr/webrender/src/frame_builder.rs
rename : gfx/webrender/src/freelist.rs => gfx/wr/webrender/src/freelist.rs
rename : gfx/webrender/src/gamma_lut.rs => gfx/wr/webrender/src/gamma_lut.rs
rename : gfx/webrender/src/glyph_cache.rs => gfx/wr/webrender/src/glyph_cache.rs
rename : gfx/webrender/src/glyph_rasterizer/mod.rs => gfx/wr/webrender/src/glyph_rasterizer/mod.rs
rename : gfx/webrender/src/glyph_rasterizer/no_pathfinder.rs => gfx/wr/webrender/src/glyph_rasterizer/no_pathfinder.rs
rename : gfx/webrender/src/glyph_rasterizer/pathfinder.rs => gfx/wr/webrender/src/glyph_rasterizer/pathfinder.rs
rename : gfx/webrender/src/gpu_cache.rs => gfx/wr/webrender/src/gpu_cache.rs
rename : gfx/webrender/src/gpu_glyph_renderer.rs => gfx/wr/webrender/src/gpu_glyph_renderer.rs
rename : gfx/webrender/src/gpu_types.rs => gfx/wr/webrender/src/gpu_types.rs
rename : gfx/webrender/src/hit_test.rs => gfx/wr/webrender/src/hit_test.rs
rename : gfx/webrender/src/image.rs => gfx/wr/webrender/src/image.rs
rename : gfx/webrender/src/intern.rs => gfx/wr/webrender/src/intern.rs
rename : gfx/webrender/src/internal_types.rs => gfx/wr/webrender/src/internal_types.rs
rename : gfx/webrender/src/lib.rs => gfx/wr/webrender/src/lib.rs
rename : gfx/webrender/src/picture.rs => gfx/wr/webrender/src/picture.rs
rename : gfx/webrender/src/platform/macos/font.rs => gfx/wr/webrender/src/platform/macos/font.rs
rename : gfx/webrender/src/platform/unix/font.rs => gfx/wr/webrender/src/platform/unix/font.rs
rename : gfx/webrender/src/platform/windows/font.rs => gfx/wr/webrender/src/platform/windows/font.rs
rename : gfx/webrender/src/prim_store.rs => gfx/wr/webrender/src/prim_store.rs
rename : gfx/webrender/src/print_tree.rs => gfx/wr/webrender/src/print_tree.rs
rename : gfx/webrender/src/profiler.rs => gfx/wr/webrender/src/profiler.rs
rename : gfx/webrender/src/record.rs => gfx/wr/webrender/src/record.rs
rename : gfx/webrender/src/render_backend.rs => gfx/wr/webrender/src/render_backend.rs
rename : gfx/webrender/src/render_task.rs => gfx/wr/webrender/src/render_task.rs
rename : gfx/webrender/src/renderer.rs => gfx/wr/webrender/src/renderer.rs
rename : gfx/webrender/src/resource_cache.rs => gfx/wr/webrender/src/resource_cache.rs
rename : gfx/webrender/src/scene.rs => gfx/wr/webrender/src/scene.rs
rename : gfx/webrender/src/scene_builder.rs => gfx/wr/webrender/src/scene_builder.rs
rename : gfx/webrender/src/segment.rs => gfx/wr/webrender/src/segment.rs
rename : gfx/webrender/src/shade.rs => gfx/wr/webrender/src/shade.rs
rename : gfx/webrender/src/spatial_node.rs => gfx/wr/webrender/src/spatial_node.rs
rename : gfx/webrender/src/surface.rs => gfx/wr/webrender/src/surface.rs
rename : gfx/webrender/src/texture_allocator.rs => gfx/wr/webrender/src/texture_allocator.rs
rename : gfx/webrender/src/texture_cache.rs => gfx/wr/webrender/src/texture_cache.rs
rename : gfx/webrender/src/tiling.rs => gfx/wr/webrender/src/tiling.rs
rename : gfx/webrender/src/util.rs => gfx/wr/webrender/src/util.rs
rename : gfx/webrender/tests/angle_shader_validation.rs => gfx/wr/webrender/tests/angle_shader_validation.rs
rename : gfx/webrender/tests/bug_124.html => gfx/wr/webrender/tests/bug_124.html
rename : gfx/webrender/tests/bug_134.html => gfx/wr/webrender/tests/bug_134.html
rename : gfx/webrender/tests/bug_137.html => gfx/wr/webrender/tests/bug_137.html
rename : gfx/webrender/tests/bug_143.html => gfx/wr/webrender/tests/bug_143.html
rename : gfx/webrender/tests/bug_159.html => gfx/wr/webrender/tests/bug_159.html
rename : gfx/webrender/tests/bug_166.html => gfx/wr/webrender/tests/bug_166.html
rename : gfx/webrender/tests/bug_176.html => gfx/wr/webrender/tests/bug_176.html
rename : gfx/webrender/tests/bug_177.html => gfx/wr/webrender/tests/bug_177.html
rename : gfx/webrender/tests/bug_178.html => gfx/wr/webrender/tests/bug_178.html
rename : gfx/webrender/tests/bug_203a.html => gfx/wr/webrender/tests/bug_203a.html
rename : gfx/webrender/tests/bug_203b.html => gfx/wr/webrender/tests/bug_203b.html
rename : gfx/webrender/tests/bug_servo_10136.html => gfx/wr/webrender/tests/bug_servo_10136.html
rename : gfx/webrender/tests/bug_servo_10164.html => gfx/wr/webrender/tests/bug_servo_10164.html
rename : gfx/webrender/tests/bug_servo_10307.html => gfx/wr/webrender/tests/bug_servo_10307.html
rename : gfx/webrender/tests/bug_servo_11358.html => gfx/wr/webrender/tests/bug_servo_11358.html
rename : gfx/webrender/tests/bug_servo_9983a.html => gfx/wr/webrender/tests/bug_servo_9983a.html
rename : gfx/webrender/tests/color_pattern_1.png => gfx/wr/webrender/tests/color_pattern_1.png
rename : gfx/webrender/tests/color_pattern_2.png => gfx/wr/webrender/tests/color_pattern_2.png
rename : gfx/webrender/tests/fixed-position.html => gfx/wr/webrender/tests/fixed-position.html
rename : gfx/webrender/tests/mix-blend-mode-2.html => gfx/wr/webrender/tests/mix-blend-mode-2.html
rename : gfx/webrender/tests/mix-blend-mode.html => gfx/wr/webrender/tests/mix-blend-mode.html
rename : gfx/webrender/tests/nav-1.html => gfx/wr/webrender/tests/nav-1.html
rename : gfx/webrender/tests/nav-2.html => gfx/wr/webrender/tests/nav-2.html
rename : gfx/webrender_api/Cargo.toml => gfx/wr/webrender_api/Cargo.toml
rename : gfx/webrender_api/src/api.rs => gfx/wr/webrender_api/src/api.rs
rename : gfx/webrender_api/src/channel.rs => gfx/wr/webrender_api/src/channel.rs
rename : gfx/webrender_api/src/channel_ipc.rs => gfx/wr/webrender_api/src/channel_ipc.rs
rename : gfx/webrender_api/src/channel_mpsc.rs => gfx/wr/webrender_api/src/channel_mpsc.rs
rename : gfx/webrender_api/src/color.rs => gfx/wr/webrender_api/src/color.rs
rename : gfx/webrender_api/src/display_item.rs => gfx/wr/webrender_api/src/display_item.rs
rename : gfx/webrender_api/src/display_list.rs => gfx/wr/webrender_api/src/display_list.rs
rename : gfx/webrender_api/src/font.rs => gfx/wr/webrender_api/src/font.rs
rename : gfx/webrender_api/src/gradient_builder.rs => gfx/wr/webrender_api/src/gradient_builder.rs
rename : gfx/webrender_api/src/image.rs => gfx/wr/webrender_api/src/image.rs
rename : gfx/webrender_api/src/lib.rs => gfx/wr/webrender_api/src/lib.rs
rename : gfx/webrender_api/src/units.rs => gfx/wr/webrender_api/src/units.rs
rename : gfx/wrench/.gitignore => gfx/wr/wrench/.gitignore
rename : gfx/wrench/Cargo.toml => gfx/wr/wrench/Cargo.toml
rename : gfx/wrench/README.md => gfx/wr/wrench/README.md
rename : gfx/wrench/build.rs => gfx/wr/wrench/build.rs
rename : gfx/webrender/res/Proggy.ttf => gfx/wr/wrench/reftests/text/Proggy.ttf
rename : gfx/wrench/res/wrench.exe.manifest => gfx/wr/wrench/res/wrench.exe.manifest
rename : gfx/wrench/src/angle.rs => gfx/wr/wrench/src/angle.rs
rename : gfx/wrench/src/args.yaml => gfx/wr/wrench/src/args.yaml
rename : gfx/wrench/src/binary_frame_reader.rs => gfx/wr/wrench/src/binary_frame_reader.rs
rename : gfx/wrench/src/blob.rs => gfx/wr/wrench/src/blob.rs
rename : gfx/wrench/src/cgfont_to_data.rs => gfx/wr/wrench/src/cgfont_to_data.rs
rename : gfx/wrench/src/egl.rs => gfx/wr/wrench/src/egl.rs
rename : gfx/wrench/src/json_frame_writer.rs => gfx/wr/wrench/src/json_frame_writer.rs
rename : gfx/wrench/src/main.rs => gfx/wr/wrench/src/main.rs
rename : gfx/wrench/src/parse_function.rs => gfx/wr/wrench/src/parse_function.rs
rename : gfx/wrench/src/perf.rs => gfx/wr/wrench/src/perf.rs
rename : gfx/wrench/src/png.rs => gfx/wr/wrench/src/png.rs
rename : gfx/wrench/src/premultiply.rs => gfx/wr/wrench/src/premultiply.rs
rename : gfx/wrench/src/rawtest.rs => gfx/wr/wrench/src/rawtest.rs
rename : gfx/wrench/src/reftest.rs => gfx/wr/wrench/src/reftest.rs
rename : gfx/wrench/src/ron_frame_writer.rs => gfx/wr/wrench/src/ron_frame_writer.rs
rename : gfx/wrench/src/scene.rs => gfx/wr/wrench/src/scene.rs
rename : gfx/wrench/src/wrench.rs => gfx/wr/wrench/src/wrench.rs
rename : gfx/wrench/src/yaml_frame_reader.rs => gfx/wr/wrench/src/yaml_frame_reader.rs
rename : gfx/wrench/src/yaml_frame_writer.rs => gfx/wr/wrench/src/yaml_frame_writer.rs
rename : gfx/wrench/src/yaml_helper.rs => gfx/wr/wrench/src/yaml_helper.rs
extra : moz-landing-system : lando
2018-11-22 21:47:48 +00:00