Commit Graph

933 Commits

Author SHA1 Message Date
Nicholas Nethercote
165270a482 Bug 1207944 (part 5) - Use SetColor(const Color&) when setting from a constructed gfxRGBA. r=jwatt.
In various places SetColor() gets passed a gfxRBGA that is constructed at the
call site. This patch changes these to construct a gfx::Color directly,
avoiding the subsequent conversion.

--HG--
extra : rebase_source : e2882f4af319c9541891da34da4202baee5470b0
2015-09-23 23:42:58 -07:00
Lee Salzman
4fbc44de5a Bug 1205045 - remove GTK calls from compositor thread. r=jmuizelaar 2015-09-15 16:46:39 -04:00
Thinker K.F. Li
e1e17a72cb Bug 1097464 - Part 6: Handle preserves-3d by compositor. r=roc
Remove WrapPreserve3DList() and replaced it by creating a
nsDisplayTransform item for each transformed frame.

 - Add an additional item for each top frame extending 3D context to
   separate consequence contexts.

 - Effective transform of a layer is the accumulation of ancestors in
   the same 3D context.

 - The layers creating new context and extended by children need a
   temporary buffer if it's effective transform is not 2D.

 - Clip rects are accumulated along the context chain.

 - Visible rects of items are computed from dirty regions of the frame
   creating the context and accumulated transforms.

 - Bounds of items are computed from accumulated transforms and
   accumulated bounds of the descent frames.

 - Backface hidden is handled by compositor and BasicLayerManager.

--HG--
extra : rebase_source : 1a894b057a117a8520898c9f83308d92c122b180
2015-09-17 03:31:00 +02:00
Carsten "Tomcat" Book
f7534678df Backed out 6 changesets (bug 1097464) for causing OS X 10.10 Reftest Errors
Backed out changeset fbf63ce1ba88 (bug 1097464)
Backed out changeset fdaf4cfa6707 (bug 1097464)
Backed out changeset 727ebd9f744a (bug 1097464)
Backed out changeset 03f03a776042 (bug 1097464)
Backed out changeset 5ec6364b87d7 (bug 1097464)
Backed out changeset 47d056b3af7f (bug 1097464)

--HG--
extra : rebase_source : e2da133b489e4adba373303dad6e559826927e19
2015-09-17 16:24:43 +02:00
Jamie Nicol
a7a276263d 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
Thinker K.F. Li
76109f93c4 Bug 1097464 - Part 6 - Handle preserves-3d by compositor. r=roc
Remove WrapPreserve3DList() and replaced it by creating a
nsDisplayTransform item for each transformed frame.

 - Add an additional item for each top frame extending 3D context to
   separate consequence contexts.

 - Effective transform of a layer is the accumulation of ancestors in
   the same 3D context.

 - The layers creating new context and extended by children need a
   temporary buffer if it's effective transform is not 2D.

 - Clip rects are accumulated along the context chain.

 - Visible rects of items are computed from dirty regions of the frame
   creating the context and accumulated transforms.

 - Bounds of items are computed from accumulated transforms and
   accumulated bounds of the descent frames.

 - Backface hidden is handled by compositor and BasicLayerManager.
2015-09-17 03:31:00 +02:00
David Anderson
ea934017d9 Support all blend modes in the basic compositor. (bug 1203829 part 1, r=mattwoodrow) 2015-09-15 13:07:05 -07:00
Bas Schouten
c39f9055e3 Bug 1182147: Ensure ImageHost does not attempt to call DrawQuad with an effect unsupported by the compositor. r=nical 2015-09-04 18:31:52 +00:00
Kearwood (Kip) Gilbert
cbc7ba3ddb Bug 1157984 - Part 3: Correct bounding box transformations to support projections and correct clipping when transforming behind the camera,r=vlad
- Update callsites of Matrix4x4::TransformBounds to use
  Matrix4x4::TransformAndClipBounds.

--HG--
extra : rebase_source : a1aa889af56e404b7ca5c7125021171e67a0b8bf
2015-08-06 17:26:09 -07:00
Andrew Comminos
da02cdcfee Bug 788873 - Only rebind a GLXPixmap if the texture has changed. r=karlt 2015-08-26 23:46:33 -04:00
Bas Schouten
f99f040ff9 Bug 1190950: Check mappings and surfaces for UpdateFromSurface more robustly. r=mattwoodrow 2015-08-06 02:29:47 +00:00
Jamie Nicol
3e0de12cde 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
Benoit Girard
f8d5b33a49 Bug 1072313 - Check for more leaks in the layers code. r=mstange
--HG--
extra : commitid : EgwkF8ok3Nr
2015-07-29 11:57:03 -04:00
Lee Salzman
f15be30759 Bug 1188462 - Fix inclusion of skia headers to use correct directory prefixes. r=jrmuizel 2015-07-29 16:31:40 -04:00
Vladimir Vukicevic
a0b4b85e51 Bug 1179935, introduce complex viewport projections to Compositor, remove PrepareViewport; r=mstange
---
 gfx/layers/Compositor.h                          |  10 ---
 gfx/layers/basic/BasicCompositor.h               |   2 -
 gfx/layers/composite/TextureHost.h               |  34 +++++++-
 gfx/layers/d3d11/CompositorD3D11.cpp             |  47 +++++++---
 gfx/layers/d3d11/CompositorD3D11.h               |   4 +-
 gfx/layers/d3d9/CompositorD3D9.h                 |   2 +-
 gfx/layers/opengl/CompositingRenderTargetOGL.cpp |  23 +++--
 gfx/layers/opengl/CompositingRenderTargetOGL.h   |   2 +
 gfx/layers/opengl/CompositorOGL.cpp              | 104 +++++++++++++----------
 gfx/layers/opengl/CompositorOGL.h                |   6 +-
 10 files changed, 145 insertions(+), 89 deletions(-)
2015-05-19 13:51:26 -04:00
Bas Schouten
1a51d15b0f Bug 1176363 - Part 1: Stop using DrawTargets off the main thread. r=mattwoodrow 2015-07-27 15:47:29 +00:00
Ryan VanderMeulen
e107ea6a37 Backed out changeset adbd8a7608e4 (bug 1176363) for mochitest-gl permacrashes. 2015-07-27 13:54:56 -04:00
Bas Schouten
0bdd67bdd0 Bug 1176363 - Part 1: Stop using DrawTargets off the main thread. r=mattwoodrow 2015-07-27 15:47:29 +00:00
Kearwood (Kip) Gilbert
5b2ac66a0c Bug 1181240 - Part 3: Replace gfx3DMatrix with Matrix4x4 in gfx,r=vlad
- Refactored code to use Matrix4x4 instead of gfx3DMatrix.
- There is not expected to be any functional effect.
2015-07-10 17:06:35 -07:00
Jamie Nicol
5044fbd3c9 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
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
Nicolas Silva
1669cfdfef Bug 1180688 - Detect whether the widget will be able to present frames with BasicCompositor on Mac. r=mstange 2015-07-13 16:46:48 +02:00
Lee Salzman
dfce3fe4ef Bug 1170390 - Make gfxPlatform::CreateOffscreenSurface use explicit format rather than guess. r=jrmuizel 2015-07-06 21:21:47 -04:00
Robert O'Callahan
478bb5668d Bug 1143575. Reimplement ImageContainer::GetPaintCount to be composition-aware. r=nical
--HG--
extra : commitid : EmOEK6v27UF
extra : rebase_source : 671c06aa942ad87716ab9a998dd55103b1270b66
2015-06-15 14:45:59 +12:00
Robert O'Callahan
15642eb711 Bug 1143575. Replace ImageContainer Lock methods with simplified AutoLockImage. r=nical
--HG--
extra : commitid : B1BZNvKIQFf
extra : rebase_source : 927c9aa549a863aeba97c0e5a4cb6cf87194669a
2015-03-27 12:07:53 +13:00
David Anderson
c4f735d0c5 Bug 1148582 - Apply async transforms to (ancestor) mask layers correctly. r=botond
--HG--
extra : rebase_source : e44f7dbe49b343532b99704893dca879f1a69b4a
extra : source : 6234e37d912a054e8c07259c4dca19ce4c062055
2015-06-30 21:07:09 -04:00
Markus Stange
f1b62506d9 Back out bug 1148582 for static analysis bustage. 2015-07-01 01:20:59 -04:00
David Anderson
eae17dff97 Bug 1148582 - Apply async transforms to (ancestor) mask layers correctly. r=botond 2015-06-30 21:07:09 -04:00
Nathan Froyd
974d8120f2 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 Gilbert
ee12c03986 Bug 1144906 - Add accel E10S backend for WebGL compositing. - r=jrmuizel,mattwoodrow,nical,sotaro 2015-06-04 17:15:38 -07:00
Wes Kocher
77bc735a23 Backed out changeset c4d1692d88ee (bug 1144906) for OSX m(gl) permaorange 2015-06-04 16:50:59 -07:00
Jeff Gilbert
891a5c7f86 Bug 1144906 - Add accel E10S backend for WebGL compositing. - r=jrmuizel,mattwoodrow,nical,sotaro 2015-06-04 14:21:32 -07:00
Kearwood (Kip) Gilbert
e25ede39ea Bug 766345 - Part 1 - Implement DEAA Antialiasing for transformed layers (v5 Patch). r=vladimir, r=djg 2014-12-17 16:28:45 -08:00
Amanda Sambath
e5ab8210f6 Bug 1158120 - Edit include and comments that contained gfxIntSize and nsIntSize. r=nical 2015-05-29 17:01:46 +02:00
Amanda Sambath
7cade29011 Bug 1158120 - Replace gfxIntSize by mozilla::gfx::IntSize in gfx/layers. r=nical 2015-05-28 11:59:15 +02:00
Wes Kocher
5ee1a8327e Backed out changeset 29bd04fc57f0 (bug 1144906) for b2g m12 orange
--HG--
extra : amend_source : 79faafb4230715cf6af79b452d121d1e7b58e665
2015-05-28 17:08:53 -07:00
Jeff Gilbert
ec631286de Bug 1144906 - Fast WebGL compositing on E10S. - r=jrmuizel,mattwoodrow,nical 2015-05-28 14:51:39 -07:00
Amanda Sambath
da798ca904 Bug 1157669 - Assert aGroupTarget is not null in PaintSelfOrChildren method. r=nical 2015-05-20 10:47:29 +02:00
Nathan Froyd
db188ea282 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
Nathan Froyd
c24f5f4e7c Bug 1116905 - part 3 - remove dependence on implicit conversion from T* to TemporaryRef<T>, gfx changes; r=jrmuizel 2015-04-30 15:20:30 -04:00
Lee Salzman
e38cad0b37 Bug 1127752 - fixes for using Skia and OMTC with GTK3. r=jrmuizel 2015-05-13 11:54:17 +09:00
Thibaud Backenstrass
5e604392a5 Bug 1158122 - Remove some occurences of nsIntRect in gfx/layers/. r=nical 2015-05-07 11:07:35 +02:00
Phil Ringnalda
24bb7f3b9f Back out dc2fed1aa0af (bug 1144906) for ASan, Android debug, and OS X 10.10 mochitest-gl bustage
CLOSED TREE
2015-05-06 19:55:40 -07:00
Jeff Gilbert
b0077b976e Bug 1144906 - Fast WebGL on E10S. - r=mattwoodrow,nical 2015-05-06 16:35:29 -07:00
Wes Kocher
b6f7abf05b Backed out changeset 93af6e2a390d (bug 1144906) for build bustage 2015-05-06 16:01:47 -07:00
Jeff Gilbert
587246e6fd Bug 1144906 - Support fast WebGL on E10S. - r=mattwoodrow,nical 2015-05-06 13:48:28 -07:00
Ryan VanderMeulen
37e75ba5e6 Backed out changesets 230adc57e016 and 61bd6e2c6e72 (bug 1072898) for reftest failures.
CLOSED TREE
2015-05-06 11:27:32 -04:00
Kearwood (Kip) Gilbert
6db1d2f93f Bug 1072898: Part 1 - Correct rendering of layers that are both in front and behind the w=0 plane. r=mattwoodrow
- The BasicCompositor now transforms vertices prior to rendering in Skia, using
  a function that clips against frustum clipping planes in homogenous
  coordinate space.
2015-04-21 16:57:18 -07:00
dc9ccc6c1d Bug 1151749 - "Win-Only: Disabled Hardware Acceleration + CSS 3D transform on canvas -> black artefacts on hover". r=nical
--HG--
extra : rebase_source : dd951364914eb22de13bfbe4b45e5b974528c705
2015-04-07 06:33:00 +02:00
Steve Singer
4a748bd766 Bug 1141642 - Fix disable-skia builds. r=jmuizelaar
--HG--
extra : rebase_source : 6c6e1664973547b6131a5f5410bb0eec9afd750d
2015-04-18 19:44:00 +02:00