Commit Graph

247 Commits

Author SHA1 Message Date
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
Matt Woodrow
4bba997b2e Bug 1128170 - Use UniquePtr for TextureClient KeepAlive objects to make sure we don't leak them. r=jrmuizel 2015-02-18 13:35:30 +13:00
Matt Woodrow
8b1a65c884 Bug 1131808 - Avoid trying to allocate a buffer for 0 sized YCbCr images. r=nical 2015-02-12 11:23:56 +13:00
Benoit Girard
96e89bec1d Bug 1131462 - Remove buggy GetAsSurface override. r=jrmuizel 2015-02-10 23:03:15 +08:00
James Willcox
dffa2edbb3 Bug 1123084 - Always deallocate SharedSurface on the client r=jgilbert 2015-02-02 15:25:22 -06:00
Mike Hommey
715db83e04 Bug 1126593 - Add a global fallible instance, so that using fallible works directly, everywhere. r=njn 2015-02-02 09:56:13 +09:00
Nicolas Silva
8b8e48c853 Bug 1119019 - Avoid destroying a SharedSurface before its TextureClient/Host pair. r=sotaro 2015-01-23 15:35:16 +01:00
Nicolas Silva
4056738f05 Bug 1120645 - Use MOZ_PERFORMANCE_WARNING with TextureClients that must be destroyed synchronously. r=BenWa 2015-01-12 23:00:08 +01:00
Ehsan Akhgari
2b0bc024d5 Bug 1117263 - Mark virtual overridden functions as MOZ_OVERRIDE in graphics layers code; r=roc 2015-01-03 12:21:23 -05:00
Ethan Lin
0e3c3ed07d Bug 1042696 - Set allocator to TextureClient from constructor. r=nical 2014-12-22 03:49:00 -05:00
Milan Sreckovic
64bf344a02 Bug 1072871 - Make sure the targets don't disappear under us. r=benwa 2014-12-15 12:10:06 -05:00
Benoit Girard
63a5b13dee Bug 1112476 - Support dumping texture data on the ClientLayerManager. r=mstange 2014-12-18 13:32:45 -05:00
Sotaro Ikeda
a4a74b6d14 Bug 1043558 - Use gralloc for WebRTC camera preview r=jesup,nical 2014-12-16 07:11:48 -08:00
Bas Schouten
55948b2feb Bug 1088414: Use a single synchronization texture for D3D11. r=jrmuizel
This patch adds a cross platform 'sync object' that is used to synchronize the drawing of individual textures. For the D3D11 implementation all textures that are written to will have one pixel copied into the D3D11 sync texture while holding its lock. The compositor will then, before composition acquire and release sync once, this should ensure all drawing on the content side has completed.
2014-12-13 01:50:47 +00:00
Wes Kocher
84deca1a09 Backed out changeset 2cd43e5ae2c1 (bug 1088414) for breaking non-Windows builds on a CLOSED TREE 2014-12-12 18:11:59 -08:00
Bas Schouten
0ca40e581f Bug 1088414: Use a single synchronization texture for D3D11. r=jrmuizel
This patch adds a cross platform 'sync object' that is used to synchronize the drawing of individual textures. For the D3D11 implementation all textures that are written to will have one pixel copied into the D3D11 sync texture while holding its lock. The compositor will then, before composition acquire and release sync once, this should ensure all drawing on the content side has completed.
2014-12-13 01:50:47 +00:00
Milan Sreckovic
0ad696bf3e Bug 1099437 - Part 1: Protect against negative sizes and overflow. r=nical 2014-12-09 13:19:29 -05:00
Ryan VanderMeulen
1e6003a24b Backed out changesets 258ac2909d6e and 55252aebf52d (bug 1099437) for bustage.
CLOSED TREE
2014-11-26 14:14:16 -05:00
Milan Sreckovic
530e74983d Bug 1099437 - Part 1: Protect against negative sizes and overflow. r=nical 2014-11-20 15:07:22 -05:00
Milan Sreckovic
5e24a9f5ca Bug 1104837: Add warnings and assertions when our assumptions about tile pools fail. r=nical 2014-11-25 14:54:29 -05:00