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

117 Коммитов

Автор SHA1 Сообщение Дата
Sebastian Hengst ccf82e3842 Backed out changeset 928f5840c78d (bug 1392200) for Windows bustage at gfx/layers/d3d11/TextureD3D11.cpp(1132). r=backout 2017-09-20 18:13:39 +02:00
Morris Tseng 28556ed7a0 Bug 1392200 - Update interfaces for backface-visibility support. r=kats
MozReview-Commit-ID: 6ctGRSUI3pB

--HG--
extra : rebase_source : bb38396c97c320232533f719090666f2455b6f21
2017-09-13 11:14:09 +08:00
Nicolas Silva 59e80c8f7e Bug 1393031 - Use shared memory to pass resource update data. r=jrmuizel 2017-09-14 18:48:55 +02:00
Nicolas Silva 38b33aa593 Bug 1393031 - Separate WebRenderAPI and ResourceUpdateQueue. r=sotaro 2017-09-04 13:59:42 +02:00
Nicolas Silva 4b7b1e5992 Bug 1393031 - Use the ResourceUpdateQueue API on the content side. r=jrmuizel 2017-09-04 13:59:36 +02:00
Nicolas Silva 09e43ac029 Bug 1393031 - Expose webrender transactions at the ipc boundary. r=jrmuizel, r=kanru 2017-09-04 13:59:26 +02:00
Nicolas Silva 2830bb5952 Bug 1393031 - Make ResourceUpdateQueue move-only. r=sotaro 2017-09-04 13:59:17 +02:00
Nicolas Silva b067cea354 Bug 1393031 - Expose webrender resource updates in the C++ wrapper. r=sotaro 2017-09-04 13:59:12 +02:00
Wes Kocher 6472928439 Merge m-c to inbound, a=merge
MozReview-Commit-ID: 77Uz3uceUmk
2017-08-31 16:56:23 -07:00
Lee Salzman 251cd46deb Bug 1393055 - map ScaledFonts to WebRender FontInstanceKeys. r=jrmuizel
MozReview-Commit-ID: AadEI5CnTZ1
2017-08-30 13:45:11 -04:00
Kartikaya Gupta 21ac463b1b Bug 1395212 - Avoid computing the entire ScrollMetadata for cases where we just need the scroll id. r=mstange
MozReview-Commit-ID: BEYfq2EqIel

--HG--
extra : rebase_source : 7315123162b80758be347c243375e28462352e06
2017-08-30 14:51:19 -04:00
Kartikaya Gupta 543988e106 Bug 1395212 - Update wr::DisplayListBuilder to expose separate APIs for defining and pushing scroll layers. r=mstange
This makes the DisplayListBuilder scrolling API more consistent with the
clipping API, and allows for more optimization at the call site (in the next
patch).

MozReview-Commit-ID: LdCA7wkXDwF

--HG--
extra : rebase_source : 1fe934e778c597f6a639ad2ecbda46995f8fd09e
2017-08-30 14:51:19 -04:00
Kartikaya Gupta b8355b02c7 Bug 1395212 - Hoist the scroll layer deduplication code out of bindings.rs into wr::DisplayListBuilder. r=mstange
This also splits the wr_dp_push_scroll_layer function in bindings.rs into two
separate functions. This makes the API consistent with clipping, and also allows
for optimizations in the upcoming patches.

MozReview-Commit-ID: IXnOZK0dZm

--HG--
extra : rebase_source : aa28875433a03ee9d6c388750f022958958d05e9
2017-08-30 14:51:19 -04:00
Sebastian Hengst 4814ba9f4f Backed out changeset 326d1e6cf7b1 (bug 1393031) for bustage at gfx/layers/opengl/MacIOSurfaceTextureHostOGL.cpp:178: no member named 'AddExternalImage' in 'mozilla::wr::WebRenderAPI' on OS X and also bustage on Windows. r=backout on a CLOSED TREE 2017-08-25 12:42:01 +02:00
Sebastian Hengst 82246334ad Backed out changeset 663105088e1e (bug 1393031) 2017-08-25 12:40:37 +02:00
Nicolas Silva abdcea3c3b Bug 1393031 - Make ResourceUpdateQueue move-only. r=sotaro 2017-08-25 11:58:05 +02:00
Nicolas Silva d415c1134b Bug 1393031 - Expose WebRender's ResourceUpdates to C++. r=sotaro 2017-08-25 11:58:00 +02:00
Ethan Lin 376639c99a Bug 1392921 - In TopmostScrollId(), return FrameMetrics::NULL_SCROLL_ID when the scroll id stack is empty. r=kats
MozReview-Commit-ID: 3kmgsisMhW5

--HG--
extra : rebase_source : d9e20940fcc5c1790dbf4f3b6b2769b1fd054121
2017-08-23 14:46:38 +08:00
Nicolas Silva 9f6f1a7d88 Bug 1390840 - Add prefs to display the debugging view of webrender's texture cache and intermediate targets. r=jrmuizel 2017-08-23 12:00:37 +02:00
Sebastian Hengst 441fc1a176 Backed out changeset b9c53ad8893b (bug 1390840) 2017-08-21 18:38:22 +02:00
Nicolas Silva 55bbef54aa Bug 1390840 - Add prefs to display the debugging view of webrender's texture cache and intermediate targets. r=jrmuizel 2017-08-21 18:22:56 +02:00
Kartikaya Gupta 7017055b92 Bug 1390804 - When pushing a mask clip, don't record it in DisplayListBuilder's clip stack. r=ethlin
Recording mask clips in the clip stack changes the value of TopmostClipId()
which confuses the code in ScrollingLayersHelper. The mask clip can be
thought of as an "out-of-band" clip that ScrollingLayersHelper doesn't
need to know about. This patch adds a mechanism for pushing such
"out-of-band" clips without touching the clip stack.

MozReview-Commit-ID: 8Zeqtigk0cj

--HG--
extra : rebase_source : 35176f3c9d98d186f78d7a0ff44845c7c3c9f67e
2017-08-17 13:54:25 -04:00
Alexis Beingessner 9c4535798f Bug 1357545 - handle text-shadows/decorations with webrender (layers-free) r=jrmuizel
This replaces our DrawTargetCapture hack with a similar but more powerful TextDrawTarget
hack. The old design had several limitations:

* It couldn't handle shadows
* It couldn't handle selections
* It couldn't handle font/color changes in a single text-run
* It couldn't handle decorations (underline, overline, line-through)

Mostly this was a consequence of the fact that it only modified the start and end
of the rendering algorithm, and therefore couldn't distinguish draw calls for different
parts of the text.

This new design is based on a similar principle as DrawTargetCapture, but also passes
down the TextDrawTarget in the drawing arguments, so that the drawing algorithm can
notify us of changes in phase (e.g. "now we're doing underlines"). This also lets us
directly pass data to TextDrawTarget when possible (as is done for shadows and selections).

In doing this, I also improved the logic copied from ContainsOnlyColoredGlyphs to handle
changes in font/color mid-text-run (which can happen because of font fallback).

The end result is:

* We handle all shadows natively
* We handle all selections natively
* We handle all decorations natively
* We handle font/color changes in a single text-run
    * Although we still hackily intercept draw calls
    * But we don't need to buffer commands, reducing total memcopies

In addition, this change integrates webrender's PushTextShadow and PushLine APIs,
which were designed for this use case. This is only done in the layerless path;
WebrenderTextLayer continues to be semantically limited, as we aren't actively
maintaining non-layers-free webrender anymore.

This also doesn't modify TextLayers, to minimize churn. In theory they can be
augmented to support the richer semantics that TextDrawTarget has, but there's
little motivation since the API is largely unused with this change.

MozReview-Commit-ID: 4IjTsSW335h

--HG--
extra : rebase_source : d69f69648ade5c7a8e6bb756f4b8ab9e2543e576
2017-06-19 10:58:28 -04:00
Kartikaya Gupta 24d7292dde Bug 1389138 - Add helper to track the topmost scroll id on the WR stack. r=mstange
Note that when PushClipAndScrollInfo is called, we are pushing an
already-defined scrolling clip onto the stack, and anything that gets
pushed inside it is going to be defined as being inside that scrolling
clip. So we need to make sure to update the scroll id stack for those
calls as well. This was an oversight previously but it never mattered.

MozReview-Commit-ID: D40Gk00HYrq

--HG--
extra : rebase_source : 677a92f918481a73877f551b9ac32975e0110be9
2017-08-17 11:06:51 -04:00
Sebastian Hengst 6c9b12dc58 Backed out changeset d45e64ac4452 (bug 1389138) 2017-08-17 21:08:14 +02:00
Kartikaya Gupta 0f4e894586 Bug 1389138 - Add helper to track the topmost scroll id on the WR stack. r=mstange
Note that when PushClipAndScrollInfo is called, we are pushing an
already-defined scrolling clip onto the stack, and anything that gets
pushed inside it is going to be defined as being inside that scrolling
clip. So we need to make sure to update the scroll id stack for those
calls as well. This was an oversight previously but it never mattered.

MozReview-Commit-ID: D40Gk00HYrq

--HG--
extra : rebase_source : beee11f8694489183dbeb4edcd95d89f55656486
2017-08-17 11:06:51 -04:00
Morris Tseng 6391dec171 Bug 1389027 - Support nsDisplayPerspective in layers-free mode. r=kats
MozReview-Commit-ID: K0RCuQ8WEE3
2017-08-14 17:31:55 +08:00
JerryShih 7b702f3d00 Bug 1352092 - Get the max texture size from WR. r=nical
The gecko side just queries the max texture size from gl context[1]. We
should query that size from WR.

[1]
https://dxr.mozilla.org/mozilla-central/rev/4c5fbf49376351679dcc49f4cff26c3c2e055ccc/gfx/webrender_bindings/WebRenderAPI.cpp#72

MozReview-Commit-ID: 6RQ8ZW9mWSE
2017-08-12 13:41:56 +08:00
Kartikaya Gupta f10ce62128 Bug 1386483 - Split the wr_dp_push_clip method into two to allow reusing clips. r=jrmuizel
MozReview-Commit-ID: 90BEJGs8wGg

--HG--
extra : rebase_source : 9ef113bee43391c00912457afc395284899a23cb
2017-08-08 15:43:17 -04:00
sotaro 162dcae649 Bug 1385003 - Use a different WebRenderAPI instance for each WebRenderBridgeParent. r=kats
Previously, the WebRenderBridgeParent for each content layer tree would use the
same WebRenderAPI instance as the top-level WebRenderBridgeParent for that window.
However, in order to make the namespacing changes work we now need to use a
separate WebRenderAPI instance for each WebRenderBridgeParent. The content
WebRenderAPIs are cloned from the parent one, so that they all share the same
backend, but can allocate resource IDs in distinct namespaces.

MozReview-Commit-ID: 7VTFL8F09n7

--HG--
extra : rebase_source : 2da1d03abc23bd7852e4b12fe133889bd80cad53
2017-08-09 08:46:25 -04:00
Kartikaya Gupta c18e91b352 Bug 1385003 - Update webrender bindings for API changes in WR cset f6d81d9. r=kvark
In theory the upstream API change should allow us to share the same WR renderer
instance across multiple WebRenderAPI instances. For now however I retain the
existing behaviour of one WR instance for each WebRenderAPI instance, but keep
track of the document id in a new DocumentHandle struct. The C++ side keeps
a pointer to this DocumentHandle struct instead of the raw RenderApi.

MozReview-Commit-ID: I9pCKOY1OYx

--HG--
extra : rebase_source : 7b0ae2ccb2692a76045371ac165468c7f7539b40
2017-08-09 08:46:24 -04:00
JerryShih 5d101602fb Bug 1357299 - P12: Add SyncObject in RendererOGL. v2. r=nical
With DXVA2 hardware-video-decoding, the RendererOGL should have a
synchronization mechanism to prevent the flickering of video texture.
Create a SyncObject in RendererOGL to do the texture synchronization.

The WebRenderAPI also exposes the RendererOGL's SyncHandle to
WebRenderBridgeParent. Then, the WebRenderBridgeParent could pass this SyncHandle
to the video decoding module for texture synchronization.

MozReview-Commit-ID: toQ2mO5fzG
2017-08-07 18:15:25 +08:00
Nicolas Silva 230106d30b Bug 1383786 - Changes to the ffi boundary. r=sotaro 2017-07-28 14:08:11 +02:00
sotaro eaf00c953c Bug 1377619 - Add EndTransaction to on screen timing log for WebRender r=nical 2017-07-28 08:05:56 +09:00
Ryan Hunt 11bda66c5d Bug 1383714 - Update to cbindgen 0.1.19. r=kats
MozReview-Commit-ID: FdtZ9Pw0Z2A

--HG--
extra : rebase_source : 1cabc3fcc16ccf20a8d111389ccbbf518c42f32e
2017-07-21 12:39:25 -04:00
Ryan Hunt 522bc76415 Bug 1382128 part 8 - Remove Wr prefix from some type aliases. r=kats
MozReview-Commit-ID: 5h7QobhcYc1

--HG--
extra : rebase_source : 34d6636b6c3726ccc21b105f05227e27f84e63c9
2017-07-19 03:28:58 -04:00
Ryan Hunt d9bbfee6e2 Bug 1382128 part 6 - Remove WrBorderSides, WrBorderRadius, WrBorderWidths, WrNinePatchDescriptors. r=kats
MozReview-Commit-ID: 7YkHoNs64T9

--HG--
extra : rebase_source : f6f29cea6753d95857b0d65ae97faed1ed306f10
2017-07-19 01:56:20 -04:00
Ryan Hunt c013220860 Bug 1382128 part 5 - Remove WrGradientStop and WrGradientExtendMode. r=kats
MozReview-Commit-ID: 47Rb5jUpCFX

--HG--
extra : rebase_source : 6b4d3e6193b08bc978751921d12a0bb37a60c927
2017-07-19 01:47:07 -04:00
Ryan Hunt f082c1791e Bug 1382128 part 4 - Remove WrGlyphInstance. r=kats
MozReview-Commit-ID: 2CpW51FKUoK

--HG--
extra : rebase_source : d24e596dbd1a114d660e0b0ec1657f3efc11965d
2017-07-18 18:53:09 -04:00
Ryan Hunt 017d292cac Bug 1382128 part 2 - Remove WrPoint, WrSize, WrRect, WrMatrix, and WrColor. r=kats
MozReview-Commit-ID: 9koNScu4CyE

--HG--
extra : rebase_source : 68185e949ddf2ae346a5d597d056a7f2d9ea7a28
2017-07-18 18:32:46 -04:00
Ryan Hunt 3f3cb0a954 Bug 1382128 part 1 - Use a namespace in webrender_bindings. r=kats
MozReview-Commit-ID: 3JTMa9Ix5S7

--HG--
extra : rebase_source : 0bea14d9e395cab260d2db5135b1f64e9f82b2e2
2017-06-27 19:20:36 -04:00
Kartikaya Gupta 7fe2c84b1e Bug 1374730 - Update for clip API change in WR cset 0bf6655. r=mrobinson
MozReview-Commit-ID: dEe7yDDZPk

--HG--
extra : rebase_source : 09a1f858a347bdc95baa8015db9fa156b119334a
2017-07-10 07:22:39 -04:00
sotaro 178043d1da Bug 1357734 - Change argument of DisplayListBuilder::PushBorder() to bypass compiler bug r=jrmuizel
Visual Studio 2015 Update 3 has a bug that PGO build generates movaps to unaligned address. The patch just bypasses the compiler bu
2017-06-30 16:22:25 -07:00
Kartikaya Gupta 34903d0ba6 Bug 1376215 - Stop exposing the WrClipRegionToken in WebRenderAPI.h APIs. r=jrmuizel
No functional changes intended in this patch. It merely simplifies the
additional patch that we'll need to update gecko past WR cset 0bf6655,
and saves some potential manual rebasing work.

MozReview-Commit-ID: Km8dBotP3NQ

--HG--
extra : rebase_source : 77c34ec1cbbc1c0fe4d1971feb131d30c97f0d66
2017-06-26 07:49:52 -04:00
Carsten "Tomcat" Book c2622cfcd0 Backed out changeset 504e5b1de987 (bug 1376215) for bustage 2017-06-26 13:07:09 +02:00
Kartikaya Gupta b459b56298 Bug 1376215 - Stop exposing the WrClipRegionToken in WebRenderAPI.h APIs. r=jrmuizel
No functional changes intended in this patch. It merely simplifies the
additional patch that we'll need to update gecko past WR cset 0bf6655,
and saves some potential manual rebasing work.

MozReview-Commit-ID: AgMyNapY2Og

--HG--
extra : rebase_source : d8522d8e806522a4a0e8b2cd1669db0374bd5e63
2017-06-25 14:45:54 -04:00
Jeff Muizelaar 0de540ca2e Bug 1375534 - Add bindings for setting transform style to PushStackingContext. r=kats 2017-06-22 17:30:27 -04:00
Jeff Muizelaar e16b0717ca Bug 1373861. Pass a built display list to PushBuiltDisplayList by reference instead of value. r=Ganrko
Previously we needed to pass by value and that was causing us to clear out our
prebuilt display list when we actually wanted to keep it around.

The rust code ended up doing a bit of a silly dance but that's better than copying the display list around.
2017-06-21 18:40:13 -04:00
Kartikaya Gupta beb80358ab Bug 1373378 - Do a better job tracking the ancestor scrollids in DisplayListBuilder. r=jrmuizel
In some cases we need to know the ancestor scrollid of a scrollid that we had
previously pushed onto the stack and then subsequently popped off. Since that
scrollid is no longer actually on the stack at the time of the query, we would
return Nothing(). Instead, this patch adds a map to "remember" previously
encountered scrollids and their ancestors, so that these queries can be correctly
handled.

MozReview-Commit-ID: BrtEv88ZysX

--HG--
extra : rebase_source : a14d72cd535c5cf7f57691b7d8be9aaf26303709
2017-06-16 15:12:24 -04:00
Kartikaya Gupta 1e6ddf03d5 Bug 1372912 - Make the clip id more strongly typed. r=jrmuizel,mrobinson
This patch is not really needed, but it avoids accidental conversion
between FrameMetrics::ViewID (which represents a scrolling clip) and a
uint64_t id for a non-scrolling clip.

MozReview-Commit-ID: JriIfpECHe7

--HG--
extra : rebase_source : a7af8465c9c62a60856c190da64667439233f4b0
2017-06-15 17:02:20 -04:00