WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
78962
[Qt][WK2] Draw tiles of previous contents-scale for non-opaque layers if they don't intersect with tiles in new content-scale
https://bugs.webkit.org/show_bug.cgi?id=78962
Summary
[Qt][WK2] Draw tiles of previous contents-scale for non-opaque layers if they...
Noam Rosenthal
Reported
2012-02-18 05:13:41 PST
[Qt][WK2] Draw tiles of previous contents-scale for opaque layers if they don't intersect with previous tiles
Attachments
Patch
(2.33 KB, patch)
2012-02-20 11:09 PST
,
Noam Rosenthal
kenneth
: review+
Details
Formatted Diff
Diff
Patch
(2.27 KB, patch)
2012-02-21 10:46 PST
,
Noam Rosenthal
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Noam Rosenthal
Comment 1
2012-02-20 11:09:20 PST
Created
attachment 127834
[details]
Patch
Kenneth Rohde Christiansen
Comment 2
2012-02-20 13:13:41 PST
Comment on
attachment 127834
[details]
Patch I don't get it fully. Maybe previous tile is a too overloaded word.
Noam Rosenthal
Comment 3
2012-02-20 15:10:58 PST
To reproduce, open the morphing-cubes demo in Qt's MiniBrowser, and change the content scale. The cube sides always disappear and then reappear - that's because they're painted with semi-transparency and the tiles from the previous contents scale are discarded before the new ones are ready.
Kenneth Rohde Christiansen
Comment 4
2012-02-21 02:55:37 PST
Yeah I understand the issue, but just not disregarding ones not intersecting sounds like it only solves this in some cases. What do you do when they infact do intersect and you still don't have the new content ready? clip it?
Kenneth Rohde Christiansen
Comment 5
2012-02-21 08:45:17 PST
Comment on
attachment 127834
[details]
Patch Would be nice with a few better comments in the code, but r=me
Jocelyn Turcotte
Comment 6
2012-02-21 08:52:55 PST
Comment on
attachment 127834
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=127834&action=review
> Source/WebKit2/UIProcess/qt/LayerBackingStore.cpp:120 > + coveredRect.unite(tile.rect());
Why do you need to count the previous scale tiles in the covered rect?
Noam Rosenthal
Comment 7
2012-02-21 08:57:49 PST
(In reply to
comment #6
)
> (From update of
attachment 127834
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=127834&action=review
> > > Source/WebKit2/UIProcess/qt/LayerBackingStore.cpp:120 > > + coveredRect.unite(tile.rect()); > > Why do you need to count the previous scale tiles in the covered rect?
hmm... I guess that line is unnecessary.
Noam Rosenthal
Comment 8
2012-02-21 09:00:01 PST
(In reply to
comment #7
)
> (In reply to
comment #6
) > > (From update of
attachment 127834
[details]
[details]) > > View in context:
https://bugs.webkit.org/attachment.cgi?id=127834&action=review
> > > > > Source/WebKit2/UIProcess/qt/LayerBackingStore.cpp:120 > > > + coveredRect.unite(tile.rect()); > > > > Why do you need to count the previous scale tiles in the covered rect? > > hmm... I guess that line is unnecessary.
Though if things are fast enough there might be a situation where we have previous tiles from several scales... in that case we would still want to discard them if there's opacity.
Jocelyn Turcotte
Comment 9
2012-02-21 09:12:24 PST
(In reply to
comment #8
)
> Though if things are fast enough there might be a situation where we have previous tiles from several scales... in that case we would still want to discard them if there's opacity.
I think that would be weird, since we should only send createTile while rendering tiles and normally at this point the previous backing store should already have sent all the removeTile messages for its tiles, once its smart pointer was reset. It would also mean that you would discard tiles randomly from one scale or the other depending on which one sets the coveredRect first, and mix them. So I think we should avoid it if it really can happen.
Noam Rosenthal
Comment 10
2012-02-21 09:35:13 PST
(In reply to
comment #9
)
> (In reply to
comment #8
) > > Though if things are fast enough there might be a situation where we have previous tiles from several scales... in that case we would still want to discard them if there's opacity. > > I think that would be weird, since we should only send createTile while rendering tiles and normally at this point the previous backing store should already have sent all the removeTile messages for its tiles, once its smart pointer was reset. > > It would also mean that you would discard tiles randomly from one scale or the other depending on which one sets the coveredRect first, and mix them. So I think we should avoid it if it really can happen.
OK, I see what you mean. But that line is harmless, and I use it in the next patch to make sure we clip if we painted tiles that are not contained in the targetRect. Otherwise I need to calculate two coverRects, which seems like an overkill. Any objection to submitting the patch as is?
Jocelyn Turcotte
Comment 11
2012-02-21 09:50:46 PST
(In reply to
comment #10
)
> Any objection to submitting the patch as is?
Sorry no problem, I just wanted to make sure that it has more use than it's costing :)
Noam Rosenthal
Comment 12
2012-02-21 10:46:13 PST
Created
attachment 127996
[details]
Patch
WebKit Review Bot
Comment 13
2012-02-21 15:33:35 PST
Comment on
attachment 127996
[details]
Patch Clearing flags on attachment: 127996 Committed
r108408
: <
http://trac.webkit.org/changeset/108408
>
WebKit Review Bot
Comment 14
2012-02-21 15:33:40 PST
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug