Diff
Modified: trunk/LayoutTests/ChangeLog (90886 => 90887)
--- trunk/LayoutTests/ChangeLog 2011-07-13 05:12:57 UTC (rev 90886)
+++ trunk/LayoutTests/ChangeLog 2011-07-13 05:35:15 UTC (rev 90887)
@@ -1,3 +1,14 @@
+2011-07-12 David Reveman <reve...@chromium.org>
+
+ [Chromium] Use nearest filter method with pixel aligned transforms.
+ https://bugs.webkit.org/show_bug.cgi?id=64338
+
+ Reviewed by James Robinson.
+
+ Update expected results.
+
+ * platform/chromium/test_expectations.txt:
+
2011-07-12 Filip Pizlo <fpi...@apple.com>
DFG JIT does not implement op_construct.
Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (90886 => 90887)
--- trunk/LayoutTests/platform/chromium/test_expectations.txt 2011-07-13 05:12:57 UTC (rev 90886)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt 2011-07-13 05:35:15 UTC (rev 90887)
@@ -2895,12 +2895,11 @@
BUGCR75019 WIN LINUX MAC :fast/text/hyphenate-limit-before-after.html = IMAGE+TEXT
// Chromium GPU draws scrollbars slightly differently in debug vs. release.
-// Commented because of BUGWK61388
-//BUGWK58587 DEBUG GPU LINUX : compositing/direct-image-compositing.html = IMAGE
-//BUGWK58587 DEBUG GPU LINUX : compositing/geometry/horizontal-scroll-composited.html = IMAGE
-//BUGWK58587 DEBUG GPU LINUX : compositing/geometry/tall-page-composited.html = IMAGE
-//BUGWK58587 DEBUG GPU LINUX : compositing/geometry/video-fixed-scrolling.html = IMAGE
-//BUGWK58587 DEBUG GPU LINUX : media/video-zoom.html = IMAGE
+BUGWK58587 DEBUG GPU LINUX : compositing/direct-image-compositing.html = IMAGE
+BUGWK58587 DEBUG GPU LINUX : compositing/geometry/horizontal-scroll-composited.html = IMAGE
+BUGWK58587 DEBUG GPU LINUX : compositing/geometry/tall-page-composited.html = IMAGE
+BUGWK58587 DEBUG GPU LINUX : compositing/geometry/video-fixed-scrolling.html = IMAGE
+BUGWK58587 DEBUG GPU LINUX : media/video-zoom.html = IMAGE
// WebKit roll 80564:80631: rendering on Leopard is shifted to the top right
// started at some point at or after WK r80582 (Dave Hyatt's vertical text change - a very likely candidate)
@@ -3224,8 +3223,7 @@
BUGCR79111 GPU : compositing/framesets/composited-frame-alignment.html = IMAGE
BUGWK58308 GPU WIN LINUX DEBUG : compositing/z-order/negative-z-index.html = PASS CRASH
-// Commented because of BUGWK61388
-//BUGWK58328 GPU WIN MAC LINUX DEBUG : compositing/webgl/webgl-reflection.html = IMAGE PASS CRASH
+BUGWK58328 GPU WIN MAC LINUX DEBUG : compositing/webgl/webgl-reflection.html = IMAGE PASS CRASH
BUGCR79173 GPU LINUX DEBUG : fast/canvas/access-zero-sized-canvas.html = PASS CRASH
@@ -3383,11 +3381,9 @@
BUGWK60096 DEBUG : fast/css/last-child-pseudo-class.html = TEXT PASS
BUGWK60097 DEBUG : fast/dom/HTMLLinkElement/link-and-subresource-test.html = TEXT PASS
-// Commented because of BUGWK61388
-//BUGWK60102 LINUX DEBUG GPU : compositing/geometry/fixed-in-composited.html = IMAGE
+BUGWK60102 LINUX DEBUG GPU : compositing/geometry/fixed-in-composited.html = IMAGE
BUGWK60102 LINUX GPU : compositing/masks/masked-ancestor.html = IMAGE
-// Commented because of BUGWK61388
-//BUGWK60102 LINUX DEBUG GPU : compositing/masks/simple-composited-mask.html = IMAGE
+BUGWK60102 LINUX DEBUG GPU : compositing/masks/simple-composited-mask.html = IMAGE
// Looks like some uninitialized memory at the bottom.
BUGWK60103 : fast/replaced/border-radius-clip.html = IMAGE TIMEOUT IMAGE+TEXT
@@ -3849,8 +3845,7 @@
BUGWK63902 MAC WIN : svg/animations/svgtransform-animation-1.html = TEXT
// Started failing at WebKit r90259-90261.
-// Commented because of BUGWK61388
-//BUGCR88400 GPU : compositing/geometry/vertical-scroll-composited.html = IMAGE
+BUGCR88400 GPU : compositing/geometry/vertical-scroll-composited.html = IMAGE
// Started around WebKit r90233:r90242
BUGWK64000 SNOWLEOPARD DEBUG : fast/events/click-focus-anchor.html = PASS TEXT
@@ -3884,51 +3879,19 @@
BUGCR88594 WIN7 : http/tests/appcache/fallback.html = TIMEOUT
BUGWK61388 GPU : compositing/color-matching/image-color-matching.html = IMAGE
-BUGWK61388 WIN LINUX GPU : compositing/direct-image-compositing.html = IMAGE
-BUGWK61388 GPU : compositing/geometry/fixed-in-composited.html = IMAGE
BUGWK61388 GPU : compositing/geometry/fixed-position.html = IMAGE
-BUGWK61388 GPU : compositing/geometry/horizontal-scroll-composited.html = IMAGE
BUGWK61388 GPU : compositing/geometry/layer-due-to-layer-children-deep.html = IMAGE
BUGWK61388 GPU : compositing/geometry/layer-due-to-layer-children.html = IMAGE
-BUGWK61388 WIN LINUX GPU : compositing/geometry/tall-page-composited.html = IMAGE
-BUGWK61388 GPU : compositing/geometry/video-fixed-scrolling.html = IMAGE
-BUGWK61388 GPU : compositing/geometry/vertical-scroll-composited.html = IMAGE
-BUGWK61388 GPU : compositing/geometry/video-opacity-overlay.html = IMAGE
-BUGWK61388 GPU : compositing/iframes/nested-iframe-scrolling.html = IMAGE
-BUGWK61388 GPU : compositing/masks/direct-image-mask.html = IMAGE
-BUGWK61388 GPU : compositing/masks/simple-composited-mask.html = IMAGE
BUGWK61388 GPU : compositing/overflow/fixed-position-ancestor-clip.html = IMAGE
-BUGWK61388 GPU : compositing/reflections/deeply-nested-reflections.html = IMAGE
-BUGWK61388 GPU : compositing/reflections/nested-reflection-on-overflow.html = IMAGE
-BUGWK61388 GPU : compositing/reflections/nested-reflection-transformed.html = IMAGE
-BUGWK61388 GPU : compositing/reflections/nested-reflection-transformed2.html = IMAGE
BUGWK61388 GPU : compositing/reflections/nested-reflection-transition.html = IMAGE
-BUGWK61388 GPU : compositing/reflections/reflection-in-composited.html = IMAGE
-BUGWK61388 GPU : compositing/reflections/reflection-on-composited.html = IMAGE
-BUGWK61388 GPU : compositing/reflections/reflection-ordering.html = IMAGE
-BUGWK61388 GPU : compositing/reflections/reflection-positioning.html = IMAGE
-BUGWK61388 GPU : compositing/reflections/reflection-positioning2.html = IMAGE
-BUGWK61388 GPU : compositing/reflections/simple-composited-reflections.html = IMAGE
BUGWK61388 GPU : compositing/reflections/transform-inside-reflection.html = IMAGE
-BUGWK61388 GPU : compositing/rtl/rtl-iframe-absolute-overflow.html = IMAGE
-BUGWK61388 GPU : compositing/rtl/rtl-iframe-fixed-overflow.html = IMAGE
BUGWK61388 GPU : compositing/shadows/shadow-drawing.html = IMAGE
-BUGWK61388 GPU : compositing/text-on-large-layer.html = IMAGE
BUGWK61388 GPU : compositing/transitions/scale-transition-no-start.html = IMAGE
-BUGWK61388 GPU : compositing/webgl/webgl-reflection.html = IMAGE
-BUGWK61388 GPU : platform/chromium/compositing/huge-layer-rotated.html = IMAGE
BUGWK61388 GPU : platform/chromium/compositing/backface-visibility-transformed.html = IMAGE
-BUGWK61388 WIN LINUX GPU : media/video-zoom.html = IMAGE
-BUGWK61388 GPU : media/video-zoom-controls.html = IMAGE
+BUGWK61388 GPU : platform/chromium/compositing/huge-layer-rotated.html = IMAGE
BUGWK61388 GPU : media/video-transformed.html = IMAGE
-BUGWK61388 GPU : media/video-layer-crash.html = IMAGE
-BUGWK61388 WIN GPU : compositing/iframes/composited-iframe-alignment.html = IMAGE
-BUGWK61388 WIN MAC GPU : compositing/masks/masked-ancestor.html = IMAGE
-BUGWK61388 WIN GPU : media/video-controls-rendering.html = IMAGE
-BUGWK61388 WIN MAC GPU : platform/chromium/compositing/layout-width-change.html = IMAGE
+BUGWK61388 GPU : media/video-zoom-controls.html = IMAGE
BUGWK61388 WIN MAC GPU : platform/chromium/compositing/tiny-layer-rotated.html = IMAGE
-BUGWK61388 MAC GPU : compositing/masks/multiple-masks.html = IMAGE
-BUGWK61388 MAC GPU : platform/chromium/compositing/perpendicular-layer-sorting.html = IMAGE
// Getting form value is not implemented yet.
BUGWK13061 : plugins/form-value.html = TEXT
Modified: trunk/Source/WebCore/ChangeLog (90886 => 90887)
--- trunk/Source/WebCore/ChangeLog 2011-07-13 05:12:57 UTC (rev 90886)
+++ trunk/Source/WebCore/ChangeLog 2011-07-13 05:35:15 UTC (rev 90887)
@@ -1,5 +1,23 @@
2011-07-12 David Reveman <reve...@chromium.org>
+ [Chromium] Use nearest filter method with pixel aligned transforms.
+ https://bugs.webkit.org/show_bug.cgi?id=64338
+
+ Reviewed by James Robinson.
+
+ Check for integer translation and use nearest texture filter when
+ possible to avoid filter precisions problems at the layer edges.
+
+ Test: compositing/iframes/nested-iframe-scrolling.html (existing)
+
+ * platform/graphics/chromium/LayerTilerChromium.cpp:
+ (WebCore::LayerTilerChromium::drawTiles):
+ * platform/graphics/transforms/TransformationMatrix.cpp:
+ (WebCore::TransformationMatrix::isIntegerTranslation):
+ * platform/graphics/transforms/TransformationMatrix.h:
+
+2011-07-12 David Reveman <reve...@chromium.org>
+
Removed unnecessary function parameters from TilingData::textureOffset.
https://bugs.webkit.org/show_bug.cgi?id=64245
Modified: trunk/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp (90886 => 90887)
--- trunk/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp 2011-07-13 05:12:57 UTC (rev 90886)
+++ trunk/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp 2011-07-13 05:35:15 UTC (rev 90887)
@@ -500,6 +500,8 @@
topEdge.move(0, 0, zDistance);
bottomEdge.move(0, 0, zDistance);
+ GC3Dint filter = (m_tilingData.borderTexels() && !matrix.isIntegerTranslation()) ? GraphicsContext3D::LINEAR : GraphicsContext3D::NEAREST;
+
Edge prevEdgeY = topEdge;
int left, top, right, bottom;
@@ -531,6 +533,8 @@
ASSERT(tile->texture()->isReserved());
tile->texture()->bindTexture();
+ GLC(context, context->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_MIN_FILTER, filter));
+ GLC(context, context->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_MAG_FILTER, filter));
// Don't use tileContentRect here, as that contains the full
// rect with border texels which shouldn't be drawn.
Modified: trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp (90886 => 90887)
--- trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp 2011-07-13 05:12:57 UTC (rev 90886)
+++ trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp 2011-07-13 05:35:15 UTC (rev 90887)
@@ -1126,4 +1126,20 @@
scale3d((float) decomp.scaleX, (float) decomp.scaleY, (float) decomp.scaleZ);
}
+bool TransformationMatrix::isIntegerTranslation() const
+{
+ if (!isIdentityOrTranslation())
+ return false;
+
+ // Check for translate Z.
+ if (m_matrix[3][2])
+ return false;
+
+ // Check for non-integer translate X/Y.
+ if (static_cast<int>(m_matrix[3][0]) != m_matrix[3][0] || static_cast<int>(m_matrix[3][1]) != m_matrix[3][1])
+ return false;
+
+ return true;
}
+
+}
Modified: trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.h (90886 => 90887)
--- trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.h 2011-07-13 05:12:57 UTC (rev 90886)
+++ trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.h 2011-07-13 05:35:15 UTC (rev 90887)
@@ -339,6 +339,8 @@
&& m_matrix[3][3] == 1;
}
+ bool isIntegerTranslation() const;
+
private:
// multiply passed 2D point by matrix (assume z=0)
void multVecMatrix(double x, double y, double& dstX, double& dstY) const;