Title: [111196] trunk/Source/WebKit/chromium
Revision
111196
Author
[email protected]
Date
2012-03-19 09:53:25 -0700 (Mon, 19 Mar 2012)

Log Message

[chromium] Unit test fix, save the sharedQuadState while the quads hold a pointer to it
https://bugs.webkit.org/show_bug.cgi?id=81476

Patch by Dana Jansens <[email protected]> on 2012-03-19
Reviewed by Adrienne Walker.

* tests/CCQuadCullerTest.cpp:
(WebCore::appendQuads):
(WebCore):
(WebCore::TEST):

Modified Paths

Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (111195 => 111196)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-03-19 16:48:35 UTC (rev 111195)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-03-19 16:53:25 UTC (rev 111196)
@@ -1,3 +1,15 @@
+2012-03-19  Dana Jansens  <[email protected]>
+
+        [chromium] Unit test fix, save the sharedQuadState while the quads hold a pointer to it
+        https://bugs.webkit.org/show_bug.cgi?id=81476
+
+        Reviewed by Adrienne Walker.
+
+        * tests/CCQuadCullerTest.cpp:
+        (WebCore::appendQuads):
+        (WebCore):
+        (WebCore::TEST):
+
 2012-03-19  Sheriff Bot  <[email protected]>
 
         Unreviewed.  Rolled DEPS.

Modified: trunk/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp (111195 => 111196)


--- trunk/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp	2012-03-19 16:48:35 UTC (rev 111195)
+++ trunk/Source/WebKit/chromium/tests/CCQuadCullerTest.cpp	2012-03-19 16:53:25 UTC (rev 111196)
@@ -78,16 +78,18 @@
     return layer.release();
 }
 
-static void appendQuads(CCQuadList& quadList, CCTiledLayerImpl* layer, CCOcclusionTrackerImpl& occlusionTracker)
+static void appendQuads(CCQuadList& quadList, Vector<OwnPtr<CCSharedQuadState> >& sharedStateList, CCTiledLayerImpl* layer, CCOcclusionTrackerImpl& occlusionTracker)
 {
     CCQuadCuller quadCuller(quadList, layer, &occlusionTracker);
     OwnPtr<CCSharedQuadState> sharedQuadState = layer->createSharedQuadState();
     layer->appendQuads(quadCuller, sharedQuadState.get());
+    sharedStateList.append(sharedQuadState.release());
 }
 
 #define DECLARE_AND_INITIALIZE_TEST_QUADS               \
     DebugScopedSetImplThread impl;                      \
     CCQuadList quadList;                                \
+    Vector<OwnPtr<CCSharedQuadState> > sharedStateList; \
     TransformationMatrix childTransform;                \
     IntSize rootSize = IntSize(300, 300);               \
     IntRect rootRect = IntRect(IntPoint(), rootSize);   \
@@ -102,8 +104,8 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 13u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 130000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -118,9 +120,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 9u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -135,9 +137,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 0.9, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 13u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 40000, 1);
@@ -152,9 +154,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, false, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 13u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 40000, 1);
@@ -171,9 +173,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 12u);
 
     IntRect quadVisibleRect1 = quadList[5].get()->quadVisibleRect();
@@ -214,9 +216,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 2u);
 
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 20363, 1);
@@ -242,9 +244,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 2u);
 
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 19643, 1);
@@ -262,9 +264,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 9u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -282,9 +284,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, false, childOpaqueRect);
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 12u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 30000, 1);
@@ -302,9 +304,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, false, childOpaqueRect);
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 12u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 25000, 1);
@@ -322,9 +324,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, false, childOpaqueRect);
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 13u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 90000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 30000, 1);
@@ -342,9 +344,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(childTransform, childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 13u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 130000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -368,9 +370,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(-100, -100, 1000, 1000));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 12u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 100600, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -385,9 +387,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(200, 100, 100, 100));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 1u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 10000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -402,9 +404,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(100, 100, 100, 100));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 1u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 10000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -419,9 +421,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(50, 50, 200, 200));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 9u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 40000, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
@@ -436,9 +438,9 @@
     OwnPtr<CCTiledLayerImpl> childLayer = makeLayer(TransformationMatrix(), childRect, 1.0, true, IntRect());
     TestCCOcclusionTrackerImpl occlusionTracker(IntRect(500, 500, 100, 100));
 
-    appendQuads(quadList, childLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, childLayer.get(), occlusionTracker);
     occlusionTracker.markOccludedBehindLayer(childLayer.get());
-    appendQuads(quadList, rootLayer.get(), occlusionTracker);
+    appendQuads(quadList, sharedStateList, rootLayer.get(), occlusionTracker);
     EXPECT_EQ(quadList.size(), 0u);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnOpaque(), 0, 1);
     EXPECT_NEAR(occlusionTracker.overdrawMetrics().pixelsDrawnTranslucent(), 0, 1);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to