RESOLVED FIXED 41954
[Qt] GraphicsLayerQt must have syncCompositingStateForThisLayerOnly() implemented
https://bugs.webkit.org/show_bug.cgi?id=41954
Summary [Qt] GraphicsLayerQt must have syncCompositingStateForThisLayerOnly() impleme...
Jesus Sanchez-Palencia
Reported 2010-07-09 05:18:22 PDT
[Qt] GraphicsLayerQt must have syncCompositingStateForThisLayerOnly() implemented
Attachments
Patch (2.20 KB, patch)
2010-07-09 05:32 PDT, Jesus Sanchez-Palencia
no flags
Patch (5.68 KB, patch)
2010-07-13 13:29 PDT, Jesus Sanchez-Palencia
no flags
Patch (1.67 KB, patch)
2010-07-13 14:59 PDT, Jesus Sanchez-Palencia
kenneth: review+
jesus: commit-queue+
Jesus Sanchez-Palencia
Comment 1 2010-07-09 05:32:37 PDT
Jesus Sanchez-Palencia
Comment 2 2010-07-09 05:37:59 PDT
Noam and Kenneth, could you please take at this? We need to implement this in order to get AC working with WebKit2. Thanks in advance!
Noam Rosenthal
Comment 3 2010-07-09 06:40:48 PDT
the first think I'd do for that is to make sure only flushChanges calls m_layer and m_pendingContent, and everyone else calls m_state and m_currentContent. I think maybe updateTransform still calls m_layer directly - also the animations, but that's fine because animations work on an already synced layer. ~ m_layer and m_pendingContent contain the non-synced state, m_state and m_currentContent contain the synced state.
WebKit Commit Bot
Comment 4 2010-07-09 15:21:17 PDT
Comment on attachment 61036 [details] Patch Clearing flags on attachment: 61036 Committed r63001: <http://trac.webkit.org/changeset/63001>
WebKit Commit Bot
Comment 5 2010-07-09 15:21:22 PDT
All reviewed patches have been landed. Closing bug.
Jesus Sanchez-Palencia
Comment 6 2010-07-13 13:29:21 PDT
Jesus Sanchez-Palencia
Comment 7 2010-07-13 13:36:12 PDT
Comment on attachment 61410 [details] Patch I'm not going to ask for review it. No'am, could you please take a look at this follow-up patch? I'm addressing your last comments with a few exceptions. I noticed that modifying GraphicsLayerQtImpl::recache(), GraphicsLayerQtImpl::notifySyncRequired() and GraphicsLayerQt::setContentsToImage() leaves Accelerated Compositing with a strange behavior, crashing often and not working on some examples (i.e.g.: falling leaves). It would help to have more info on whether a function should use the synced state or the non-synced one. Maybe I missed something... thanks in advance!
Noam Rosenthal
Comment 8 2010-07-13 13:43:20 PDT
Comment on attachment 61410 [details] Patch > - if (!m_transformAnimationRunning) > - m_baseTransform = m_layer->transform(); > + if (!m_transformAnimationRunning && m_state.maskLayer) > + m_baseTransform = m_state.maskLayer->transform(); should be m_state.transform, not m_state.maskLayer->transform. There's no mask layer involved > void GraphicsLayerQt::setNeedsDisplay() > { > - m_impl->m_pendingContent.regionToUpdate = QRegion(QRect(QPoint(0, 0), QSize(size().width(), size().height()))); > + m_impl->m_currentContent.regionToUpdate = QRegion(QRect(QPoint(0, 0), QSize(size().width(), size().height()))); > m_impl->notifyChange(GraphicsLayerQtImpl::DisplayChange); > } No need for all that :) it needs to update m_pendingContent and not m_currentContent. The only function we really need to change is updateTransform(), to not read m_layer->transform().
Jesus Sanchez-Palencia
Comment 9 2010-07-13 14:59:54 PDT
Noam Rosenthal
Comment 10 2010-07-13 15:14:30 PDT
LGTM
Note You need to log in before you can comment on or make changes to this bug.