Commit Graph

296 Commits

Author SHA1 Message Date
Nicholas Nethercote
241d964c26 Bug 1232576 (part 1) - Move the reference |cairo_t*| from gfxContext to DrawTarget (as user data). r=jfkthame. 2015-12-14 22:23:51 -08:00
Milan Sreckovic
f9a4fe7edd Bug 1219494 - Part 4. gfx/layers and gfxCrash. r=mchang 2015-12-10 13:01:00 +01:00
Botond Ballo
6d77a56654 Bug 1069417 - Remove the explicit template argument of TransformTo() and related functions. r=kats
In this process, TransformTo() and UntransformTo() are renamed TransformedBy()
and UntransformBy() so calls to them continue to read sensibly.
2015-11-30 20:06:45 -05:00
Botond Ballo
85af71a0e4 Bug 1069417 - Modify TransformTo() and related functions to use typed matrices. r=kats
Call sites (all in APZ and related code) were modified accordingly. Some of
these modifications involved changing some matrices stored in APZ to be typed.
2015-11-30 20:14:31 -05:00
Nicolas Silva
dec04bdb5a Bug 1200595 - Introduce TextureData and implement it for X11. r=mattwoodrow, Bas, sotaro 2015-10-13 18:48:48 +02:00
Wes Kocher
76bed94f9a Backed out 12 changesets (bug 1200595) for b2g mochitest crashes in SharedBufferManagerParent CLOSED TREE
Backed out changeset cf8cf1a039dd (bug 1200595)
Backed out changeset 65da564f952c (bug 1200595)
Backed out changeset 7663208f1582 (bug 1200595)
Backed out changeset fc1fbb97c8eb (bug 1200595)
Backed out changeset 3ad5a4c457fe (bug 1200595)
Backed out changeset add3fe9afc0c (bug 1200595)
Backed out changeset 68aba6b39588 (bug 1200595)
Backed out changeset ab326c34f1cf (bug 1200595)
Backed out changeset ed34bc528a1b (bug 1200595)
Backed out changeset 0dc93424546c (bug 1200595)
Backed out changeset 8cc12f12f3d1 (bug 1200595)
Backed out changeset bb84403701b7 (bug 1200595)
2015-11-24 10:07:02 -08:00
Nicolas Silva
c305610bef Bug 1200595 - Introduce TextureData and implement it for X11. r=mattwoodrow, Bas, sotaro 2015-10-13 18:48:48 +02:00
Carsten "Tomcat" Book
f2da327ad7 Backed out 13 changesets (bug 1200595) for possibly breaking Reftest [TC] Crashtest tc-R on a CLOSED TREE
Backed out changeset e7278af0a484 (bug 1200595)
Backed out changeset c13228f84d85 (bug 1200595)
Backed out changeset 4b88e8a3d8af (bug 1200595)
Backed out changeset e55376bd2cf8 (bug 1200595)
Backed out changeset 9c27c8e2c021 (bug 1200595)
Backed out changeset a369a2983ceb (bug 1200595)
Backed out changeset 09e71ba15ea8 (bug 1200595)
Backed out changeset b555b130d439 (bug 1200595)
Backed out changeset 6819f6d82287 (bug 1200595)
Backed out changeset a8cdfbf443d8 (bug 1200595)
Backed out changeset 0092c9d7a86b (bug 1200595)
Backed out changeset 6dc38a1e6073 (bug 1200595)
Backed out changeset fe2164aa1468 (bug 1200595)
2015-11-20 16:55:26 +01:00
Nicolas Silva
e2ae37b6d3 Bug 1200595 - Introduce TextureData and implement it for X11. r=mattwoodrow, Bas, sotaro 2015-10-13 18:48:48 +02:00
Botond Ballo
db5d15db66 Bug 1222661 - Replace ToUntyped(obj) calls with obj.ToUnknown*(). r=nical 2015-11-06 22:13:40 -05:00
David Anderson
1bb3fc9e29 Use RAII for more TextureClient locking cases. (bug 1222863 part 2, r=nical) 2015-11-10 23:58:29 -08:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Nathan Froyd
bf7f6dda03 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Jamie Nicol
43dfadc842 Bug 1209801 - Part 2: Do not allow big image textures to be used with TiledLayerBuffers. r=mattwoodrow
Big-image textures (where multiple textures are tiled together to act as
a single larger texture, e.g. TiledTextureImage) were in some cases
being used to back the TextureSources associated with each Tile in a
TiledLayerBuffer. CompositorOGL was unaware of this, so when compositing
would only render the first tile in each big image, stretching it to the
size of the entire big image.

It doesn't make much sense to allow tiling-within-tiling, so set the
DISALLOW_BIGIMAGE flag for textures created for use with TiledLayerBuffers.
2015-10-14 11:32:44 +05:30
Jamie Nicol
56f8422a2d Bug 1209801 - Part 1: Add TextureFlags parameter to TextureClientPool. r=mattwoodrow 2015-10-14 11:32:35 +05:30
Nigel Babu
ce3ee92851 Backed out changeset ae5f03f140a8 (bug 1209801) on suspicion of Android reftest bustage ON A CLOSED TREE 2015-10-12 09:43:19 +05:30
Nigel Babu
407492787a Backed out changeset 9e69375c47ed (bug 1209801) for suspicion of Android reftest bustage ON A CLOSED TREE 2015-10-12 09:43:06 +05:30
Jamie Nicol
ab7e86a4b1 Bug 1209801 - Part 2: Do not allow big image textures to be used with TiledLayerBuffers. r=mattwoodrow
Big-image textures (where multiple textures are tiled together to act as
a single larger texture, e.g. TiledTextureImage) were in some cases
being used to back the TextureSources associated with each Tile in a
TiledLayerBuffer. CompositorOGL was unaware of this, so when compositing
would only render the first tile in each big image, stretching it to the
size of the entire big image.

It doesn't make much sense to allow tiling-within-tiling, so set the
DISALLOW_BIGIMAGE flag for textures created for use with TiledLayerBuffers.
---
 gfx/layers/client/SingleTiledContentClient.cpp | 2 +-
 gfx/layers/client/TiledContentClient.cpp       | 2 +-
 gfx/layers/composite/TextureHost.cpp           | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)
2015-10-11 18:13:10 +02:00
Jamie Nicol
5167ed74df Bug 1209801 - Part 1: Add TextureFlags parameter to TextureClientPool. r=mattwoodrow
---
 gfx/layers/client/ClientLayerManager.cpp | 19 ++++++++++++-------
 gfx/layers/client/ClientLayerManager.h   |  2 +-
 gfx/layers/client/TextureClientPool.cpp  |  6 ++++--
 gfx/layers/client/TextureClientPool.h    |  8 +++++++-
 gfx/layers/client/TiledContentClient.cpp |  3 ++-
 5 files changed, 26 insertions(+), 12 deletions(-)
2015-10-11 18:13:10 +02:00
Botond Ballo
125ed42881 Bug 1208661 - Support dumping client-side layer textures without compression. r=BenWa
Compression is used by the profiler, but we need uncompressed textures for the
browser to be able to render them when we include them in the HTML paint dump.
2015-09-28 18:51:37 -04:00
Nicholas Nethercote
83bf0be604 Bug 1207944 (part 1) - Pass a gfx::Color& instead of a gfxRGBA& to SetDeviceColor(). r=jwatt.
This avoids a gfxRGBA-to-Color conversion in SetDeviceColor() itself.
2015-09-23 23:33:31 -07:00
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
Nicholas Nethercote
830cf484e9 Bug 1203427 (part 1) - Add nsExpirationTracker::mName. r=froydnj.
There are many sub-classes of nsExpirationTracker. In order to distinguish them
nicely in the logging of timer firings, it's necessary to manually name each
one. (This wouldn't be necessary if there was a way to stringify template
parameters, but there isn't.)
2015-09-09 21:07:07 -07:00
Kartikaya Gupta
4ece257d77 Bug 1203992 - Distinguish between SingleTiledContentClient and MultiTiledContentClient in the layer tree dump. r=nical 2015-09-14 11:02:11 -04:00
Wes Kocher
6861dc007e Backed out 3 changesets (bug 1178376) for android reftest bustage CLOSED TREE
Backed out changeset 9394c5f63b56 (bug 1178376)
Backed out changeset 83295d5f54a9 (bug 1178376)
Backed out changeset 5e1c6511123a (bug 1178376)
2015-09-11 11:20:23 -07:00
James Willcox
c676a975cf Bug 1178376 - Optionally fade in new progressively painted tiles r=nical 2015-09-11 09:09:51 -05:00
James Willcox
a4d9098808 Bug 1178376 - Allow progressive painting when low-precision tiles are disabled r=BenWa 2015-09-11 09:09:49 -05:00
James Willcox
6e7d1929b8 Bug 1178376 - Put progressive paint status in tile updates r=nical 2015-09-11 09:09:48 -05:00
Kevin Wern
811c195d21 Bug 1173521 - Properly handle unapplying 3D projective transforms to rectangles in APZ code. r=botond
The untransformation is done using the newly added UntransformTo() functions
which call Matrix4x4::ProjectRectBounds(), which returns an empty rectangle
if the result is not at least partially on the positive side of the w = 0 plane.

UntransformTo() returnis the transformed rectangle if it's not empty, and
Nothing() otherwise, making callers check for this case.

The patch also adds some assertions to places where we apply transforms we
know should be 2D (and thus didn't switch to use UntransformTo()), checking
that the transforms are in fact 2D.
2015-08-28 12:00:29 -04: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
Matt Woodrow
902b3a1af6 Bug 1180326 - Part 3: Move repeated code into GetBackBuffer. r=jrmuizel 2015-07-29 12:02:27 -04:00
Matt Woodrow
a0ba59e752 Bug 1180326 - Part 2: Add support for variable tile sizes. r=jrmuizel 2015-07-29 12:01:21 -04:00
Matt Woodrow
f2624668c2 Bug 1180326 - Part 1: Abstract parts of the client side tiling that we need. r=jrmuizel 2015-07-29 12:01:11 -04:00
Nicolas Silva
08dbe9ee85 Bug 1118876 - Add edge padding with DrawTargetTiled. r=jrmuizel 2015-07-12 11:11:30 +02:00
Jamie Nicol
247a721f36 Bug 1186911 - Fix progressive paint when using tiled-drawtarget. r=nical
The commit for bug 1176077 did not correctly handle the code path for
when both progressive paint and tiled-drawtarget are enabled. This
fixes it.
2015-07-24 10:42:12 +01: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
Matt Woodrow
827045078c Bug 1179987 - Remove painted region from SurfaceDescriptorTiles since it isn't used any more. r=nical 2015-07-15 13:36:12 -04:00
Lee Salzman
cf7e6f61d8 Bug 1170390 - Use Optimal2DFormatForContent over OptimalFormatForContent to avoid enum conversions. r=jrmuizel 2015-07-06 22:27:19 -04:00
Nicolas Silva
02ce40b14f Bug 1129871 - Avoid copying TileClient when not necessary. r=BenWa 2015-07-10 13:50:21 +02:00
Robert O'Callahan
c4a9604528 Bug 1143575. Factor out AsyncTransactionWaiter from AsyncTransactionTracker so we'll be able to wait for multiple AsyncTransactionTrackers. r=nical,sotaro 2015-05-12 15:36:49 +12:00
Nicolas Silva
fb6854370b Bug 1170189 - Remove the TiledLayerComposer interface. r=BenWa 2015-07-01 13:51:03 +02:00
Nicolas Silva
efb6fc3ecf Bug 1170189 - Simplify the client-side tiling code. r=BenWa 2015-07-01 13:50:58 +02:00
Nicolas Silva
73daf00ad5 Bug 1170189 - Use TilesPlacement to handle tile coordinates conversion. r=BenWa 2015-06-10 17:56:34 +02:00
Amanda Sambath
86f2768844 Bug 1158120 - Edit include and comments that contained gfxIntSize and nsIntSize. r=nical 2015-05-29 17:01:46 +02:00
Nicolas Silva
3b53f42370 Bug 1150549 - Simplify TiledContentHost. r=jrmuizel 2015-05-22 13:38:13 +02:00
Ryan VanderMeulen
848450c7f2 Backed out changesets 4b6aa5c0a1bf and fdf38a41d92b (bug 1150549) for Mulet crashes.
CLOSED TREE
2015-05-25 14:05:05 -04:00
Nicolas Silva
bd83e568cb Bug 1150549 - Simplify TiledContentHost. r=jrmuizel 2015-05-22 13:38:13 +02:00
Ryan VanderMeulen
c5e158fea0 Backed out 2 changesets (bug 1150549) for OSX asserts.
Backed out changeset ef2faa9a0845 (bug 1150549)
Backed out changeset b35c88257a9c (bug 1150549)

CLOSED TREE
2015-05-22 10:28:52 -04:00
Nicolas Silva
406188695b Bug 1158838 - Add some gfxCriticalError logging. r=milan 2015-05-22 15:47:33 +02:00
Nicolas Silva
cc0fc4c82c Bug 1150549 - build fix on a CLOSED TREE 2015-05-22 14:11:16 +02:00