Miscalculated transform origin produces off by one rendering errors for transforms like rotate.
This patch requires to be able to test hidpi compositing layers. bug 129961
Created attachment 226244 [details] Patch
Comment on attachment 226244 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=226244&action=review > Source/WebCore/rendering/RenderLayerBacking.cpp:845 > + LayoutRect layerBounds(LayoutPoint(roundedForPainting(offsetFromParent, deviceScaleFactor)), borderBox.size()); It's a bit odd that the origin is device-pixel snapped, but the size is not. Does this work for large boxes where a percentage transform-origin could be visibly affected by the exact size?
(In reply to comment #3) > (From update of attachment 226244 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=226244&action=review > > > Source/WebCore/rendering/RenderLayerBacking.cpp:845 > > + LayoutRect layerBounds(LayoutPoint(roundedForPainting(offsetFromParent, deviceScaleFactor)), borderBox.size()); > > It's a bit odd that the origin is device-pixel snapped, but the size is not. Does this work for large boxes where a percentage transform-origin could be visibly affected by the exact size? Good catch. It is most likely incorrect.
Created attachment 226262 [details] Patch
Comment on attachment 226262 [details] Patch EWSing
Comment on attachment 226262 [details] Patch Attachment 226262 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/6043000496979968 New failing tests: compositing/columns/composited-columns.html compositing/repaint/resize-repaint.html compositing/visibility/visibility-image-layers-dynamic.html compositing/repaint/invalidations-on-composited-layers.html compositing/geometry/limit-layer-bounds-opacity-transition.html
Created attachment 226263 [details] Archive of layout-test-results from webkit-ews-10 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-10 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Comment on attachment 226262 [details] Patch Attachment 226262 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/4645108901216256 New failing tests: compositing/columns/composited-columns.html compositing/repaint/resize-repaint.html compositing/visibility/visibility-image-layers-dynamic.html compositing/repaint/invalidations-on-composited-layers.html compositing/geometry/limit-layer-bounds-opacity-transition.html
Created attachment 226264 [details] Archive of layout-test-results from webkit-ews-03 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-03 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Comment on attachment 226262 [details] Patch Attachment 226262 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/6612167415562240 New failing tests: compositing/columns/composited-columns.html compositing/repaint/resize-repaint.html compositing/visibility/visibility-image-layers-dynamic.html compositing/repaint/invalidations-on-composited-layers.html compositing/geometry/limit-layer-bounds-opacity-transition.html
Created attachment 226265 [details] Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-11 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Comment on attachment 226262 [details] Patch Attachment 226262 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/6541343404851200 New failing tests: compositing/columns/composited-columns.html compositing/repaint/resize-repaint.html compositing/visibility/visibility-image-layers-dynamic.html compositing/repaint/invalidations-on-composited-layers.html compositing/geometry/limit-layer-bounds-opacity-transition.html
Created attachment 226271 [details] Archive of layout-test-results from webkit-ews-07 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-07 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Created attachment 226469 [details] Patch
Comment on attachment 226469 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=226469&action=review > LayoutTests/platform/mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt:114 > + (anchor 0.50 0.50) Are these just slightly different from 0.5? Maybe we need to print more precision. > Source/WebCore/rendering/RenderLayerBacking.cpp:848 > + FloatPoint3D anchor(enclosingRelativeCompositingBounds.width() != 0.0f ? ((layerOffset.x() - enclosingRelativeCompositingBounds.x()) + transformOrigin.x()) > + / enclosingRelativeCompositingBounds.width() : 0.5f, enclosingRelativeCompositingBounds.height() != 0.0f ? ((layerOffset.y() - enclosingRelativeCompositingBounds.y()) 0.0f -> 0, 0.5f -> 0.5
Created attachment 227150 [details] Patch
Comment on attachment 227150 [details] Patch EWS testing.
(In reply to comment #16) > (From update of attachment 226469 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=226469&action=review > > > LayoutTests/platform/mac/compositing/visibility/visibility-image-layers-dynamic-expected.txt:114 > > + (anchor 0.50 0.50) > > Are these just slightly different from 0.5? Maybe we need to print more precision. bug 130442 > > > Source/WebCore/rendering/RenderLayerBacking.cpp:848 > > + FloatPoint3D anchor(enclosingRelativeCompositingBounds.width() != 0.0f ? ((layerOffset.x() - enclosingRelativeCompositingBounds.x()) + transformOrigin.x()) > > + / enclosingRelativeCompositingBounds.width() : 0.5f, enclosingRelativeCompositingBounds.height() != 0.0f ? ((layerOffset.y() - enclosingRelativeCompositingBounds.y()) > > 0.0f -> 0, 0.5f -> 0.5 done.
Comment on attachment 227150 [details] Patch Clearing flags on attachment: 227150 Committed r165892: <http://trac.webkit.org/changeset/165892>
All reviewed patches have been landed. Closing bug.