WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
219007
[GPU Process] Clean up recreating the ImageBufferBackend because of GPU crashing
https://bugs.webkit.org/show_bug.cgi?id=219007
Summary
[GPU Process] Clean up recreating the ImageBufferBackend because of GPU crashing
Said Abou-Hallawa
Reported
2020-11-16 15:20:26 PST
No need to store the backend parameters in RemoteImageBufferProxy. They can be accessed from the current ImageBufferBackend via the ImageBuffer before the backend is cleared.
Attachments
Patch
(27.39 KB, patch)
2020-11-16 16:41 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Patch
(85.72 KB, patch)
2020-11-25 02:09 PST
,
Said Abou-Hallawa
ews-feeder
: commit-queue-
Details
Formatted Diff
Diff
Patch
(96.21 KB, patch)
2020-11-25 21:49 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Patch
(96.95 KB, patch)
2020-11-25 22:00 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Patch
(99.01 KB, patch)
2020-11-26 00:47 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Patch
(102.57 KB, patch)
2020-11-26 19:06 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Patch
(103.05 KB, patch)
2020-11-27 03:08 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Patch
(103.49 KB, patch)
2020-11-30 12:34 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Patch
(103.44 KB, patch)
2020-11-30 12:43 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Patch
(102.46 KB, patch)
2020-11-30 12:49 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Patch
(99.65 KB, patch)
2020-11-30 13:30 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Patch
(109.98 KB, patch)
2020-12-04 01:48 PST
,
Said Abou-Hallawa
simon.fraser
: review+
Details
Formatted Diff
Diff
Patch
(109.94 KB, patch)
2020-12-04 11:21 PST
,
Said Abou-Hallawa
sabouhallawa
: commit-queue-
Details
Formatted Diff
Diff
Patch
(110.13 KB, patch)
2020-12-04 12:31 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
Show Obsolete
(12)
View All
Add attachment
proposed patch, testcase, etc.
Said Abou-Hallawa
Comment 1
2020-11-16 16:41:54 PST
Created
attachment 414293
[details]
Patch
Simon Fraser (smfr)
Comment 2
2020-11-16 17:57:10 PST
Comment on
attachment 414293
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=414293&action=review
> Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:187 > + void commitFlushDisplayList(WebCore::DisplayList::FlushIdentifier flushIdentifier) override
We need to stop using "commit" and "flush" in ways we don't all understand.
Tim Horton
Comment 3
2020-11-16 18:40:09 PST
IMO (but obv. up for discussion): "submit" for "send display list/work to GPUP", like Wenson fixed elsewhere "flush" is "wait till all submitted work has actually been completed" "commit" should be just for the layer tree transactions (but is effectively the same as "submit" for a transaction) and no combination of the above means anything so we shouldn't see them adjacent to each other :)
Said Abou-Hallawa
Comment 4
2020-11-25 02:09:42 PST
Created
attachment 414861
[details]
Patch
Said Abou-Hallawa
Comment 5
2020-11-25 21:49:34 PST
Created
attachment 414879
[details]
Patch
Said Abou-Hallawa
Comment 6
2020-11-25 22:00:02 PST
Created
attachment 414880
[details]
Patch
Said Abou-Hallawa
Comment 7
2020-11-26 00:47:26 PST
Created
attachment 414885
[details]
Patch
Radar WebKit Bug Importer
Comment 8
2020-11-26 03:22:02 PST
<
rdar://problem/71747762
>
Said Abou-Hallawa
Comment 9
2020-11-26 19:06:21 PST
Created
attachment 414912
[details]
Patch
Said Abou-Hallawa
Comment 10
2020-11-27 03:08:05 PST
Created
attachment 414935
[details]
Patch
Simon Fraser (smfr)
Comment 11
2020-11-30 10:50:10 PST
Comment on
attachment 414935
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=414935&action=review
> Source/WebCore/platform/graphics/ConcreteImageBuffer.h:297 > + std::unique_ptr<ImageBufferBackend::Parameters> m_parameters;
Why not just store a copy of the tiny struct? Much simpler.
> Source/WebCore/platform/graphics/ImageBufferBackend.h:166 > + const Parameters& m_parameters;
Who owns the original data? Would be safer to just store by value.
Said Abou-Hallawa
Comment 12
2020-11-30 12:34:53 PST
Created
attachment 415043
[details]
Patch
Said Abou-Hallawa
Comment 13
2020-11-30 12:43:17 PST
Created
attachment 415045
[details]
Patch
Said Abou-Hallawa
Comment 14
2020-11-30 12:49:24 PST
Created
attachment 415046
[details]
Patch
Said Abou-Hallawa
Comment 15
2020-11-30 13:30:29 PST
Created
attachment 415050
[details]
Patch
Said Abou-Hallawa
Comment 16
2020-11-30 13:34:37 PST
ImageBufferBackend::Parameters are saved by value in ImageBufferBackend and ConcreteImageBuffer. Renaming the flush/commit/flush functions was removed from this patch and will be addressed in a different patch.
Said Abou-Hallawa
Comment 17
2020-12-04 01:48:59 PST
Created
attachment 415395
[details]
Patch
Simon Fraser (smfr)
Comment 18
2020-12-04 10:54:41 PST
Comment on
attachment 415395
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=415395&action=review
> Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp:124 > + auto backendSize = this->backendSize();
Doesn't seem worthwhile storing this in a local.
> Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:108 > + return { static_cast<int>(CGBitmapContextGetWidth(context().platformContext())), static_cast<int>(CGBitmapContextGetHeight(context().platformContext())) };
Let's not fetch context().platformContext() twice.
Said Abou-Hallawa
Comment 19
2020-12-04 11:21:40 PST
Created
attachment 415434
[details]
Patch
Said Abou-Hallawa
Comment 20
2020-12-04 12:31:04 PST
Created
attachment 415445
[details]
Patch
Said Abou-Hallawa
Comment 21
2020-12-04 12:33:32 PST
Comment on
attachment 415395
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=415395&action=review
>> Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp:124 >> + auto backendSize = this->backendSize(); > > Doesn't seem worthwhile storing this in a local.
Actually it is worthy. sinkIntoNativeImage() destroys the backend. So we can't call backendSize() after calling sinkIntoNativeImage(). I put it back and I added a comment.
EWS
Comment 22
2020-12-04 14:30:50 PST
Committed
r270458
: <
https://trac.webkit.org/changeset/270458
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 415445
[details]
.
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