Commit graph

259 commits

Author SHA1 Message Date
Margareta Eliza Balazs
b1e7992b82 Backed out 8 changesets (bug 1265824) for bustage in /builds/worker/workspace/build/src/gfx/layers/opengl/CompositorOGL.cpp on a CLOSED TREE
Backed out changeset 1099d6f15f9f (bug 1265824)
Backed out changeset b5ba15b1a70f (bug 1265824)
Backed out changeset 51795de4adaf (bug 1265824)
Backed out changeset be68741ff4ce (bug 1265824)
Backed out changeset 4731dc56702d (bug 1265824)
Backed out changeset 984133e9614b (bug 1265824)
Backed out changeset efce316a4425 (bug 1265824)
Backed out changeset 367abce30668 (bug 1265824)
2018-07-19 09:33:28 +03:00
Doug Thayer
eeeab69c1c Bug 1265824 - Wait on texture handles with IPC r=jld,mattwoodrow
There's a lot going on here, but it all fits under the idea of
being able to communicate about texture locking statuses
without spinning on IsReadLocked. This is a bit of a trade -
we could just always allocate/grab a texture from the pool,
which would put a smaller cap on the amount of time we can
possibly spend when a texture is locked. However, this eats
up more CPU and memory than waiting on the textures to unlock,
and could take longer, especially if there were a large number
of textures which we just need to wait for for a short amount
of time. In any case, we very rarely hit the case where we
actually need to wait on the sync IPC to the compositor - most
of the time the textures are already unlocked.

There is also an async IPC call in here, which we make before
flushing async paints. This just causes the compositor to
check whether the GPU is done with its textures or not and
unlock them if it is. This helps us avoid the case where we
take a long time painting asynchronously, turn IPC back on at
the end of that, and then have to wait for the compositor
to to get into TiledLayerBufferComposite::UseTiles before
getting a response. Specifically this eliminates several talos
regressions which use ASAP mode.

Lastly, there seem to be no other cases of static Monitors
being used. This seems like it falls under similar use cases
as StaticMutexes, so I added it in. I can move it into its own
file if we think it might be generally useful in the future.

MozReview-Commit-ID: IYQLwUqMxg2

--HG--
extra : rebase_source : 3624ad04aa01dac1cd38efb47764dc3a8fbd5fbd
2018-05-05 15:46:26 -07:00
Doug Thayer
a1e4ac3550 Bug 1265824 - Add a new texture source type "DirectMapTextureSource" r=mattwoodrow
The DirectMapTextureSource could let the compositor to read the buffer directly.
That could get rid of some memory copy operations during texture uploading.

MozReview-Commit-ID: CHhoR96P7VG

--HG--
extra : rebase_source : fbca3bd3b8af29939626e697909cc67e9a5b34cc
2018-05-02 18:20:10 -07:00
Doug Thayer
8915d0bb01 Bug 1265824 - Remove the unsed member in GLTextureSource r=mattwoodrow
The "mExternallyOwned" is used for gralloc buffer. We don't use the gralloc buffer now.

MozReview-Commit-ID: 7Gurpa3kdp0

--HG--
extra : rebase_source : 00d74c0bc8e8e164571e05942768cf18d9cbce4d
2018-05-02 18:19:54 -07:00
sotaro
623f090649 Bug 1451183 - Make EGLLibrary destroyable r=jgilbert 2018-06-04 11:09:29 +09:00
Andrew Osmond
679c14a9c4 Bug 1388020. r=nical 2018-04-06 09:01:17 -04:00
Andrew Osmond
34935cb2ff Bug 1388020. r=nical 2018-02-07 09:33:12 -05:00
Andrew Osmond
5a683f0a80 Backed out changeset d078b56f0fa6 (bug 1388020) for OS X crashtest failures. r=backout 2018-02-06 22:18:29 -05:00
Andrew Osmond
210a94af4d Bug 1388020. r=nical 2018-02-06 20:14:17 -05:00
James Willcox
bc001da86a Bug 1413230 - Ensure we are attached to the GL context in SurfaceTextureHostOGL::PrepareTextureSource() r=jnicol,nical
MozReview-Commit-ID: BxDng9OG3RF
2017-11-06 09:30:13 -06:00
Sebastian Hengst
f07fc93141 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 4PW6ESqLL73
2017-10-30 23:52:23 +01:00
Jeff Gilbert
4f2cae0384 Bug 1395497 - Add AndroidSurfaceTexture support to GLBlitHelper. - r=snorp
MozReview-Commit-ID: JttqOoDCE4O
2017-10-30 10:58:56 -05:00
James Willcox
1ee57ae7a7 Bug 1395497 - Create SurfaceTexture in detached state, attach on first use r=jgilbert
MozReview-Commit-ID: HfkEUH9aiBo
2017-10-30 10:58:56 -05:00
Jamie Nicol
21b5b6db95 Bug 1092294 - Use SurfaceTextures for painted content on android (preffed off). r=nical,snorp
Add a new TextureClientData type, AndroidNativeWindowTextureData,
backed by a SurfaceTexture in single-buffer mode. It uses the
NativeWindow API, which provides producer-side access to the buffer.
This provides a DrawTarget which can be used to paint directly in to
the SurfaceTexture, which can then be composited using a SurfaceTextureHost.

Due to API restrictions it is not possible to read from a NativeWindow
while the corresponding SurfaceTexture has ownership of the
buffer. TiledContentClient now handles that by painting the additional
region that it cannot copy from the front buffer, if required.

MozReview-Commit-ID: 1NZq6MQqwFq

--HG--
extra : rebase_source : 9d1db721d4892f3df033d43127489a85421e8863
2017-10-28 11:59:58 +01: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
Daniel Holbert
ecf5ee687e Bug 1412427 part 4: Indent under-indented MPL boilerplate comments by 1 space, for consistency & alignment. (whitespace-only) r=jrmuizel
This patch was automatically generated. I found the files to be fixed in this
patch with the following command:
grep -r "^\* This Source Code" gfx

...and then I modified each of these files with the following script
(where $1 is the filename to be modified):
###
line1="\* This Source Code Form is subject to the terms of the Mozilla Public"
line2="\* License, v\. 2\.0\. If a copy of the MPL was not distributed with this"
line3="\* file, You can obtain one at http://mozilla\.org/MPL/2\.0/\. \*/"

# Insert 1 space at beginning:
sed -i s%"^$line1"%" $line1"% $1
sed -i s%"^$line2"%" $line2"% $1
sed -i s%"^$line3"%" $line3"% $1
###

MozReview-Commit-ID: HXBMrfnhlVr

--HG--
extra : rebase_source : de4c78563711f8366e2978c5199a5041875fbe38
2017-10-27 15:55:37 -07:00
James Willcox
6b5af17980 Bug 1372060 - Relax assertions when missing SurfaceTexture in compositor r=jgilbert
MozReview-Commit-ID: heJALqGBLV
2017-06-26 09:48:43 -05:00
James Willcox
bd21ee4811 Bug 1367287 - Reference count GeckoSurfaceTexture r=jchen
MozReview-Commit-ID: 1JJVzCmANyH
2017-06-02 10:14:20 -05:00
James Willcox
cf48e4bebd Bug 1322650 - Support a 'continuous' mode for SurfaceTexture r=jgilbert
This is needed to support Flash on Android

MozReview-Commit-ID: 5yNIoZHonla
2017-05-15 09:37:50 -05:00
James Willcox
395ab599a1 Bug 1322650 - Use SurfaceTexture for WebGL on Android in E10S r=jgilbert
The main advantage here is that it works cross-process.

MozReview-Commit-ID: 7YUTVB4Bydg
2017-05-15 09:37:44 -05:00
Iris Hsiao
e22349b74b Backed out 11 changesets (bug 1322650) for media test failures on android. a=backout
Backed out changeset 31bd912fba54 (bug 1322650)
Backed out changeset 4d486c7469eb (bug 1322650)
Backed out changeset 4cf8f4d5064c (bug 1322650)
Backed out changeset 3cb108f7492f (bug 1322650)
Backed out changeset bd53533c108e (bug 1322650)
Backed out changeset 3522917d8f10 (bug 1322650)
Backed out changeset 2c2c1e33eccc (bug 1322650)
Backed out changeset 2f19977cd6ab (bug 1322650)
Backed out changeset 4519296a323e (bug 1322650)
Backed out changeset e56e5e1c8786 (bug 1322650)
Backed out changeset 96fe52231b57 (bug 1322650)

--HG--
extra : amend_source : b11d2181d8f545f4ed1074f09986eddab0b637c8
2017-05-12 10:21:14 +08:00
James Willcox
40d0e705e9 Bug 1322650 - Support a 'continuous' mode for SurfaceTexture r=jgilbert
This is needed to support Flash on Android

MozReview-Commit-ID: 5yNIoZHonla
2017-05-11 15:42:44 -05:00
James Willcox
ad1995d388 Bug 1322650 - Use SurfaceTexture for WebGL on Android in E10S r=jgilbert
The main advantage here is that it works cross-process.

MozReview-Commit-ID: 7YUTVB4Bydg
2017-05-11 15:42:42 -05:00
Sebastian Hengst
087bd41f0f Backed out changeset 9badb2705567 (bug 1322650) 2017-05-05 18:54:09 +02:00
Sebastian Hengst
8eeeb93b94 Backed out changeset 0c01bf8a1bd9 (bug 1322650) 2017-05-05 18:53:45 +02:00
James Willcox
f8f0fe9303 Bug 1322650 - Support a 'continuous' mode for SurfaceTexture r=jgilbert
This is needed to support Flash on Android

MozReview-Commit-ID: 5yNIoZHonla
2017-05-05 08:56:35 -05:00
James Willcox
a7f7a7b630 Bug 1322650 - Use SurfaceTexture for WebGL on Android in E10S r=jgilbert
The main advantage here is that it works cross-process.

MozReview-Commit-ID: 7YUTVB4Bydg
2017-05-05 08:56:28 -05:00
David Anderson
9b33134098 Fix not deallocating device data after changing OGL compositors. (bug 1350259, r=mattwoodrow)
--HG--
extra : rebase_source : 975ae741669600dde85ea7030252ba738c419e61
2017-03-27 14:03:59 -07:00
David Anderson
ca86baecf0 Material changes for TextureHost TextureSourceProvider support. (bug 1343814 part 3.2, r=mattwoodrow) 2017-03-21 20:32:54 -07:00
David Anderson
019d548845 Change TextureSource::SetCompositor to use TextureSourceProvider. (bug 1343814 part 2, r=mattwoodrow) 2017-03-21 20:32:53 -07:00
sotaro
1d710a54ef Bug 1343764 - Add ExternalBuffer handling r=nical 2017-03-07 19:37:28 +09:00
Matt Woodrow
4d0b10822d Bug 1308363 - Remove GONK specific code from gfx/. r=jrmuizel,sotaro 2016-10-27 13:17:10 +13:00
Jamie Nicol
9a0a722f7b Bug 1311642 - Remove BeginUpdate and EndUpdate from GLTextureImage. r=nical
Only DirectUpdate was actually being used, so remove the dead
code. TextureImageCGL does't do anything over BasicTextureImage any more
so remove it too.

MozReview-Commit-ID: D7jpC9M7aTT

--HG--
extra : rebase_source : 7846439aa5cb320704b8f811f3203fe7fd31c51e
2016-10-20 17:11:00 +01:00
Edwin Flores
c8851b53f9 Bug 1264505 - Target EGLImage to GL_TEXTURE_2D if OES_EGL_image_external extension is not available - r=jgilbert 2016-07-13 11:16:54 +01: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
Jeff Muizelaar
b376008551 Bug 1265960 - Remove gfxReusable* r=Bas
These aren't used anymore.
2016-04-20 11:39:15 -04:00
Nicolas Silva
fbb16ba823 Bug 1258768 - Check compositor backends before casting. r=dvander 2016-04-14 12:38:38 +02:00
Sotaro Ikeda
0c6a8d0ef6 Bug 1262601 - Handle video content as opaque in PostProcessLayers() r=mattwoodrow 2016-04-10 19:51:21 -07:00
David Anderson
ea604f9f48 Recreate GLTextureSources after changing compositors on Mac. (bug 1247611, r=mattwoodrow)
--HG--
extra : rebase_source : ff5d3cc118ac1f944398431d423c75b254c0a029
2016-03-30 09:33:24 -04:00
Nicolas Silva
2dde2bc93f Bug 1245813 - Fix a trivial inverted null check in TextureHostOGL.cpp. r=me 2016-03-23 15:31:21 +01:00
Paul Adenot
aa767abfbb Bug 1245813 - Add a missing parenthesis on NS_SUCCEEDED, on a CLOSED TREE.
--HG--
extra : commitid : 4PlSXzo1ZVM
2016-03-23 12:48:41 +01:00
Nicolas Silva
9294c61389 Bug 1245813 - Make TextureHost bullet-proof against changing its compositor. r=dvander 2016-03-22 15:28:27 +01:00
Carsten "Tomcat" Book
a946199796 Backed out changeset 38aa13f30b92 (bug 1245813) for bc7 crashes on a CLOSED TREE 2016-03-22 17:11:21 +01:00
Nicolas Silva
2b867d9c85 Bug 1245813 - Make TextureHost bullet-proof against changing its compositor. r=dvander 2016-03-22 15:28:27 +01:00
peter chang
bb4e7deeb8 Bug 1251163 - Clear android surface texture before widget shutdown, r=nical
MozReview-Commit-ID: B68vVjR41OF

--HG--
extra : rebase_source : 8d57f3bd941e813e02cd38b6fcfa73753e6c94c1
2016-02-25 16:48:55 +08:00
Nicholas Nethercote
cac93d89a3 Bug 1239225 - Remove unused args from TextureImage's constructor and related functions. r=mattwoodrow. 2016-01-12 23:10:56 -08:00
Nicolas Silva
9bc4b1d4e6 Bug 1228952 - Move texture metadata out of the BufferTextureClient/Host's buffer. r=Sotaro 2015-12-16 19:50:58 +01:00
Nicolas Silva
e9b85ee52f Bug 1229577 - Rename NewSurfaceDescriptorGralloc into SurfaceDescriptorGralloc. r=sotaro 2015-12-04 11:23:42 +01:00
James Willcox
faa1a44adb Bug 1208513 - Resurrect SharedSurface_GLTexture for use on iOS r=jgilbert 2015-10-28 14:10:25 -05: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