Commit Graph

211 Commits

Author SHA1 Message Date
Jamie Nicol
45bdc72d64 Bug 1200729 - Recompute FrameLayerBuilder item visibility if dirty region changes. r=mwoodrow
Make the FrameLayerBuilder remember for what region it has calculated
display item visibility, then recompute the visibility whenever the
dirty region it is passed to DrawPaintedLayer changes.

This means that the caller does not have to know the entire dirty region
that will be drawn for the transaction, but we can still optimise cases
where it knows some of the dirty region in advance.

This fixes a regression where MultiTiledContentClient's low-res display
port would not be painted if a smaller region of its high-res buffer had
already been painted that transaction, since the FrameLayerBuilder
had decided that most of the larger low-res region was invisible.
2015-09-15 14:41:42 +01:00
Hiroyuki Ikezoe
c13e7b037c Bug 1151694 - Part 3: Manage mIsRunningOnCompositor flags for each properties respectively. r=bbirtles 2015-09-16 16:05:00 +02:00
Jamie Nicol
6e0e1d166c Bug 1187619 - Only optmimize FrameLayerBuilder visibility calculations if correct. r=mattwoodrow
Bug 1176077 introduced the parameter aDirtyRegion to
DrawPaintedLayerCallback, which allows the callback to recompute the
visibility of all items to be painted in that transaction in a single
go. However, this parameter can not always be determined correctly
when using RotatedBuffer, and using an incorrect value was causing
graphical glitches.

Make the parameter optional, and on null values do not perform the
optimisation. Pass null from ClientPaintedLayer, which uses
RotatedBuffer and was causing problems, but continue to pass the
correct value from other Layer implementations. This optimisation was
most important for tiled layers using progressive paint, so this is
okay.
2015-08-03 04:07:00 -04:00
Jamie Nicol
a1feb12475 Bug 1176077 - Only recompute PaintedLayer item visibility when display list has changed. r=mattwoodrow
FrameLayerManager::RecomputeItemsVisibility() was being called on every
call to FrameLayerBuilder::DrawPaintedLayer(), each time for the region
to be painted by that paint call. This is inefficient when progressive
paint is enabled. Change it so that we compute the visibility of all the
layer's items within the total region to be painted, but only on the
first paint after the display list has been modified.
2015-07-21 09:19:25 +01:00
Ting-Yu Lin
cee87e8b73 Bug 1182963 - Use nsTHashTable::Iterator in FrameLayerBuilder. r=roc,njn
Get rid of EnumerateEntries by inlining those enumerate functions. Also
move gPaintedDisplayItemLayerUserData, gColorLayerUserData, etc. to the
front of the file since LayerManagerData::Dump() references to one of
them.
2015-07-15 17:05:06 +08:00
Ting-Yu Lin
bac512fc17 Bug 1183085 - Correct a typo in FrameLayerBuilder.h; r=roc 2015-07-13 21:44:11 +08:00
Ting-Yu Lin
b377ca510b Bug 1183085 - Correct argument name for BuildContainerLayerFor; r=roc 2015-07-13 21:44:11 +08:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Markus Stange
6d6e33904f Bug 1147194 - Do scroll info layer hoisting when building the display list. r=tn 2015-04-30 14:54:48 -04:00
Andrea Marchesini
f0aa02df0b Bug 1156632 - Remove unused forward class declarations - patch 5 - rdf, parser, layout and something else, r=ehsan 2015-04-22 08:29:22 +02:00
Markus Stange
2413e47897 Bug 1141089 - Remove unused DisplayItemData copy constructor. r=roc 2015-04-10 17:23:22 -04:00
Markus Stange
6abf8493f1 Bug 1141089 - Initialize DisplayItemData with a non-null mLayer, so that mLayer is non-null throughout the object's whole lifetime. r=roc 2015-04-10 17:11:04 -04:00
Seth Fowler
192e98ad2e Bug 1150774 (Part 1) - Add helpers to simplify using typed units in ConfigureLayer. r=botond 2015-04-07 18:55:28 -07:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Markus Stange
29b8c8daad Bug 1142211 - Add layerization testing mechanisms to reftest. r=roc
This adds support for class="reftest-opaque-layer" and for
reftest-assigned-layer="some-layer-name" to the reftest harness.

From reftest/README.txt:

Opaque Layer Tests: class="reftest-opaque-layer"
================================================

If an element should be assigned to a PaintedLayer that's opaque, set the class
"reftest-opaque-layer" on it. This checks whether the layer is opaque during
the last paint of the test, and it works whether your test is an invalidation
test or not. In order to pass the test, the element has to have a primary
frame, and that frame's display items must all be assigned to a single painted
layer and no other layers, so it can't be used on elements that create stacking
contexts (active or inactive).

Layerization Tests: reftest-assigned-layer="layer-name"
=======================================================

If two elements should be assigned to the same PaintedLayer, choose any string
value as the layer name and set the attribute reftest-assigned-layer="yourname"
on both elements. Reftest will check whether all elements with the same
reftest-assigned-layer value share the same layer. It will also test whether
elements with different reftest-assigned-layer values are assigned to different
layers.
The same restrictions as with class="reftest-opaque-layer" apply: All elements
must have a primary frame, and that frame's display items must all be assigned
to the same PaintedLayer and no other layers. If these requirements are not
met, the test will fail.
2015-03-11 14:51:59 -04:00
Markus Stange
87afc2f865 Bug 913443 - Remove unused aItemVisibleRect argument. r=roc 2015-03-03 16:57:30 -05:00
Markus Stange
adcd6aa6fb Bug 961887 - Find uniform opaque background colors under ContainerLayers. r=roc 2015-02-25 11:47:22 -05:00
Wes Kocher
a618220ed2 Backed out 3 changesets (bug 961887) for reftest failures on a CLOSED TREE
Backed out changeset 1684d29858e1 (bug 961887)
Backed out changeset 97c8184c3058 (bug 961887)
Backed out changeset f02c5c1f7704 (bug 961887)
2015-02-24 17:32:37 -08:00
Markus Stange
b85b50f73d Bug 961887 - Find uniform opaque background colors under ContainerLayers. r=roc 2015-02-24 14:35:46 -05:00
Seth Fowler
7644349ed2 Bug 1128225 (Part 3) - Add infrastructure for tracking draw results in geometry items. r=tn 2015-02-04 13:50:56 -08:00
Jonathan Watt
a6eb8de2a0 Bug 1127138 - Remove the declarations of a couple of dead FrameLayerBuilder methods. r=mattwoodrow 2015-01-23 09:17:14 +00:00
Kartikaya Gupta
1f5f8b9295 Bug 1119942 - Hoist nsDisplayScrollInfoLayer items out of inactive layermanagers into their parent. r=tnikkel,mattwoodrow 2015-01-20 09:49:30 -05:00
Benoit Girard
2dd292c6c0 Bug 1113837 - Build display-list dumping without MOZ_DUMP_PAINTING. r=mstange 2014-12-31 15:17:39 -05:00
Markus Stange
98daf9b983 Bug 1073103 - SReplace 'Thebes' with 'Painted' in some more places. r=roc 2014-09-26 13:07:06 -04:00
Markus Stange
a15e939a69 Bug 1073103 - Rename ThebesLayer to PaintedLayer. r=roc 2014-09-26 13:06:08 -04:00
Robert O'Callahan
fd3142fe95 Bug 1048752. Part 10: Remove FrameLayerBuilder.h from nsDisplayList.h. r=tn
I was inspired by the previous patch to remove FrameLayerBuilder.h from
nsDisplayList.h too.
2014-08-06 17:19:25 +12:00
Matt Woodrow
1760f4f074 Bug 1019693 - Always use tiled thebes layers when we're a descendant of a layer with a critical display port so that the low-resolution drawing area is handled correctly. r=tn 2014-08-08 09:12:01 +12:00
Ehsan Akhgari
17f80c37f2 Bug 1048246 - Fix more bad implicit constructors in layout; r=roc 2014-08-07 19:48:38 -04:00
David Zbarsky
f7b8b02ee4 Bug 952977: More gfx::Matrix cleanup in FrameLayerBuilder r=nical 2014-08-01 08:31:49 -04:00
Wes Kocher
e230d2b1cf Backed out 11 changesets (bug 952977) for reftest-no-accel failures
Backed out changeset ea2367c19da3 (bug 952977)
Backed out changeset c401c8748eb3 (bug 952977)
Backed out changeset a93e9ff1043b (bug 952977)
Backed out changeset 765b7f67163e (bug 952977)
Backed out changeset 3d8cf4f5777f (bug 952977)
Backed out changeset 8993710a3ab3 (bug 952977)
Backed out changeset 1298c39b745a (bug 952977)
Backed out changeset be0b899fbe5e (bug 952977)
Backed out changeset f69bea1f1feb (bug 952977)
Backed out changeset 1a745777f07e (bug 952977)
Backed out changeset 5ad1d18dfe17 (bug 952977)
2014-07-29 18:58:46 -07:00
David Zbarsky
101c7dfea4 Bug 952977: More gfx::Matrix cleanup in FrameLayerBuilder r=nical 2014-07-29 19:18:52 -04:00
Matt Woodrow
b947e04a0c Bug 1039926 - Exclude clips that have been converted to a mask layer from invalidation. r=roc 2014-07-23 18:03:52 +12:00
Matt Woodrow
ca414afb15 Bug 1039926 - Refactor display list invalidation so that the majority happens after we've finished assigning items to ThebesLayers. r=roc 2014-07-23 18:03:24 +12:00
Robert O'Callahan
c3ca54a25d Bug 1022612. Part 31: Perform layer-level occlusion culling in FrameLayerBuilder. r=mattwoodrow
We need this to avoid constructing and painting unncecessarily large
ThebesLayers.
2014-06-23 16:24:00 +12:00
Robert O'Callahan
a521d8328a Bug 1022612. Part 10: Implement merging and flattening in ProcessDisplayItems. r=mattwoodrow
BuildContainerLayerFor now has to be able to mutate the passed-in display item
list.
2014-06-09 16:48:00 +12:00
Ryan VanderMeulen
c55b45acd3 Backed out 46 changesets (bug 1022612) for B2G mochitest permafails on a CLOSED TREE.
Backed out changeset 34b3014a3112 (bug 1022612)
Backed out changeset 6ae9316fd909 (bug 1022612)
Backed out changeset b8f3749c95eb (bug 1022612)
Backed out changeset caab10bf6ca3 (bug 1022612)
Backed out changeset 0c57c620c898 (bug 1022612)
Backed out changeset fac64141a00a (bug 1022612)
Backed out changeset bf0df1c9d68b (bug 1022612)
Backed out changeset b42054800020 (bug 1022612)
Backed out changeset 667793b21194 (bug 1022612)
Backed out changeset f14ada64fe1b (bug 1022612)
Backed out changeset 75b837686bdf (bug 1022612)
Backed out changeset 66de53183a22 (bug 1022612)
Backed out changeset 0ff86ced4d46 (bug 1022612)
Backed out changeset 18eecc5b1ef7 (bug 1022612)
Backed out changeset 2763c4878de5 (bug 1022612)
Backed out changeset b72413ecc385 (bug 1022612)
Backed out changeset b23f1081afb8 (bug 1022612)
Backed out changeset f7e2c6a72043 (bug 1022612)
Backed out changeset 959917c9027d (bug 1022612)
Backed out changeset 0268a46f4880 (bug 1022612)
Backed out changeset 3388856a80ad (bug 1022612)
Backed out changeset e4b17cf0f806 (bug 1022612)
Backed out changeset 2f4e9da0e4b6 (bug 1022612)
Backed out changeset 489f6a7c0c03 (bug 1022612)
Backed out changeset 8369d9ad7ad3 (bug 1022612)
Backed out changeset 0758d2a06002 (bug 1022612)
Backed out changeset f2ae9cb22edb (bug 1022612)
Backed out changeset 9c48c6ee5dc2 (bug 1022612)
Backed out changeset fe7134400f08 (bug 1022612)
Backed out changeset cc2c5397ca8b (bug 1022612)
Backed out changeset a3d1a3e8b39d (bug 1022612)
Backed out changeset 8974b74b0eb0 (bug 1022612)
Backed out changeset 75f7dbb5a2a6 (bug 1022612)
Backed out changeset 2aa04a071e60 (bug 1022612)
Backed out changeset f2ab1bcd4c39 (bug 1022612)
Backed out changeset da9152b6ea29 (bug 1022612)
Backed out changeset 58abf5b0e148 (bug 1022612)
Backed out changeset 797058a09ad2 (bug 1022612)
Backed out changeset ea3e99a92ff0 (bug 1022612)
Backed out changeset adc4a4a7aa73 (bug 1022612)
Backed out changeset 7b18dedd1505 (bug 1022612)
Backed out changeset 055dd1921e8e (bug 1022612)
Backed out changeset 42fa2c97e989 (bug 1022612)
Backed out changeset cd594236388f (bug 1022612)
Backed out changeset 9eadc5fee43d (bug 1022612)
Backed out changeset 5cc8d30ff7c9 (bug 1022612)
2014-07-17 11:24:47 -04:00
Robert O'Callahan
b84a327b96 Bug 1022612. Part 31: Perform layer-level occlusion culling in FrameLayerBuilder. r=mattwoodrow
We need this to avoid constructing and painting unncecessarily large
ThebesLayers.
2014-06-23 16:24:00 +12:00
Robert O'Callahan
49f0e4c35d Bug 1022612. Part 10: Implement merging and flattening in ProcessDisplayItems. r=mattwoodrow
BuildContainerLayerFor now has to be able to mutate the passed-in display item
list.
2014-06-09 16:48:00 +12:00
Carsten "Tomcat" Book
afb56000fb Backed out changeset 3bf33a32bfe0 (bug 1022612) 2014-07-15 10:30:38 +02:00
Carsten "Tomcat" Book
0099f57637 Backed out changeset f8b488c389e9 (bug 1022612) 2014-07-15 10:30:04 +02:00
Robert O'Callahan
24bb02aaa0 Bug 1022612. Part 31: Perform layer-level occlusion culling in FrameLayerBuilder. r=mattwoodrow
We need this to avoid constructing and painting unncecessarily large
ThebesLayers.
2014-06-23 16:24:00 +12:00
Robert O'Callahan
3e75a284d0 Bug 1022612. Part 10: Implement merging and flattening in ProcessDisplayItems. r=mattwoodrow
BuildContainerLayerFor now has to be able to mutate the passed-in display item
list.
2014-06-09 16:48:00 +12:00
Benoit Girard
c36e97ca50 Bug 1027496 - Stream display list and layers dump. r=mattwoodrow 2014-06-19 18:36:25 -04:00
Benoit Jacob
255a665287 Bug 1027251 - Fix or whitelist dangerous public destructors in layout/ - r=dbaron 2014-06-18 22:28:59 -04:00
Kyle Huey
78f6f38554 Bug 991812: Remove uses of RefCounted<T> that live in Gecko. r=ehsan 2014-04-14 12:04:24 -07:00
Ryan VanderMeulen
5aa07e1977 Backed out changesets ddbac34527fe and fa82f32d0c39 (bug 991812) for B2G bustage.
CLOSED TREE
2014-04-14 16:16:18 -04:00
Kyle Huey
613b19edaa Bug 991812: Remove uses of RefCounted<T> that live in Gecko. r=ehsan 2014-04-14 12:04:24 -07:00
Kyle Huey
4948238a71 Back out bug 991812 for bustage on a CLOSED TREE. r=me 2014-04-08 17:26:33 -07:00
Kyle Huey
e165611799 Bug 991812: Remove uses of RefCounted in code that lives solely in Gecko. r=ehsan 2014-04-08 16:37:05 -07:00
Daniel Holbert
c7bcfc16c7 Bug 984786 part 1: Add MOZ_FINAL and private destructors to some refcounted classes in layout. r=dbaron 2014-03-21 09:16:20 +08:00