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

166 Коммитов

Автор SHA1 Сообщение Дата
Ryan Hunt f8901aa7a0 Bug 1450255 - Don't reset the TextureSource when uploading tiles with advanced layers. r=nical
LayerManagerMLGPU does not have a compositor so this line will force the TextureHost to
reupload the buffer later in this function when the TextureSource is set correctly.

--HG--
extra : amend_source : 57f41549565cf770c98ace6d49460d21468568a7
2018-04-02 13:35:50 -05:00
Ryan Hunt 084c9b6f4c Allocate TextureReadLock at TextureClient creation and drop file handles immediately after. (bug 1416726, r=aosmond)
This changes the lifecycle and API for TextureReadLock to fix file descriptor exhaustion
crashes. These changes are partially superficial and mostly align the API of TextureReadLocks
with their actual usage.

The changes are:

1. Create the TextureReadLock in the TextureClient constructor so it's available before IPC creation
    a. This is superficial as EnableReadLock was always called before IPC creation
2. Send the ReadLockDescriptor in the PTextureConstructor message and close the file handle
3. Receive the ReadLockDescriptor in TextureHost and close the file handle
4. Send a boolean flag in layer transactions if the texture is read locked instead of a descriptor
5. Use a boolean flag in TextureHost to determine if the ReadLock must be unlocked instead of a nullptr

I believe that we can remove the InitReadLocks code from LayerTransaction as that was added to
prevent file descriptor limits in IPDL messages and is no longer needed with this change. But
that is a non-essential change and this patch is already big enough.

MozReview-Commit-ID: DzHujrOQejH

--HG--
extra : rebase_source : 3bdd7c9bc8edfdc386faad8a9e59ad7dc18ed91d
2018-03-12 08:10:13 -05:00
Milan Sreckovic 099cfc4242 Bug 1423570: Use BaseRect access methods instead of member variables in gfx/ r=bas.schouten
MozReview-Commit-ID: ZGySgc9oP3

--HG--
extra : rebase_source : 23aadc10e9885002290155684b2c495780d979ce
2017-12-19 15:48:39 -05:00
David Anderson 9b858fefcd Add high-res tiling support to Advanced Layers. (bug 1420674 part 5, r=mattwoodrow)
--HG--
extra : rebase_source : b5448c63830ce9e09c0602262f7664ce363e53c0
2017-11-29 21:12:26 -08:00
David Anderson c6c86e720f Use TextureSourceProvider instead of Compositor in TiledContentHost. (bug 1420674 part 3, r=mattwoodrow)
--HG--
extra : rebase_source : c3535490c813227cd6d1f6c009f1680567d0680a
2017-11-29 21:12:25 -08:00
Csoregi Natalia 8a2bcaea6d Backed out 5 changesets (bug 1420674) for Build Bustage. r=backout on a CLOSED TREE
Backed out changeset 89e84473d524 (bug 1420674)
Backed out changeset 22e1aa958dd2 (bug 1420674)
Backed out changeset 7f416f3bbacd (bug 1420674)
Backed out changeset 5af1da25ee57 (bug 1420674)
Backed out changeset eeb25dc98529 (bug 1420674)
2017-11-29 06:03:31 +02:00
David Anderson ce6acee07d Add high-res tiling support to Advanced Layers. (bug 1420674 part 5, r=mattwoodrow) 2017-11-28 18:34:59 -08:00
David Anderson 49c3410c44 Use TextureSourceProvider instead of Compositor in TiledContentHost. (bug 1420674 part 3, r=mattwoodrow) 2017-11-28 18:34:58 -08:00
Daniel Holbert 126bd9e1a4 Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: 77D61xpSmIl

--HG--
extra : rebase_source : c6162fa3cf539a07177a19838324bf368faa162b
2017-10-27 16:10:06 -07:00
Nicholas Nethercote 4bedc03a3d Bug 1406296 (part 2) - Remove the profiler's "layersdump" feature. r=mstange.
Because it just doesn't control any behaviour within the profiler, and it just
duplicates gfxPrefs::LayersDumpTexture().

With this gone, PROFILER_FEATURE_ACTIVE can also be removed.

--HG--
extra : rebase_source : d6718894b8a9332cf73729ea6b7bd2de348817bd
2017-10-06 17:34:22 +11:00
Nicholas Nethercote 8a68e6fb83 Bug 1403868 (part 4) - Reduce tools/profiler/public/*.h to almost nothing in non-MOZ_GECKO_PROFILER builds. r=mstange.
Currently the Gecko Profiler defines a moderate amount of stuff when
MOZ_GECKO_PROFILER is undefined. It also #includes various headers, including
JS ones. This is making it difficult to separate Gecko's media stack for
inclusion in Servo.

This patch greatly simplifies how things are exposed. The starting point is:

- GeckoProfiler.h can be #included unconditionally;

- everything else from the profiler must be guarded by MOZ_GECKO_PROFILER.

In practice this introduces way too many #ifdefs, so the patch loosens it by
adding no-op macros for a number of the most common operations.

The net result is that #ifdefs and macros are used a bit more, but almost
nothing is exposed in non-MOZ_GECKO_PROFILER builds (including
ProfilerMarkerPayload.h and GeckoProfiler.h), and understanding what is exposed
is much simpler than before.

Note also that in BHR, ThreadStackHelper is now entirely absent in
non-MOZ_GECKO_PROFILER builds.
2017-10-04 09:11:18 +11:00
Milan Sreckovic e3cd0a3157 Bug 1387514: Upgrade BaseRect (derived classes) width and height direct member variable use to instead use Width()/SetWidth() and Height()/SetHeight() in .cpp files in gfx/*. r=milan
MozReview-Commit-ID: 1jESowJKdyp

--HG--
extra : rebase_source : 3839cdea46729a9af05c777215cffcb9f42a2018
2017-08-14 08:29:28 -04:00
Nicholas Nethercote ea25e62e3c Bug 1360471 (part 4) - Use a bitfield to represent profiler features. r=mstange.
Currently the profiler mostly uses an array of strings to represent which
features are available and in use. This patch changes the profiler core to use
a uint32_t bitfield, which is a much simpler and faster representation.
(nsProfiler and the profiler add-on still use the array of strings, alas.) The
new ProfilerFeature type defines the values in the bitfield.

One side-effect of this change is that profiler_feature_active() now can be
used to query all features. Previously it was just a subset.

Another side-effect is that profiler_get_available_features() no longer incorrectly
indicates support for Java and stack-walking when they aren't supported. (The
handling of task tracer support is unchanged, because the old code handled it
correctly.)
2017-05-01 14:23:34 +10:00
David Anderson 8217a1b1a7 Attach Compositables to TextureSourceProviders instead of Compositors. (bug 1343814 part 5, r=mattwoodrow) 2017-03-21 20:32:56 -07:00
David Anderson 3f1c4ac214 Propagate the compositor through CompositableHost::Composite. (bug 1343814 part 4, r=mattwoodrow) 2017-03-21 20:32:55 -07:00
David Anderson e61288b390 Replace TextureHost compositor access with TextureSourceProvider. (bug 1343814 part 3.1, r=mattwoodrow) 2017-03-21 20:32:54 -07:00
David Anderson efe562eabb Move composition time from Compositor to HostLayerManager. (bug 1339688 part 1, r=mattwoodrow) 2017-02-15 19:03:20 -08:00
David Anderson d2703c8176 Remove Composer2D remnants. (bug 1339353, r=kats) 2017-02-14 12:29:39 -08:00
Miko Mynttinen c0b2cd5b45 Bug 1274673 - Use binary space partitioning for sorting/drawing layers - Part 3: Use BSPTree for layer sorting r=jrmuizel,mattwoodrow
MozReview-Commit-ID: 3Hy4IRDFgaP

--HG--
extra : rebase_source : ec31672ba66a81537cd21356466c8774023edd60
2016-12-06 13:39:01 -10:00
Jamie Nicol 18f5f7db34 Bug 1311642 - Do partial texture uploads on mobile. r=nical
We were always uploading the entire texture region, but still by using
glTexSubImage2D. In most cases it should be quicker to use
glTexSubImage2D on the updated region only. And where that function has
problems we should avoid it by making CanUploadSubTextures return false
so that glTexImage2D is used instead.

MozReview-Commit-ID: BrobWEPJ82M

--HG--
extra : rebase_source : 986642a1d7bfe2bcb0cc12dc8e41c17ac77abc1d
2016-10-20 18:24:12 +01:00
Nicholas Nethercote b71747b2ac Bug 1299727 - Rename NS_WARN_IF_FALSE as NS_WARNING_ASSERTION. r=erahm.
The new name makes the sense of the condition much clearer. E.g. compare:

  NS_WARN_IF_FALSE(!rv.Failed());

with:

  NS_WARNING_ASSERTION(!rv.Failed());

The new name also makes it clearer that it only has effect in debug builds,
because that's standard for assertions.

--HG--
extra : rebase_source : 886e57a9e433e0cb6ed635cc075b34b7ebf81853
2016-09-01 15:01:16 +10:00
Jonathan Watt 03036022ec Bug 1277862, part 2 - Rename Moz2D's Filter to SamplingFilter in the rest of gfx/. r=Bas 2016-05-25 17:01:18 +01:00
Nicolas Silva 1d7c8451c8 Bug 1272600 - Part 3 - Move the ReadUnlock logic from compositable to texture. r=sotaro 2016-06-02 11:00:21 +02:00
Nicolas Silva 0a313355f8 Bug 1272600 - Part 2 - Store TextureReadLock into TextureClient/Host. r=sotaro 2016-06-02 11:00:17 +02:00
Nicolas Silva e81b585b53 Bug 1272600 - Part 1 - Preliminary cleanups for the ReadLock patch queue. r=sotaro 2016-06-02 11:00:12 +02:00
Jeff Muizelaar 7288d777c9 Bug 1272778. Use IntRects for clip rects instead of Rects. r=mstange
Previously, we took an IntRect converted to Rect and then later wanted
ints in the backend. This avoids all of that.
2016-05-13 19:58:43 -04:00
Wes Kocher 69ee17e2fb Backed out changeset b15136f926ca (bug 1272778) for build bustage 2016-05-13 16:05:12 -07:00
Jeff Muizelaar 4ed215c5a2 Bug 1272778. Use IntRects for clip rects instead of Rects. r=mstange
Previously, we took an IntRect converted to Rect and then later wanted
ints in the backend. This avoids all of that.
2016-05-13 18:51:09 -04:00
Botond Ballo 80791b18a4 Bug 1267470 - Move more fields from FrameMetrics to ScrollMetadata. r=kats
MozReview-Commit-ID: zxtt1NNcDe

--HG--
extra : rebase_source : 65cdc94615ccbb51901e8c4ac086987ff2183719
2016-04-27 16:06:34 -04:00
James Willcox 94ec972fe7 Bug 1178376 - Optionally fade in new progressively painted tiles r=nical 2016-04-26 09:49:12 -05:00
Jeff Muizelaar b376008551 Bug 1265960 - Remove gfxReusable* r=Bas
These aren't used anymore.
2016-04-20 11:39:15 -04:00
Edwin Flores 54fb15d59f Bug 1224199 - Remove some unused code in TiledLayerBufferComposite - r=nical 2016-03-07 11:51:12 +00:00
Nicolas Silva 60f1ac8846 Bug 1250873 - Rename HasInternalBuffer into HasIntermediateBuffer in layers. r=sotaro 2016-02-25 14:15:58 +01:00
Nicholas Nethercote ab52b9a0ea Bug 1239864 (part 7) - Use the new rect iterators in gfx/. r=nical.
--HG--
extra : rebase_source : 27d77656d578deefff0860184346ff962e32762f
2016-01-18 17:20:58 -08:00
JerryShih 66c7ddec13 Bug 1215050 - Make layerscope support TiledPaintedLayer when using HWC. r=mattwoodrow, r=cjku
--HG--
extra : rebase_source : 3a606457d9c7cd630b6c9ab38941e2619b03943e
2015-10-15 06:03:00 -04:00
Nathan Froyd 01583602a9 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

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd 583afa0965 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
Botond Ballo e9f06a158c 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.

--HG--
extra : rebase_source : 0929ccdc87e9f6643777360571422d904a9e327c
extra : source : ff03d3963ff87cfeac5ebaac1a004d3ebed047e3
2015-09-28 18:51:37 -04:00
Nicholas Nethercote ff7df9ad79 Bug 1208283 (part 4) - Change FrameMetrics::mBackgroundColor from gfxRGBA to gfx::Color. r=jwatt.
This removes some ToColor() calls.

--HG--
extra : rebase_source : 05ee3e5aaa784e12c15fa42845864eacec45271f
2015-09-24 18:17:45 -07:00
Morris Tseng ab4cf2941e Bug 1197713 - Add missing gfxPrefs.h include to TiledContentHost.cpp. r=nical 2015-08-24 01:40:00 -04:00
Matt Woodrow 13b68d924b Bug 1180326 - Part 2: Add support for variable tile sizes. r=jrmuizel
--HG--
extra : rebase_source : 3bc281bba2ddaa536df07adaf047be6e21676b00
2015-07-29 12:01:21 -04:00
Nicolas Silva 7575034bb7 Bug 1186208 - Fix crash when tiling is enabled on linux. r=mattwoodrow 2015-07-22 16:06:02 +02:00
Matt Woodrow ac43f32053 Bug 1179987 - Remove painted region from SurfaceDescriptorTiles since it isn't used any more. r=nical
--HG--
extra : rebase_source : 5a50e5bee9f2402cade693ee4deced6a0b5831a9
2015-07-15 13:36:12 -04:00
Matt Woodrow 929531a354 Bug 1179987 - Make tiled TextureSource recycling based on pointer comparisons rather than trying to do it geometrically. r=nical
--HG--
extra : rebase_source : 47599d8f7e1b80157e3faab35ff8b3a35913e042
2015-07-15 13:34:35 -04:00
Matt Woodrow 733a253b4d Bug 1179987 - Simplify unlocking of tiled texture hosts. r=nical
--HG--
extra : rebase_source : 87506a5a809cf3381f9da7228ac2ccf3a2bb659f
2015-07-15 13:33:11 -04:00
Birunthan Mohanathas a8939590de 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
Robert O'Callahan 68954a66d8 Bug 1143575. Route ImageCompositeNotifications to ImageContainers. r=nical
For frame statistics to work properly, we have to notify an ImageContainer
when it has been composited. This requires a few changes, which have
been lumped together in this patch:
-- Create PImageContainer and ImageContainerParent/ImageContainerChild.
-- Add mFrameID and mProducerID everywhere we're passing around images.
-- Route composition notifications from the compositor back to
ImageContainerChild.

--HG--
extra : commitid : 7atVkOgdEhG
extra : rebase_source : caaba6a708ed267368df44609fb047abde9c3ca1
2015-07-06 15:02:26 +12:00
Nicolas Silva e4dff52f73 Bug 1170189 - fix a comment in the tiling code. r=BenWa 2015-07-01 13:51:07 +02:00
Nicolas Silva 6388e4a436 Bug 1170189 - Simplify TiledContentHost's render loop. r=BenWa 2015-06-10 17:59:19 +02:00
Nicolas Silva 49ec8aec24 Bug 1170189 - Use TilesPlacement to handle tile coordinates conversion. r=BenWa 2015-06-10 17:56:34 +02:00