[Webkit-unassigned] [Bug 62003] New: [GTK] svg/custom/embedding-external-svgs.xhtml render different zero values in 32-bit and 64-bit
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Jun 3 03:03:31 PDT 2011
https://bugs.webkit.org/show_bug.cgi?id=62003
Summary: [GTK] svg/custom/embedding-external-svgs.xhtml render
different zero values in 32-bit and 64-bit
Product: WebKit
Version: 528+ (Nightly build)
Platform: Unspecified
OS/Version: Linux
Status: NEW
Keywords: Gtk
Severity: Normal
Priority: P2
Component: Tools / Tests
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: msanchez at igalia.com
CC: mrobinson at webkit.org
This test has been consistently failing in GTK 32-bit bots but not on the 64-bit ones, lately.
The problem is that the output is slightly different in the first case compared to the second, in that zero values in the translation part of the affine transformation are rendered as "0.00" in the 32-bit bots, while rendered as "-0.00" in the 64-bit bot.
The reason why the 64-bit is succeeding is simply because the expected results were generated in a 64 bit environment, but it could be the other way around if generated in a 32-bit one. Anyway that's not the issue, obviously, but a problem in how signed zero values are being represented.
Don't know for sure whether this could be the place where the problem is originated, but in Source/WebCore/platform/graphics/transforms/AffineTransform.cpp, we have this:
AffineTransform AffineTransform::inverse() const
{
double determinant = det();
if (determinant == 0.0)
return AffineTransform();
AffineTransform result;
if (isIdentityOrTranslation()) {
result.m_transform[4] = -m_transform[4];
result.m_transform[5] = -m_transform[5];
return result;
}
[...]
return result;
}
It could be that checking for zero values in m_transform[4] and m_transform[5] before inverting (and do nothing if that's the case) helped to workaround the issue, couldn't try yet. Anyway, that wouldn't be probably the right solution, just mentioning in case it rang any bell to someone with more knowledge than me on this matter.
Skipping in GTK by now, here you have the failing diff in the 32-bit bots at the moment:
--- /home/slave/webkitgtk/gtk-linux-32-debug/build/layout-test-results/svg/custom/embedding-external-svgs-expected.txt 2011-06-03 01:39:54.211740803 -0700
+++ /home/slave/webkitgtk/gtk-linux-32-debug/build/layout-test-results/svg/custom/embedding-external-svgs-actual.txt 2011-06-03 01:39:54.211740803 -0700
@@ -24,7 +24,7 @@
RenderSVGContainer {g} at (25,7) size 15x12
RenderSVGViewportContainer {svg} at (25,7) size 15x12
RenderSVGPath {polygon} at (25,7) size 15x12 [fill={[type=SOLID] [color=#000000] [opacity=0.12]}] [points="22 0 28 0 23 15 23 15"]
- RenderSVGContainer {use} at (28,17) size 12x6 [transform={m=((0.00,1.00)(-1.00,0.00)) t=(50.00,0.00)}]
+ RenderSVGContainer {use} at (28,17) size 12x6 [transform={m=((0.00,1.00)(-1.00,0.00)) t=(50.00,-0.00)}]
RenderSVGContainer {g} at (28,17) size 12x6
RenderSVGViewportContainer {svg} at (28,17) size 12x6
RenderSVGPath {polygon} at (28,17) size 12x6 [fill={[type=SOLID] [color=#000000] [opacity=0.16]}] [points="22 0 28 0 23 15 23 15"]
@@ -88,7 +88,7 @@
RenderSVGContainer {g} at (25,7) size 15x12
RenderSVGViewportContainer {svg} at (25,7) size 15x12
RenderSVGPath {polygon} at (25,7) size 15x12 [fill={[type=SOLID] [color=#000000] [opacity=0.12]}] [points="22 0 28 0 23 15 23 15"]
- RenderSVGContainer {use} at (28,17) size 12x6 [transform={m=((0.00,1.00)(-1.00,0.00)) t=(50.00,0.00)}]
+ RenderSVGContainer {use} at (28,17) size 12x6 [transform={m=((0.00,1.00)(-1.00,0.00)) t=(50.00,-0.00)}]
RenderSVGContainer {g} at (28,17) size 12x6
RenderSVGViewportContainer {svg} at (28,17) size 12x6
RenderSVGPath {polygon} at (28,17) size 12x6 [fill={[type=SOLID] [color=#000000] [opacity=0.16]}] [points="22 0 28 0 23 15 23 15"]
@@ -132,7 +132,7 @@
RenderSVGPath {svg:polygon} at (103,279) size 4x8 [fill={[type=SOLID] [color=#000000] [opacity=0.04]}] [points="22 0 28 0 27 12 23 12"]
RenderSVGPath {svg:polygon} at (106,279) size 9x10 [transform={m=((0.87,0.50)(-0.50,0.87)) t=(15.85,-9.15)}] [fill={[type=SOLID] [color=#000000] [opacity=0.08]}] [points="22 0 28 0 27 12 23 12"]
RenderSVGPath {svg:polygon} at (110,284) size 10x9 [transform={m=((0.50,0.87)(-0.87,0.50)) t=(34.15,-9.15)}] [fill={[type=SOLID] [color=#000000] [opacity=0.12]}] [points="22 0 28 0 27 12 23 12"]
- RenderSVGPath {svg:polygon} at (112,292) size 8x4 [transform={m=((0.00,1.00)(-1.00,0.00)) t=(50.00,0.00)}] [fill={[type=SOLID] [color=#000000] [opacity=0.16]}] [points="22 0 28 0 27 12 23 12"]
+ RenderSVGPath {svg:polygon} at (112,292) size 8x4 [transform={m=((0.00,1.00)(-1.00,0.00)) t=(50.00,-0.00)}] [fill={[type=SOLID] [color=#000000] [opacity=0.16]}] [points="22 0 28 0 27 12 23 12"]
RenderSVGPath {svg:polygon} at (110,295) size 10x9 [transform={m=((-0.50,0.87)(-0.87,-0.50)) t=(59.15,15.85)}] [fill={[type=SOLID] [color=#000000] [opacity=0.20]}] [points="22 0 28 0 27 12 23 12"]
RenderSVGPath {svg:polygon} at (106,299) size 9x10 [transform={m=((-0.87,0.50)(-0.50,-0.87)) t=(59.15,34.15)}] [fill={[type=SOLID] [color=#000000] [opacity=0.24]}] [points="22 0 28 0 27 12 23 12"]
RenderSVGPath {svg:polygon} at (103,301) size 4x8 [transform={m=((-1.00,0.00)(-0.00,-1.00)) t=(50.00,50.00)}] [fill={[type=SOLID] [color=#000000] [opacity=0.29]}] [points="22 0 28 0 27 12 23 12"]
http://build.webkit.org/results/GTK%20Linux%2032-bit%20Debug/r87992%20%2815679%29/svg/custom/embedding-external-svgs-diffs.txt
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list