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

3869 Коммитов

Автор SHA1 Сообщение Дата
Tamas Szentpeteri bfedcb8a24 Backed out 2 changesets (bug 1750348) for causing wrench build bustages. CLOSED TREE
Backed out changeset e8be336b431d (bug 1750348)
Backed out changeset 7a6e8cd3c017 (bug 1750348)
2024-05-15 12:23:23 +03:00
Yannis Juglaret 2b7d33e341 Bug 1750348 - Recompute scissor_rect after invalidation. r=gw
Depends on D210341

Differential Revision: https://phabricator.services.mozilla.com/D210342
2024-05-15 07:07:04 +00:00
Glenn Watson 632a3c1569 Bug 1750348 - Catch float accuracy issues when drawing near zero-sized tiles. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D210341
2024-05-15 07:07:04 +00:00
Chris H-C 9f4b4ab30a Bug 1895786 - Vendor Glean SDK v60.1.0 r=TravisLong,supply-chain-reviewers,mach-reviewers,android-reviewers,Roger
The biggest thing for m-c is the addition of a single-duration API for
timing_distribution that was previously papered over in the FOG-specific impl
using the SDK's multi-duration API.

This ought to drop unnecessary `vec![]`-caused allocations for some fairly-
high-frequency calls to AccumulateRawDuration.

Differential Revision: https://phabricator.services.mozilla.com/D209864
2024-05-14 14:42:14 +00:00
Nicolas Silva 0ce772b727 Bug 1892398 - Supply local space coords to compositing quads when drawing patterns. r=gw
The quad primitive info takes a scale+offset transform which is applied to the coordinate space of the pattern. This allows the quad coorinates to be optionally specified in device space while the pattern remains in layout space.

Differential Revision: https://phabricator.services.mozilla.com/D209694
2024-05-14 08:26:31 +00:00
Glenn Watson faea296910 Bug 1893088 - Split coord space mapping for stacking context coord / external scroll offsets r=gfx-reviewers,nical
During display list and scene building, there are two coordinate
remapping steps that occur:

1) From stacking context coords -> reference frame relative coords
2) From pre-scrolled coords -> removed external scrolling offsets

These were previously handled in one place, however we want to
split these up so that we can apply snapping _after_ step 1 but
prior to step 2. This will allow us to have fractional external
scroll offsets that don't affect snapping. These will be snapped
later on during frame build after applying any (possibly fractional
APZ scroll offsets). This is a cheap operation during frame building
as we only need to snap and modify the transform matrices, not
individual primitives.

This patch should have no functional changes, it's prep work for
the changes referenced above. It does move all of step 1 to be
done during DL building in the content process, and all of step
2 to be done during scene building in the GPU process. In future,
if/when we resolve the issues we have with reliance on cross-iframe
knowledge for fractional snapping, we can move step 2 (including
snapping) in to the content process as well.

Further, as part of the DL bypass work, we will need to remap coord
spaces during DL building in a differeny way, which this simplifies.

Differential Revision: https://phabricator.services.mozilla.com/D208427
2024-05-13 21:03:18 +00:00
Nicolas Silva cfb3aee8db Bug 1892398 - Rename unclipped_surface_rect and add comments about incorrect/missing pieces. r=gw
No behavior change in this patch.

Differential Revision: https://phabricator.services.mozilla.com/D209665
2024-05-13 08:23:58 +00:00
Jamie Nicol ed9da08589 Bug 1895585 - Avoid creating tile caches for sticky frames if subpixel AA is preferred over performance. r=gw
Bug 1886739 made it so that we attempt to give sticky frames their own
tile caches as a performance improvement. A consequence of this is
that it may shift content in to non-opaque tiles, which in turn
prevents subpixel AA from being used.

This tradeoff already exists when deciding to give fixed position
frames their own tile caches, therefore we allow users to prefer
subpixel AA over the improved performance via the pref
gfx.webrender.quality.force-subpixel-aa-where-possible. This patch
makes us take the value of that pref in to account when deciding
whether to layerize sticky frames, as well as fixed position ones.

Differential Revision: https://phabricator.services.mozilla.com/D209923
2024-05-10 13:03:31 +00:00
Yannis Juglaret 51397edb53 Bug 1893205 - Properly reset the dirty rect in PicturePrimitive::take_context. r=gw
When we reset the dirty rect to PictureRect::zero() on a Tile, we must
also mark the Tile as valid. This prevents the propagation of zero-area
rectangles which can otherwise ultimately cause BeginDraw failures.

Differential Revision: https://phabricator.services.mozilla.com/D209340
2024-05-10 09:21:00 +00:00
Ashley Hale 9550883a0c Bug 1824502 - Implement native SVG filter rendering in WebRender r=gw
Differential Revision: https://phabricator.services.mozilla.com/D209646
2024-05-09 04:09:00 +00:00
Sandor Molnar c34cf367c2 Backed out changeset a0b3e2669a2d (bug 1824502) for causing wrench failures. CLOSED TREE 2024-05-08 08:31:30 +03:00
Ashley Hale 82db1e3cc5 Bug 1824502 - Implement native SVG filter rendering in WebRender r=gw
Differential Revision: https://phabricator.services.mozilla.com/D209646
2024-05-08 04:38:26 +00:00
Glenn Watson d05f95c14b Bug 1894399 - Temporarily disable quad-style gradients from rendering in tiled / nine-patch mode. r=gfx-reviewers,nical
This will cause a (small) GPU performance regression in some cases
(large radial gradients that have a clip mask on them), but fixes
the correctness issues we have for now. We intend to fix the
underlying problem (bug #1892398) soon and then re-enable these
primitives to use tiled / nine-patch render modes.

Differential Revision: https://phabricator.services.mozilla.com/D209077
2024-05-07 00:33:44 +00:00
Norisz Fay da85a702a3 Backed out changeset 294948fc5ef3 (bug 1894399) for causing webrender bustage CLOSED TREE 2024-05-07 01:36:50 +03:00
Glenn Watson 92766666d5 Bug 1894399 - Temporarily disable quad-style gradients from rendering in tiled / nine-patch mode. r=gfx-reviewers,nical
This will cause a (small) GPU performance regression in some cases
(large radial gradients that have a clip mask on them), but fixes
the correctness issues we have for now. We intend to fix the
underlying problem (bug #1892398) soon and then re-enable these
primitives to use tiled / nine-patch render modes.

Differential Revision: https://phabricator.services.mozilla.com/D209077
2024-05-06 19:33:56 +00:00
Nicolas Silva 6bc956c386 Bug 1892398 - Don't hard-code that quad segments with a source render task are alpha blended. r=gw
Not immediately necessary but when cached quads or patterns that read a texture are implemented, There will be opaque segments taking render tasks as input. Currently the code is a bit error prone because some parts of the code advertize a certain behavior that is later overruled. This patch makes things more explicit and flexible.

Differential Revision: https://phabricator.services.mozilla.com/D208508
2024-05-06 05:53:40 +00:00
Nicolas Silva 604bbc736c Bug 1892398 - Rename a couple of render task variables for clarity. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D208507
2024-05-06 05:53:39 +00:00
Botond Ballo b7116da08f Bug 1874199 - Add support for animation properties on StickyFrame spatial nodes. r=gw
The support is currently limited to translation transforms.

Depends on D208236

Differential Revision: https://phabricator.services.mozilla.com/D208237
2024-05-02 02:49:21 +00:00
Botond Ballo 64de57eafb Bug 1874199 - Split the handling of StickyFrame and ScrollFrame in SpatialNode::update_transform(). r=gw
The two cases share some code, but the next patch will add extra logic
specific to the StickyFrame case, which makes it cleaner to split them.

Differential Revision: https://phabricator.services.mozilla.com/D208236
2024-05-02 02:49:21 +00:00
pstanciu 06d741f4fa Backed out 4 changesets (bug 1874199) for causing WR bustages CLOSED TREE
Backed out changeset 0367fe61d2c9 (bug 1874199)
Backed out changeset 00d4835ec154 (bug 1874199)
Backed out changeset 4c6a338c5c30 (bug 1874199)
Backed out changeset 9756d029484d (bug 1874199)
2024-05-02 04:30:55 +03:00
Botond Ballo 25253183fb Bug 1874199 - Add support for animation properties on StickyFrame spatial nodes. r=gw
The support is currently limited to translation transforms.

Depends on D208236

Differential Revision: https://phabricator.services.mozilla.com/D208237
2024-05-02 00:14:01 +00:00
Botond Ballo 0d059931c0 Bug 1874199 - Split the handling of StickyFrame and ScrollFrame in SpatialNode::update_transform(). r=gw
The two cases share some code, but the next patch will add extra logic
specific to the StickyFrame case, which makes it cleaner to split them.

Differential Revision: https://phabricator.services.mozilla.com/D208236
2024-05-02 00:14:01 +00:00
Stanca Serban 9dd6c7da25 Backed out changeset 9f9a83173704 (bug 1893088) for causing talos related process-crashes. 2024-05-01 11:58:20 +03:00
Jamie Nicol fd1da0fb91 Bug 1892601 - Fix parsing of Mali driver version without trailing characters. r=gfx-reviewers,lsalzman
To determine whether to work around a known driver bug (bug 1787520)
affecting certain Mali drivers, we parse the GL_VERSION string which
follows a common format on Mali devices.

In this bug, however, we encountered a device with a slightly
different version format. The "v", "r" and "p" numbers we care about
are still present, but the trailing string that begins with a "-" was
not. This was tripping up our parsing logic even though we ignore its
value. This patch handles the case where the trailing string is not
present, meaning we correctly apply the existing workaround, and avoid
the bug on this device.

Differential Revision: https://phabricator.services.mozilla.com/D209004
2024-04-30 16:28:23 +00:00
Glenn Watson 7a0189e02b Bug 1893088 - Split coord space mapping for stacking context coord / external scroll offsets r=gfx-reviewers,nical
During display list and scene building, there are two coordinate
remapping steps that occur:

1) From stacking context coords -> reference frame relative coords
2) From pre-scrolled coords -> removed external scrolling offsets

These were previously handled in one place, however we want to
split these up so that we can apply snapping _after_ step 1 but
prior to step 2. This will allow us to have fractional external
scroll offsets that don't affect snapping. These will be snapped
later on during frame build after applying any (possibly fractional
APZ scroll offsets). This is a cheap operation during frame building
as we only need to snap and modify the transform matrices, not
individual primitives.

This patch should have no functional changes, it's prep work for
the changes referenced above. It does move all of step 1 to be
done during DL building in the content process, and all of step
2 to be done during scene building in the GPU process. In future,
if/when we resolve the issues we have with reliance on cross-iframe
knowledge for fractional snapping, we can move step 2 (including
snapping) in to the content process as well.

Further, as part of the DL bypass work, we will need to remap coord
spaces during DL building in a differeny way, which this simplifies.

Differential Revision: https://phabricator.services.mozilla.com/D208427
2024-04-29 23:49:00 +00:00
Jan-Erik Rediger d23d51f602 Bug 1891745 - Update to Glean v60 and glean_parser v14 r=TravisLong,supply-chain-reviewers,mach-reviewers,android-reviewers,firefox-desktop-core-reviewers ,mconley,ahal,kaya
Differential Revision: https://phabricator.services.mozilla.com/D207869
2024-04-24 19:14:16 +00:00
Nicolas Silva 412213f734 Bug 1892398 - Remove unused prim_spatial_node_index in PrimTask. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D208314
2024-04-24 13:07:30 +00:00
Nicolas Silva b1c58ded7a Bug 1892201 - Remove unused RenderTaskParent::Surface field. r=gfx-reviewers,gw
Differential Revision: https://phabricator.services.mozilla.com/D208313
2024-04-24 13:07:29 +00:00
Nicolas Silva 401708e2b9 Bug 1889792 - Approximate atan2 in conic gradients. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D207580
2024-04-23 10:54:50 +00:00
Nicolas Silva c68770099b Bug 1887837 - Conic gradient quad shader (initially disabled). r=gw
Differential Revision: https://phabricator.services.mozilla.com/D205985
2024-04-23 10:54:49 +00:00
Nicolas Silva 661b99d7aa Bug 1891543 - Ensure large occluders are added at the top of the opaque batch list. r=gw
Before this patch, a large occluder can end up being rendered late if current_batch_index does not point to the top of the batch list.
This helps swgl a lot on slack which has an enormous background conic gradient.

Differential Revision: https://phabricator.services.mozilla.com/D207556
2024-04-23 10:54:49 +00:00
Aron Cseh 6d68d75755 Backed out 3 changesets (bug 1889792, bug 1891543, bug 1887837) for causing multiple build bustages CLOSED TREE
Backed out changeset 88bfb8f16975 (bug 1889792)
Backed out changeset 4112523a0a44 (bug 1887837)
Backed out changeset e8b71d75ac28 (bug 1891543)
2024-04-23 12:23:20 +03:00
Nicolas Silva 1bde1f5ca4 Bug 1889792 - Approximate atan2 in conic gradients. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D207580
2024-04-23 08:37:46 +00:00
Nicolas Silva 0378fa840a Bug 1887837 - Conic gradient quad shader (initially disabled). r=gw
Differential Revision: https://phabricator.services.mozilla.com/D205985
2024-04-23 08:37:46 +00:00
Nicolas Silva 9b5a6e8b06 Bug 1891543 - Ensure large occluders are added at the top of the opaque batch list. r=gw
Before this patch, a large occluder can end up being rendered late if current_batch_index does not point to the top of the batch list.
This helps swgl a lot on slack which has an enormous background conic gradient.

Differential Revision: https://phabricator.services.mozilla.com/D207556
2024-04-23 08:37:45 +00:00
Nicolas Silva a278fc9a7d Bug 1892398 - Handle quad nine-patches in a single loop. r=gw
This patch mainly extracts the direct/indirect quad segment separation in the scratch buffers from D207657

Differential Revision: https://phabricator.services.mozilla.com/D208104
2024-04-23 07:42:45 +00:00
Ashley Hale bcc703fbc9 Bug 1891322 - more robust solution for NaN offset in gradients r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D207904
2024-04-19 05:31:20 +00:00
Nicolas Silva b4a0426fbf Bug 1888628 - Extract the texture sampling logic out of ps_quad.glsl. r=gw
This simplifies the common infrastructure, removes two varyings from the common set and will allow other patterns to handle sampling differently if they need it (for example an upcoming repeating pattern).

In addition:
 - the color parameter is always passed to the fragment shader (it used to be only when no uv_rect was passed).
 - v_flags was reorganized a bit so that w is used by the common infrastructure and xyz are available for patterns to use.

Differential Revision: https://phabricator.services.mozilla.com/D206098
2024-04-16 16:26:28 +00:00
Nicolas Silva 30e937eddd Bug 1888400 - Add a test. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D206099
2024-04-16 16:26:28 +00:00
Nicolas Silva bdeac260c5 Bug 1885571 - Quad radial gradient shader. r=gw
For now we skip the quad path if the gradient is tiled. The plan is to add a repeating quad pattern that can repeat the result of a render task and get all quad patterns to use that.

Differential Revision: https://phabricator.services.mozilla.com/D204774
2024-04-16 16:26:27 +00:00
Nicolas Silva aeeef327a0 Bug 1888400 - Fix quad nine-patches for non-color primimitves. r=gw
The loop was submitting a single command in the command buffer, always using the textured quad shader which worked when the interior is a solid color but not for other patterns.
This patch goes over the nine-patch segments twice, first generating a segmented primitive for the interrior with the appropriate pattern shader, and then the corners with the textured shader.

The patch tries to stay in the spirit of the existing code. I'm not super fond of the result. If the pattern isn't opaque the nine-patch will batch poorly since the both the interrior and corner parts are batched using the same rect. Also I suspect we'll find that we need more flexibility if/when we implement borders using quads. By then we'll probably have a clearer idea of the best way to handle segments in general.

Differential Revision: https://phabricator.services.mozilla.com/D206036
2024-04-16 16:26:27 +00:00
Nicolas Silva eea54e699a Bug 1888400 - Rename add_segment into add_render_task. r=gw
And hoist the create_task condition out. This makes it easier to see what's going on.

Differential Revision: https://phabricator.services.mozilla.com/D206035
2024-04-16 16:26:27 +00:00
Ben Dean-Kawamura b9d37221b3 Bug 1888683 - Checking in automated code changes. r=janerik,supply-chain-reviewers,glandium
This is the result of running `mach vendor rust`, `mach cargo vet prune` and `mach uniffi generate`

Depends on D206130

Differential Revision: https://phabricator.services.mozilla.com/D206131
2024-04-10 17:23:01 +00:00
Ben Dean-Kawamura 2bb9af8156 Bug 1888683 - Upgrade UniFFI to 0.27.1. r=markh,janerik,glandium,supply-chain-reviewers,mach-reviewers,android-reviewers,kaya
Update:
  - UniFFI to 0.27.1
  - Glean to 59.0.0
  - App-services to a recent version

This removes the need for the goblin build hack, although we still have
duplicate versions of goblin since UniFFI is ahead of the moz-central
version.  I think that should be easy to resolve as a follow-up.

Updating uniffi-bindget-gecko-js based on upstream changes:
  - Clone objects before lowering them
    (https://github.com/mozilla/uniffi-rs/pull/1880)
  - Use u64 for the RustBuffer length and capacity field
    (https://github.com/mozilla/uniffi-rs/pull/1978)

I didn't implement the new callback interface VTable code.  Instead I
simply disabled the one fixture that tests it.  I'd rather implement
https://bugzilla.mozilla.org/show_bug.cgi?id=1888668 first, since that
will simplify the process a bunch. The only real-world use-case for
callbacks that I know of is Mark's logging changes, but that will
require implementing trait interfaces anyways so I'd rather wait than
write a bunch of C++ code that we then throw away.

Differential Revision: https://phabricator.services.mozilla.com/D206130
2024-04-10 17:23:00 +00:00
Cristian Tuns 4deecb1d98 Backed out 2 changesets (bug 1888683) for causing hazard bustages in UniFFIPointer.cpp CLOSED TREE
Backed out changeset 42fe954d2d47 (bug 1888683)
Backed out changeset 2403582c3c8d (bug 1888683)
2024-04-09 21:54:42 -04:00
Ben Dean-Kawamura 2d4dca0936 Bug 1888683 - Checking in automated code changes. r=janerik,supply-chain-reviewers,glandium
This is the result of running `mach vendor rust`, `mach cargo vet prune` and `mach uniffi generate`

Depends on D206130

Differential Revision: https://phabricator.services.mozilla.com/D206131
2024-04-09 20:15:16 +00:00
Ben Dean-Kawamura 3c47b31e06 Bug 1888683 - Upgrade UniFFI to 0.27.1. r=markh,janerik,glandium,supply-chain-reviewers,mach-reviewers,android-reviewers,kaya
Update:
  - UniFFI to 0.27.1
  - Glean to 59.0.0
  - App-services to a recent version

This removes the need for the goblin build hack, although we still have
duplicate versions of goblin since UniFFI is ahead of the moz-central
version.  I think that should be easy to resolve as a follow-up.

Updating uniffi-bindget-gecko-js based on upstream changes:
  - Clone objects before lowering them
    (https://github.com/mozilla/uniffi-rs/pull/1880)
  - Use u64 for the RustBuffer length and capacity field
    (https://github.com/mozilla/uniffi-rs/pull/1978)

I didn't implement the new callback interface VTable code.  Instead I
simply disabled the one fixture that tests it.  I'd rather implement
https://bugzilla.mozilla.org/show_bug.cgi?id=1888668 first, since that
will simplify the process a bunch. The only real-world use-case for
callbacks that I know of is Mark's logging changes, but that will
require implementing trait interfaces anyways so I'd rather wait than
write a bunch of C++ code that we then throw away.

Differential Revision: https://phabricator.services.mozilla.com/D206130
2024-04-09 20:15:16 +00:00
Stanca Serban 083e5edc53 Backed out changeset 5c79f9a69eab (bug 1887810) as requested by gw for causing a few regressions. CLOSED TREE 2024-04-08 23:52:08 +03:00
Sandor Molnar ecaff7c868 Backed out 5 changesets (bug 1890092, bug 1888683) for causing build bustages & crashes CLOSED TREE
Backed out changeset d43df75c14de (bug 1888683)
Backed out changeset b4267327c7dd (bug 1888683)
Backed out changeset 11892428e2dc (bug 1890092)
Backed out changeset 42598e432246 (bug 1888683)
Backed out changeset 372016bf3614 (bug 1888683)
2024-04-08 19:56:29 +03:00
Ben Dean-Kawamura 7b2709be98 Bug 1888683 - Checking in automated code changes. r=janerik,supply-chain-reviewers,glandium
This is the result of running `mach vendor rust`, `mach cargo vet prune` and `mach uniffi generate`

Differential Revision: https://phabricator.services.mozilla.com/D206131
2024-04-08 15:07:51 +00:00