Title: [121306] trunk/Source/WebCore
- Revision
- 121306
- Author
- [email protected]
- Date
- 2012-06-26 18:31:22 -0700 (Tue, 26 Jun 2012)
Log Message
Optimize mappings of simple transforms in RenderGeometryMap
https://bugs.webkit.org/show_bug.cgi?id=90034
Reviewed by Dean Jackson.
For transforms that are identity or simple translations, don't
fall off the fast path in RenderGeometryMap; we can just
treat them as offsets.
Improves performance on pages with lots of translateZ(0) elements.
Remove RenderGeometryMapStep::mapPoint() and mapQuad(), which
were unused.
No new tests; optimization only, and tested by assertions.
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::push):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (121305 => 121306)
--- trunk/Source/WebCore/ChangeLog 2012-06-27 00:41:28 UTC (rev 121305)
+++ trunk/Source/WebCore/ChangeLog 2012-06-27 01:31:22 UTC (rev 121306)
@@ -1,3 +1,24 @@
+2012-06-26 Simon Fraser <[email protected]>
+
+ Optimize mappings of simple transforms in RenderGeometryMap
+ https://bugs.webkit.org/show_bug.cgi?id=90034
+
+ Reviewed by Dean Jackson.
+
+ For transforms that are identity or simple translations, don't
+ fall off the fast path in RenderGeometryMap; we can just
+ treat them as offsets.
+
+ Improves performance on pages with lots of translateZ(0) elements.
+
+ Remove RenderGeometryMapStep::mapPoint() and mapQuad(), which
+ were unused.
+
+ No new tests; optimization only, and tested by assertions.
+
+ * rendering/RenderGeometryMap.cpp:
+ (WebCore::RenderGeometryMap::push):
+
2012-06-26 Kevin Ellis <[email protected]>
Touch adjustment does not target shadow DOM elements
Modified: trunk/Source/WebCore/rendering/RenderGeometryMap.cpp (121305 => 121306)
--- trunk/Source/WebCore/rendering/RenderGeometryMap.cpp 2012-06-27 00:41:28 UTC (rev 121305)
+++ trunk/Source/WebCore/rendering/RenderGeometryMap.cpp 2012-06-27 01:31:22 UTC (rev 121306)
@@ -46,25 +46,6 @@
{
}
- FloatPoint mapPoint(const FloatPoint& p) const
- {
- if (!m_transform)
- return p + m_offset;
-
- return m_transform->mapPoint(p);
- }
-
- FloatQuad mapQuad(const FloatQuad& quad) const
- {
- if (!m_transform) {
- FloatQuad q = quad;
- q.move(m_offset);
- return q;
- }
-
- return m_transform->mapQuad(quad);
- }
-
const RenderObject* m_renderer;
LayoutSize m_offset;
OwnPtr<TransformationMatrix> m_transform; // Includes offset if non-null.
@@ -216,8 +197,11 @@
ASSERT(m_insertionPosition != notFound);
OwnPtr<RenderGeometryMapStep> step = adoptPtr(new RenderGeometryMapStep(renderer, accumulatingTransform, isNonUniform, isFixedPosition, hasTransform));
- step->m_transform = adoptPtr(new TransformationMatrix(t));
-
+ if (!t.isIntegerTranslation())
+ step->m_transform = adoptPtr(new TransformationMatrix(t));
+ else
+ step->m_offset = LayoutSize(t.e(), t.f());
+
stepInserted(*step.get());
m_mapping.insert(m_insertionPosition, step.release());
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes