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

13 Коммитов

Автор SHA1 Сообщение Дата
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