Commit Graph

366 Commits

Author SHA1 Message Date
Nicolas Silva
e2ae37b6d3 Bug 1200595 - Introduce TextureData and implement it for X11. r=mattwoodrow, Bas, sotaro 2015-10-13 18:48:48 +02:00
Nicolas Silva
742c6fadca Bug 1224254 - Don't try to allocate unreasonably large textures. r=Bas 2015-11-18 16:59:11 +01:00
Nicolas Silva
b3bca19faa Bug 121976 - Add a destruction handshake to PCompositable so as to avoid races between messages and the protocol. r=sotaro 2015-11-06 16:56:03 +01:00
Nicolas Silva
a1b1560746 Bug 1219330 - Prevent the creation of TextureClient after shutdown. r=mattwoodrow 2015-10-30 13:25:29 +01: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
Nicolas Silva
3ef30e5636 Bug 1205559 - WError build fix on a CLOSED TREE 2015-10-16 15:22:06 +02:00
Jean-Yves Avenard
2c75109c59 Bug 1205559: Make TextureChild/TextureClient thread-safe. r=nical 2015-10-16 14:46:33 +02:00
Morris Tseng
5d262e4409 Bug 709490 - Part 1: Let ImageBridge transfer CanvasClient async. r=nical
Thanks Jon Morton [:jmorton] (jonanin@gmail.com) for polishing patches.
2015-10-12 11:21:02 +08:00
David Anderson
8a17c8a7ad Remove ISurfaceAllocator::GetCompositorBackend. (bug 1211109 part 4, r=mattwoodrow) 2015-10-05 23:40:13 -07:00
David Anderson
89329365b2 Remove the static compositor backend variable. (bug 1211109 part 2, r=mattwoodrow) 2015-10-05 23:39:00 -07:00
Wes Kocher
bbd458236d Backed out 11 changesets (bug 709490) for webgl-color-test.html failures a=backout
Backed out changeset fc04c5d43550 (bug 709490)
Backed out changeset cd8f9410d335 (bug 709490)
Backed out changeset 6e687c9143c1 (bug 709490)
Backed out changeset 9b20f2c833c4 (bug 709490)
Backed out changeset f9d130aea88e (bug 709490)
Backed out changeset fc513b410949 (bug 709490)
Backed out changeset acf6220b431a (bug 709490)
Backed out changeset 9bceaf913791 (bug 709490)
Backed out changeset 37fba20111e2 (bug 709490)
Backed out changeset 2285ce1596b8 (bug 709490)
Backed out changeset fb4e09920569 (bug 709490)
2015-10-05 08:28:25 -07:00
Morris Tseng
f3a9959ded Bug 709490 - Part 1: Let ImageBridge transfer CanvasClient async. r=nical
Thanks Jon Morton [:jmorton] (jonanin@gmail.com) for polishing patches.
2015-10-05 10:50:15 +08:00
David Anderson
f8eaddc178 Don't use Direct2D if CompositorD3D11::Initialize fails. (bug 1208638, r=jrmuizel) 2015-10-01 23:06:43 -07:00
Wes Kocher
5f9d42b514 Backed out changeset 919a831786f1 (bug 1208638) for windows build failures 2015-09-30 16:43:26 -07:00
David Anderson
9dbefd4a0f Don't use Direct2D if CompositorD3D11::Initialize fails. (bug 1208638, r=jrmuizel) 2015-09-30 16:16:16 -07:00
Nicolas Silva
b622be50d0 Bug 1208071 - Ensure that only valid texture actors are added to ImageBridge tarnsactions. r=sotaro 2015-09-30 18:17:30 +02:00
Wes Kocher
20f2b1dd4d Backed out 13 changesets (bug 709490) for android webgl-color-test.html failures
Backed out changeset 5be7514914b6 (bug 709490)
Backed out changeset 04b6f94fbe8a (bug 709490)
Backed out changeset 00c0e85dd8cd (bug 709490)
Backed out changeset 221385b7b81a (bug 709490)
Backed out changeset ecc38c18734f (bug 709490)
Backed out changeset 22878c936384 (bug 709490)
Backed out changeset 0edcbb60eee3 (bug 709490)
Backed out changeset 5feceec2014b (bug 709490)
Backed out changeset 835b655cb873 (bug 709490)
Backed out changeset 6fbb4a3f8cf7 (bug 709490)
Backed out changeset a5f8646fa156 (bug 709490)
Backed out changeset 2ae1386916b3 (bug 709490)
Backed out changeset 6b29a2a0a8fb (bug 709490)
2015-09-29 08:57:36 -07:00
Morris Tseng
276c20ec9e Bug 709490 - Part 1: Let ImageBridge transfer CanvasClient async, r=nical 2015-09-29 11:51:23 +01:00
Nicolas Silva
65ab142b26 Bug 1072313 - Never call TextureClient::KeepUntilFullDeallocation off the ipdl thread. r=mattwoodrow 2015-09-21 16:54:40 +02:00
Wes Kocher
778219cf27 Backed out changeset 09c2a214244b (bug 1072313) for Windows textureclient crashes CLOSED TREE 2015-09-21 10:37:07 -07:00
Nicolas Silva
f88df820fa Bug 1072313 - Never call TextureClient::KeepUntilFullDeallocation off the ipdl thread. r=mattwoodrow 2015-09-21 16:54:40 +02:00
Milan Sreckovic
d6c194e9db Bug 1200021 - crash in mozilla::layers::ContentClientDoubleBuffered::FinalizeFrame(nsIntRegion const&): Diagnostics to get more data. r=bas 2015-09-19 11:19:07 +02:00
Matt Woodrow
0aad9e225d Bug 1197534 - Send RecycleTexture messages from the ImageBridge thread. r=sotaro 2015-09-14 14:17:39 -04:00
Matt Woodrow
470d1c06dd Bug 1135935 - Part 6: Wait for the compositor to stop using textures before recycling them. r=jrmuizel 2015-08-13 15:18:53 -04:00
David Anderson
be559736b8 Remove the backend flag to TextureClient::CreateForDrawing. (bug 1183910 part 9, r=mattwoodrow) 2015-08-06 17:27:36 -07:00
Carsten "Tomcat" Book
55da5176e9 Backed out 2 changesets (bug 1183910) for bustage on a CLOSED TREE
Backed out changeset 9617a34de78f (bug 1183910)
Backed out changeset d8f79432c768 (bug 1183910)
2015-08-06 12:09:52 +02:00
David Anderson
062db27417 Remove the backend flag to TextureClient::CreateForDrawing. (bug 1183910 part 9, r=mattwoodrow) 2015-08-06 02:41:07 -07:00
Bas Schouten
0fdee84c97 Bug 1190950: Check mappings and surfaces for UpdateFromSurface more robustly. r=mattwoodrow 2015-08-06 02:29:47 +00:00
David Anderson
1955f19c17 Refactor graphics device initialization on Windows. (bug 1183910 part 1, r=mattwoodrow,bas)
This patch addresses a number of inconsistencies in the device initialization process, as well as simplifying it for future use. All device decisions are now explicitly made up-front during startup, rather than implicitly or on-demand. In addition a number of restrictions have been placed on when we can construct devices.

Full change list:
 (1) We no longer attempt to use D3D11 if acceleration is disabled or D3D9 is preferred. This is a departure from our previous behavior, where we would construct these devices but then not use them as a compositor backend.
 (2) D3D11 startup no longer creates a content device (this is reserved for D2D initialization).
 (3) D2D is only attempted if we managed to create a D3D11 compositor device. This is a departure from previous behavior where if D3D11 was not used for compositing, we could still create its machinery to use D2D as a content backend.
 (4) D2D 1.1 initialization is now directly responsible for creating a D3D11 content device.
 (5) D2D 1.0 and 1.1 logic have been disentangled for clarity.
 (6) UpdateRenderMode() has been split up, so we can update backend prefs out of band with device resets.
 (7) mUseGDIFonts and mUseDirectWrite have been removed as their state was confusing. Instead, D2D now depends on DWrite initialization succeeding. If later we fail to get a DWrite font list, we revert our decision to use Direct2D.
 (8) Device resets now clear a little more state, including the devices set in Moz2D Factory.
 (9) We no longer create a DWrite text analyzer as it was unused.
2015-07-28 16:52:54 -07:00
Bas Schouten
dfa16d7d10 Bug 1176363 - Part 1: Stop using DrawTargets off the main thread. r=mattwoodrow 2015-07-27 15:47:29 +00:00
Ryan VanderMeulen
b4eaa459f9 Backed out changeset adbd8a7608e4 (bug 1176363) for mochitest-gl permacrashes. 2015-07-27 13:54:56 -04:00
Bas Schouten
4fb399d2b2 Bug 1176363 - Part 1: Stop using DrawTargets off the main thread. r=mattwoodrow 2015-07-27 15:47:29 +00: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
Lee Salzman
fd45d65865 Bug 1180246 - Part 4 - reduce Cairo dependencies where safe in TextureClientD3D9. r=bas 2015-07-03 11:54:35 -04:00
Lee Salzman
1a85b6afa0 Bug 1180246 - Part 3 - remove usage of cairo_d2d_device. r=bas 2015-07-02 17:44:53 -04:00
Nathan Froyd
92a8124fef Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T>; r=ehsan
This conversion was done with the script:

  find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
    egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
    xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
                 -e 's/TemporaryRef</already_AddRefed</g'

Manual fixups were performed in the following instances:

- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
  into already_AddRefed.

- The following files had explicit Move() calls added to make up for the lack
  of a copy constructor on already_AddRefed:

  dom/base/ImageEncoder.cpp
  dom/media/MediaTaskQueue.{h,cpp}
  dom/media/webaudio/PannerNode.cpp

- A redundant overload for MediaTaskQueue::Dispatch was deleted.

- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.

- Comments, using declarations, and forward declarations relating to
  TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
  already_AddRefed.
2015-06-17 10:00:52 -04:00
Jeff Muizelaar
422632200e Backout 54d4d88b2f2f from Bug 1172014 which was causing Bug 1176548 2015-06-21 23:16:13 -04:00
Bas Schouten
dfe2f7f270 Bug 1172014: Correctly use TextureClientShmemDIB. r=jrmuizel 2015-06-19 01:59:30 +02:00
Jeff Gilbert
b9ee920350 Bug 1144906 - Add accel E10S backend for WebGL compositing. - r=jrmuizel,mattwoodrow,nical,sotaro 2015-06-04 17:15:38 -07:00
Wes Kocher
c801883c90 Backed out changeset c4d1692d88ee (bug 1144906) for OSX m(gl) permaorange 2015-06-04 16:50:59 -07:00
Jeff Gilbert
f857abecd5 Bug 1144906 - Add accel E10S backend for WebGL compositing. - r=jrmuizel,mattwoodrow,nical,sotaro 2015-06-04 14:21:32 -07:00
Wes Kocher
e3c99b1002 Backed out changeset 29bd04fc57f0 (bug 1144906) for b2g m12 orange 2015-05-28 17:08:53 -07:00
Jeff Gilbert
1e6d621331 Bug 1144906 - Fast WebGL compositing on E10S. - r=jrmuizel,mattwoodrow,nical 2015-05-28 14:51:39 -07:00
Bas Schouten
5e3bac60af Bug 1158575: Support using GDI rendering for opaque surfaces when using cross-process layers. r=jrmuizel 2015-05-22 17:54:24 +02:00
Nathan Froyd
43cddcfc0d Bug 1160485 - remove implicit conversion from RefPtr<T> to TemporaryRef<T>; r=ehsan
Having this implicit conversion means that we can silently do extra
refcounting when it's completely unnecessary.  It's also an obstacle to
making RefPtr more nsRefPtr-like, so let's get rid of it.
2015-05-01 09:14:16 -04:00
Matt Woodrow
f32f7b442d Bug 1146315 - Part 2: Release D3D11 YUV textures on the main thread. r=nical 2015-03-26 13:05:25 +13: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
Milan Sreckovic
a5610e14a3 Bug 1140113 - Catch direct (and some indirect) callers of CreateDrawTarget* and deal with failure. r=mstange 2015-03-09 15:48:20 -04:00
David Anderson
eea61cd9aa Implement GetMaxTextureSize in the basic compositor. (bug 1135883, r=mattwoodrow) 2015-02-24 13:39:01 -08:00