WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
73591
[Qt] [WK2] Webkit should release TextureMapper GL objects if page paint node is deallocated.
https://bugs.webkit.org/show_bug.cgi?id=73591
Summary
[Qt] [WK2] Webkit should release TextureMapper GL objects if page paint node ...
Viatcheslav Ostapenko
Reported
2011-12-01 14:36:33 PST
1. If paint node is deallocated it means that view&page were removed from QSGCanvas and can be inserted into different canvas where existing GL object will be invalid. 2. Can be used as memory saving API for mobile devices (remove invisible view/page from canvas to remove page backing stores).
Attachments
patch
(15.35 KB, patch)
2011-12-01 15:00 PST
,
Viatcheslav Ostapenko
noam
: review-
noam
: commit-queue-
Details
Formatted Diff
Diff
Added cleaning of direct composited images
(33.74 KB, patch)
2011-12-08 17:54 PST
,
Viatcheslav Ostapenko
noam
: review-
noam
: commit-queue-
Details
Formatted Diff
Diff
Names and style fixed.
(30.14 KB, patch)
2011-12-08 20:51 PST
,
Viatcheslav Ostapenko
noam
: review-
noam
: commit-queue-
Details
Formatted Diff
Diff
Resouces fixed
(33.65 KB, patch)
2011-12-08 21:19 PST
,
Viatcheslav Ostapenko
no flags
Details
Formatted Diff
Diff
Show Obsolete
(3)
View All
Add attachment
proposed patch, testcase, etc.
Viatcheslav Ostapenko
Comment 1
2011-12-01 15:00:33 PST
Created
attachment 117497
[details]
patch
Noam Rosenthal
Comment 2
2011-12-01 15:26:28 PST
Comment on
attachment 117497
[details]
patch View in context:
https://bugs.webkit.org/attachment.cgi?id=117497&action=review
See comments. Question, what are we doing with directly-composited images? Would that come in a different patch?
> Source/WebCore/ChangeLog:3 > + [Qt] [WK2] Webkit should TextureMapper GL objects if page paint node is deallocated.
I think this is missing a verb (release?).
> Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:579 > +void WebGraphicsLayer::reCreateTiledBackingStore()
Let's call it recreateTiledBackingStoreIfNeeded
> Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:591 > +}
Don't you need to regenerate the content as well, e.g. setNeedsDisplay ?
> Source/WebKit2/WebProcess/WebPage/LayerTreeHost.h:87 > + virtual void needTileBuffersRecreate() { }
purgeTiledBackingStores (?)
> Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp:69 > + , m_needTileBuffersRecreate(false)
m_shouldRecreateTileBuffers
Viatcheslav Ostapenko
Comment 3
2011-12-01 17:45:16 PST
(In reply to
comment #2
)
> (From update of
attachment 117497
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=117497&action=review
> > See comments. > Question, what are we doing with directly-composited images? > Would that come in a different patch?
No. For some reason I thought that tiles are used for directly-composited images also. I'll figure it out.
> > Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:591 > > +} > Don't you need to regenerate the content as well, e.g. setNeedsDisplay ?
IMHO it called somewhere else on page getting visible, but I think it doesn't harm to call it here also.
Viatcheslav Ostapenko
Comment 4
2011-12-08 17:54:24 PST
Created
attachment 118504
[details]
Added cleaning of direct composited images
Noam Rosenthal
Comment 5
2011-12-08 18:39:07 PST
Comment on
attachment 118504
[details]
Added cleaning of direct composited images View in context:
https://bugs.webkit.org/attachment.cgi?id=118504&action=review
You're using too many names to describe the same thing. How about: purgeNodeTexturesRecursive PurgeBackingStores purgeGLResouces recreateBackingStoreIfNeeded purgeBackingStore m_shouldRecreateBackingStore
> Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:74 > + // Trigger setting of correct visibility flags after everything was allocated and initialized
Period at end of sentence.
> Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:591 > + if (m_layerInfo.imageBackingStoreID) { > + layerTreeTileClient()->releaseImageBackingStore(m_layerInfo.imageBackingStoreID); > + m_layerInfo.imageBackingStoreID = 0; > + }
Early return
> Source/WebKit2/WebProcess/WebCoreSupport/WebGraphicsLayer.cpp:596 > +
Newline unnecessary
> Source/WebKit2/WebProcess/WebPage/qt/LayerTreeHostQt.cpp:440 > + if (m_shouldRecreateTileBuffers) {
Early return.
Viatcheslav Ostapenko
Comment 6
2011-12-08 20:51:17 PST
Created
attachment 118522
[details]
Names and style fixed.
Noam Rosenthal
Comment 7
2011-12-08 20:57:02 PST
Comment on
attachment 118522
[details]
Names and style fixed. View in context:
https://bugs.webkit.org/attachment.cgi?id=118522&action=review
Please fix typo, and regenerate Changelogs :)
> Source/WebKit2/UIProcess/LayerTreeHostProxy.h:58 > + void purgeGLResouces();
you mean purgeGLResources? (typo)
Viatcheslav Ostapenko
Comment 8
2011-12-08 20:58:27 PST
(In reply to
comment #7
)
> (From update of
attachment 118522
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=118522&action=review
> > Please fix typo, and regenerate Changelogs :) > > > Source/WebKit2/UIProcess/LayerTreeHostProxy.h:58 > > + void purgeGLResouces(); > > you mean purgeGLResources? > (typo)
Uff! I hate copy&paste ;)
Noam Rosenthal
Comment 9
2011-12-08 20:59:48 PST
> > > Source/WebKit2/UIProcess/LayerTreeHostProxy.h:58 > > > + void purgeGLResouces(); > > > > you mean purgeGLResources? > > (typo) > > Uff! > I hate copy&paste ;)
Just checking that you're alert...
Viatcheslav Ostapenko
Comment 10
2011-12-08 21:19:53 PST
Created
attachment 118527
[details]
Resouces fixed
WebKit Review Bot
Comment 11
2011-12-08 22:54:29 PST
Comment on
attachment 118527
[details]
Resouces fixed Clearing flags on attachment: 118527 Committed
r102435
: <
http://trac.webkit.org/changeset/102435
>
WebKit Review Bot
Comment 12
2011-12-08 22:54:34 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