Commit Graph

36818 Commits

Author SHA1 Message Date
Lee Salzman
c828a9b30a Bug 1634130 - avoid 0-length edges in SWGL rasterizer. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D73406
2020-05-01 04:59:08 +00:00
Lee Salzman
50f17f6abd Bug 1634447 - don't generate perspective code if SWGL fragment shader doesn't use it. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D73327
2020-05-01 00:33:39 +00:00
Lee Salzman
d6438ad24b Bug 1634452 - allow SWGL vertex and fragment shaders to share data. r=jrmuizel
Currently SWGL stores separate copies of flat interpolants, uniforms, and samplers for vertex shaders and fragment shaders. We can just make the fragment shader inherit from the vertex shader, which allows us to only have to store one copy of these, and also obviates the need to store them out and read them back to transition from vertex shader to fragment shader per-primitive. This will help offset the performance cost of perspective checking in bug 1634447.

Differential Revision: https://phabricator.services.mozilla.com/D73299
2020-05-01 00:33:21 +00:00
Lee Salzman
f9b1f690e4 Bug 1634447 - allow SWGL shaders to work with and without perspective. r=jrmuizel
Based on ideas discussed to solve bug 1633912, this patch implements allowing each shader to switch between no-perspective and perspective on per-primitive based on whether or not the primitive's W coordinates all match. This should be a sufficient stop-gap for now to unblock testing and development. Performance and memory usage costs of this approach will need to be evaluated before we decide whether to keep it long term.

Differential Revision: https://phabricator.services.mozilla.com/D73298
2020-05-01 00:32:55 +00:00
Lee Salzman
9873811aca Bug 1633953 - refactor draw_quad_spans edge stepping to make it easier to read. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D73041
2020-05-01 00:32:38 +00:00
Lee Salzman
8d59795c6c Bug 1633953 - check for duplicate vertices in SWGL quad rendering. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D72989
2020-05-01 00:32:20 +00:00
David Parks
b18b3bfd97 Bug 1621762: Part 5 - Change PWebGL alloc+constructor to Initialize message r=jgilbert,jld
We need to separate WebGL actor construction and initialization since IpdlQueue initialization needs the actor to already exist.

Differential Revision: https://phabricator.services.mozilla.com/D68262
2020-04-30 22:23:48 +00:00
David Parks
8bd91e6a36 Bug 1621762: Part 3 - Make some classes generic to support multiple remote WebGL implementations r=jgilbert
* Templatize ProducerView/ConsumerView/(Sync)CommandSource/(Sync)CommandSink to allow both Pcq and Ipdl versions, as the client code is identical.
* Rename Producer/Consumer -> PcqProducer/PcqConsumer.

Differential Revision: https://phabricator.services.mozilla.com/D68259
2020-04-30 22:23:02 +00:00
Glenn Watson
88eb2e5226 Bug 1632705 - Part 5 - Port some more clips to explicit rect API. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D73179
2020-04-30 12:08:54 +00:00
Glenn Watson
ca78f5a8c2 Bug 1632705 - Part 4 - Port clear prims to use rounded clip rect API. r=kats
The implementation of this was previously ignoring the aRegion
parameter, so was completely broken. This is only used by the
Win7 widget code. This may fix an issue with drawing of window
close buttons on Windows 7 with WebRender enabled.

Differential Revision: https://phabricator.services.mozilla.com/D73163
2020-04-30 11:50:59 +00:00
Jamie Nicol
1af6f33ce1 Bug 1634275 - Update glslopt to 0.1.2 to remove dependency on bindgen. r=jrmuizel,kats
Differential Revision: https://phabricator.services.mozilla.com/D73198
2020-04-30 12:25:17 +00:00
Daniel Varga
452acadb3b Backed out 7 changesets (bug 1621762) for causing build bustages at builds/worker/workspace/obj-build/dist/include/mozilla/dom/ProducerConsumerQueue.h
CLOSED TREE

Backed out changeset 03903e8f368e (bug 1621762)
Backed out changeset 21ef72486643 (bug 1621762)
Backed out changeset 70d103786c83 (bug 1621762)
Backed out changeset a3e1332998c3 (bug 1621762)
Backed out changeset 010f653b87d2 (bug 1621762)
Backed out changeset 0496adcb4582 (bug 1621762)
Backed out changeset 8d85420fd2e6 (bug 1621762)
2020-04-30 06:06:33 +03:00
David Parks
c917376c04 Bug 1621762: Part 5 - Change PWebGL alloc+constructor to Initialize message r=jgilbert,jld
We need to separate WebGL actor construction and initialization since IpdlQueue initialization needs the actor to already exist.

Differential Revision: https://phabricator.services.mozilla.com/D68262
2020-04-30 01:30:08 +00:00
David Parks
b360387b15 Bug 1621762: Part 3 - Make some classes generic to support multiple remote WebGL implementations r=jgilbert
* Templatize ProducerView/ConsumerView/(Sync)CommandSource/(Sync)CommandSink to allow both Pcq and Ipdl versions, as the client code is identical.
* Rename Producer/Consumer -> PcqProducer/PcqConsumer.

Differential Revision: https://phabricator.services.mozilla.com/D68259
2020-04-30 01:25:27 +00:00
Kartikaya Gupta
4e454e564a Bug 1633103 - Use SetState to ensure we dispatch appropriate state change notifications. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D72945
2020-04-30 00:56:01 +00:00
Daniel Varga
d0212aae27 Backed out changeset a8ca75f3002d (bug 1633985) on request by dev 2020-04-30 01:58:25 +03:00
Glenn Watson
ab3883a1e7 Bug 1633985 - Remove unused clip parent and backface flag from push_iframe r=kats,nical
Differential Revision: https://phabricator.services.mozilla.com/D73006
2020-04-29 21:54:14 +00:00
Dorel Luca
f906702a66 Backed out changeset 0a9371673354 (bug 1633985) for Webrender bustages. CLOSED TREE 2020-04-30 00:03:23 +03:00
Glenn Watson
c222acf8ae Bug 1633985 - Remove unused clip parent and backface flag from push_iframe r=kats,nical
Differential Revision: https://phabricator.services.mozilla.com/D73006
2020-04-29 17:14:50 +00:00
Simon Giesecke
d62827d0da Bug 1628692 - Fix FallibleTArray handling in gfxContext::CurrentDash. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D71576
2020-04-29 08:58:36 +00:00
Lee Salzman
c3a1a86711 Bug 1633971 - comment SWGL's span rasterizer. DONTBUILD r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D73000
2020-04-29 14:58:54 +00:00
Miko Mynttinen
2ad9f93410 Bug 1633453 - Clear display item cache when the display list send fails or WR backend changes r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D72692
2020-04-29 02:26:08 +00:00
Kartikaya Gupta
57f8684aec Bug 1625249 - Do a better job of setting hit-test info on blobs. r=jrmuizel
In particular this will pick up any hit-test flags set on individual items
inside a blob, and ensure the hit-test info emitted to APZ for the blob includes
those flags.

Differential Revision: https://phabricator.services.mozilla.com/D69205
2020-04-28 21:46:26 +00:00
Kartikaya Gupta
3f01c1d409 Bug 1625249 - Reduce levels of indentation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D69204
2020-04-28 21:46:28 +00:00
Glenn Watson
e0dc298035 Bug 1633645 - Remove prim_origin from primitive dependency descriptor. r=Bert
It's no longer needed with the recent fix to how rectangle prim
and clip rects are stored. It's also a performance win, reducing
the amount of work done when comparing primitive dependencies.

Differential Revision: https://phabricator.services.mozilla.com/D72794
2020-04-29 00:36:56 +00:00
Geoff Brown
b987f3b775 Bug 1630774 - Skip some gfx crashtests on android webrender; r=jmaher
Update crashtest expectations to avoid troublesome wr_moz2d_render_cb crashes more effectively.

Differential Revision: https://phabricator.services.mozilla.com/D72966
2020-04-28 22:49:28 +00:00
Brindusan Cristian
7cee26a500 Backed out 3 changesets (bug 1625249) for bc failures at browser_test_hittest_svg_over_iframe.js. CLOSED TREE
Backed out changeset 5d9701c4fb3b (bug 1625249)
Backed out changeset 8c02d6099aa3 (bug 1625249)
Backed out changeset 7b3b764a0e4d (bug 1625249)
2020-04-29 00:41:31 +03:00
Brindusan Cristian
f3c4961c6d Backed out changeset e78e8f677ca0 (bug 1633645) for wrench bustage. CLOSED TREE 2020-04-29 00:05:42 +03:00
Glenn Watson
cdb7a90eda Bug 1633645 - Remove prim_origin from primitive dependency descriptor. r=Bert
It's no longer needed with the recent fix to how rectangle prim
and clip rects are stored. It's also a performance win, reducing
the amount of work done when comparing primitive dependencies.

Differential Revision: https://phabricator.services.mozilla.com/D72794
2020-04-28 17:33:21 +00:00
Yura Zenevich
1e609ab653 Bug 1625249 - test hittest with SVG in parent over OOP iframe. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D69664
2020-04-15 19:43:05 +00:00
Kartikaya Gupta
234654725c Bug 1625249 - Do a better job of setting hit-test info on blobs. r=jrmuizel
In particular this will pick up any hit-test flags set on individual items
inside a blob, and ensure the hit-test info emitted to APZ for the blob includes
those flags.

Differential Revision: https://phabricator.services.mozilla.com/D69205
2020-04-28 18:43:13 +00:00
Kartikaya Gupta
e89589086d Bug 1625249 - Reduce levels of indentation. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D69204
2020-04-28 18:43:00 +00:00
Brindusan Cristian
f33d38c284 Backed out changeset 8433832c8f09 (bug 1628175) for reftest failures at 817019-1.html. CLOSED TREE 2020-04-28 21:33:46 +03:00
Lee Salzman
7f36735222 Bug 1633617 - offset SWGL's linear BlitFramebuffer to texel centers. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D72896
2020-04-28 17:36:31 +00:00
Bert Peers
b91a3eabe0 Bug 1628175 - WebGL is drawn into the picture cache and then onto the screen r=gw
Part 1 - support RGB external surfaces for promotion to compositor
surfaces; add new shader permutations to handle all buffer kinds.
Set the promotion flag when the pixel format has no alpha, or when the
texture provider can guarantee all-solid alpha values.

Differential Revision: https://phabricator.services.mozilla.com/D71120
2020-04-27 19:38:02 +00:00
Csoregi Natalia
b073baab86 Backed out 30 changesets (bug 1556556, bug 1631568) for multiple mochitest failures. CLOSED TREE
Backed out changeset edd529f7a9c5 (bug 1631568)
Backed out changeset 1cc0881e244b (bug 1631568)
Backed out changeset ed3c1e85d5e3 (bug 1556556)
Backed out changeset 38ffc6215bbf (bug 1556556)
Backed out changeset 03c2c25d8023 (bug 1556556)
Backed out changeset 9c717eb067b8 (bug 1556556)
Backed out changeset 98e26bc98b85 (bug 1556556)
Backed out changeset 05a6a581e755 (bug 1556556)
Backed out changeset 867946cf05bb (bug 1556556)
Backed out changeset 20d72a334530 (bug 1556556)
Backed out changeset 2c62e61d9054 (bug 1556556)
Backed out changeset 62a223d057d2 (bug 1556556)
Backed out changeset 2c5d55a1f0b1 (bug 1556556)
Backed out changeset 700447945b4e (bug 1556556)
Backed out changeset 93190ae4f5ff (bug 1556556)
Backed out changeset a7bd34d961bb (bug 1556556)
Backed out changeset fccd1d3c7189 (bug 1556556)
Backed out changeset 24056e47183d (bug 1556556)
Backed out changeset 204881474cc1 (bug 1556556)
Backed out changeset 387320881876 (bug 1556556)
Backed out changeset be8f5eb58460 (bug 1556556)
Backed out changeset 629c58a9166b (bug 1556556)
Backed out changeset 4312b2b5dda8 (bug 1556556)
Backed out changeset d11dbf6403a5 (bug 1556556)
Backed out changeset 95c54c023779 (bug 1556556)
Backed out changeset 80fcb7e71188 (bug 1556556)
Backed out changeset d75a4ecb0d47 (bug 1556556)
Backed out changeset 903c4de34e7a (bug 1556556)
Backed out changeset f15334a3e803 (bug 1556556)
Backed out changeset 9553e99137ea (bug 1556556)
2020-04-28 12:43:11 +03:00
Botond Ballo
2cb46cfa4b Bug 1631568 - Have nsLayoutUtils::GetFrameForPoint() and GetFramesForArea() take a RelativeTo parameter. r=tnikkel
This removes the need for FrameForPointOptions::IsRelativeToLayoutViewport,
and makes sure each call site of these functions indicates whether the
input point/rect is in visual or layout coordinates.

Several call sites were passing in layout coordinates without setting the
IsRelativeToLayoutViewport flag, which this patch corrects.

Differential Revision: https://phabricator.services.mozilla.com/D71705
2020-04-28 01:44:43 +00:00
Botond Ballo
42e78685e5 Bug 1556556 - Run helper_drag_root_scrollbar.html with zooming enabled as well. r=kats
This is the anti-climactic end of the patch series.

I set out in this bug to get this test case to pass with apz.allow_zooming.
It took all these changes to do so without regressing other tests.

Differential Revision: https://phabricator.services.mozilla.com/D69644
2020-04-28 07:22:59 +00:00
Botond Ballo
405c8807cd Bug 1556556 - Propagate RelativeTo far and wide. r=kats,mattwoodrow
This "upgrades" various nsLayoutUtils functions which take as inputs
a set of coordinates and a frame that the coordinates are relative to,
to accept a RelativeTo object instead of a frame.

Most of the patch is just dumb propagation, but the few places where
we use an explicit ViewportType::Visual are important. There are
probably a few other places I've overlooked, but this seems to cover
the important ones that come up commonly.

There are undoubtedly other functions into which we can propagate
RelativeTo, in this patch I've propagated it as far as necessary
for my needs in this bug (mainly GetTransformToAncestor() and
GetEventCoordinatesRelativeTo()).

Differential Revision: https://phabricator.services.mozilla.com/D68919
2020-04-28 01:40:35 +00:00
Botond Ballo
b11a399d42 Bug 1556556 - Remove many uses of IgnoreRootScrollFrame. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D68913
2020-04-28 02:25:51 +00:00
Botond Ballo
20522092c5 Bug 1556556 - Move GetCallbackTransform() into a new ViewportUtils class. r=kats
This function (and helper functions that wrap it) will be used extensively
throughout layout code, so keeping it in APZCCallbackHelper seems awkward.

nsLayoutUtils would also be a reasonable place but has the downside that
adding a new function to it triggers recompiling the world.

Differential Revision: https://phabricator.services.mozilla.com/D68296
2020-04-28 01:35:05 +00:00
Botond Ballo
92101bb12f Bug 1556556 - Have GetCallbackTransform take just a scroll id rather than an entire guid. r=kats
The implementation was already only using the scroll id, so there is no
functional change, but this change will make it easier to new call sites
to come up with the function's inputs.

Differential Revision: https://phabricator.services.mozilla.com/D68277
2020-04-28 01:34:48 +00:00
Botond Ballo
09e7b83dc2 Bug 1556556 - Remove APZCCallbackHelper::ApplyCallbackTransform(). r=kats
It has no more callers.

Differential Revision: https://phabricator.services.mozilla.com/D68276
2020-04-28 01:34:35 +00:00
Botond Ballo
f9e919a8f4 Bug 1556556 - Remove applications of the visual-to-layout transform at the process boundary (and equivalent places for non-e10s). r=kats
Note that the propagation of the target guid to places where the transform
will be applied is best-effort at the moment. In particular, the
InputAPZContext will result in the correct guid being available in places
that are called synchronously from the Recv*() functions, but not places
called asynhcronously (e.g. via DelayedFireSingleTapEvent).

To mitigate this, places where the transform is applied fall back on the
RCD-RSF if a guid is not available via InputAPZContext (added in a
subsequent patch).

The cases that this gets wrong are fairly edge casey (it requires (a) an
asynchronous codepath, (b) an event targeting a subframe, and (c) that
subframe having a "could not accept the APZ scroll position" transform),
so we just punt on them for now. If it turns out to be important to handle,
then options for doing so include (1) propagating the guid through each of
the affected asynchronous codepaths, or (2) attaching the guid to the event
itself.

Differential Revision: https://phabricator.services.mozilla.com/D68723
2020-04-28 01:34:22 +00:00
Botond Ballo
ac1f44da5d Bug 1556556 - Change the default value of InputAPZContext::sApzResponse to nsEventStatus_eSentinel. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D70084
2020-04-28 01:34:05 +00:00
Botond Ballo
2290774510 Bug 1556556 - Factor out an APZCCallbackHelper::GetCallbackTransform() helper. r=kats
This is to facilitate call sites that need to incorporate the transform into
a larger transform matrix rather than immediately applying the callback
transform to a point.

Differential Revision: https://phabricator.services.mozilla.com/D68275
2020-04-28 01:33:57 +00:00
Botond Ballo
2037608c4a Bug 1556556 - Clarify the documentation of APZCCallbackHelper::ApplyCallbackTransform(). r=kats
Differential Revision: https://phabricator.services.mozilla.com/D68274
2020-04-28 01:33:40 +00:00
Botond Ballo
5e9a66a3de Bug 1556556 - Remove some cruft related to handling the resolution in non-e10s setups. r=tnikkel
Prior to this bug, it was necessary to handle non-e10s specially, because the
resolution was being unapplied at the process boundary, and in non-e10s there
was no process boundary.

The remaining patches in this bug move the resolution unapplication away from
the process boundary in all cases, making special handling for non-e10s
unnecessary.

Differential Revision: https://phabricator.services.mozilla.com/D68273
2020-04-28 02:03:18 +00:00
Lee Salzman
418deed8c5 Bug 1633617 - round quantized coordinates in SWGL bilinear filtering. r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D72782
2020-04-28 03:32:10 +00:00
Josh Matthews
522ffb1f8e Bug 1633557 - Add Serialize/Deserialize for structs needed by Servo. r=jdm
[import_pr] From https://github.com/servo/webrender/pull/3936

Differential Revision: https://phabricator.services.mozilla.com/D72749
2020-04-27 21:06:36 +00:00