[Webkit-unassigned] [Bug 122589] New: Graphics backend without hardware accelerated compositing, and compositing disabled by Setting, causes CSS3 Transform not correct
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Oct 9 23:11:43 PDT 2013
https://bugs.webkit.org/show_bug.cgi?id=122589
Summary: Graphics backend without hardware accelerated
compositing, and compositing disabled by Setting,
causes CSS3 Transform not correct
Product: WebKit
Version: 528+ (Nightly build)
Platform: Unspecified
OS/Version: Unspecified
Status: UNCONFIRMED
Severity: Normal
Priority: P2
Component: CSS
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: chenzx at cn.fujitsu.com
Created an attachment (id=213855)
--> (https://bugs.webkit.org/attachment.cgi?id=213855&action=review)
Test case, displayed wrong when compositing disabled in Setting
Our org. has 2 internal WebKit based customization projects,
One is using WinCE port with Google V8 and Skia (2012/8 edition), the other is using Qt port with Qt-4.8 xlibgl backend(compositing disbaled),
The 2 have both the same error:
With the following CSS3 transform test case, the display result is wrong, compared to Firefox 24 and Chrome 30.
#imgElement{
-webkit-transform: perspective(300px) rotateX(60deg);
opacity: 1.0;
}
The above CSS3 transform rule should make the image's above part shorter and tilt toward the middle, but in fact they are displayed as if screwed to right.
I doesn't know why and tried to figure out the evil.
I've located to function "makeMatrixRenderable" which is at our WebKit edtion is in RenderObject.h, but now moved to RenderLayer.cpp
inline void makeMatrixRenderable(TransformationMatrix& matrix, bool has3DRendering)
{
#if !ENABLE(3D_RENDERING)
UNUSED_PARAM(has3DRendering);
1> matrix.makeAffine(); //(1)
#else
if (!has3DRendering)
2> matrix.makeAffine(); //(2)
#endif
}
If compositing is disabled, the paramter has3DRendering is false. Normally has3DRendering is true, though the graphics backend may not support accelerated compositing.
Our WinCE port running will match the (1) line positin, and our Qt-4.8 xlibgl port running will match the (2) line position. Both changes the matrix data.
I've commented the matrix.makeAffine(); to test, which is still wrong. So there MUST be a in-consistence somewhere else.
Can anyone kindly help with this problem? 3x!
--
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