WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
235073
[GPU Process] [SVG Resources] Make SVG resources create remote ImageBuffers for their drawing
https://bugs.webkit.org/show_bug.cgi?id=235073
Summary
[GPU Process] [SVG Resources] Make SVG resources create remote ImageBuffers f...
Said Abou-Hallawa
Reported
2022-01-11 09:13:50 PST
This will force the SVG resources (i.e. clippers, masks, patterns and gradients) to apply their drawing in the GPU Process. The filters are tracked by
bug 231253
. We still need to optimize the usage of these ImageBuffers, like not getting a NativeImage from the remote ImageBuffer in WebProcess and then draw the NativeImage to another remote ImageBuffer.
Attachments
Patch
(14.96 KB, patch)
2022-01-11 09:20 PST
,
Said Abou-Hallawa
darin
: review+
Details
Formatted Diff
Diff
Patch
(21.56 KB, patch)
2022-01-11 21:49 PST
,
Said Abou-Hallawa
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2022-01-11 09:15:35 PST
<
rdar://problem/87402419
>
Said Abou-Hallawa
Comment 2
2022-01-11 09:20:42 PST
Created
attachment 448852
[details]
Patch
Darin Adler
Comment 3
2022-01-11 09:47:08 PST
Comment on
attachment 448852
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=448852&action=review
> Source/WebCore/ChangeLog:3 > + [GPU Process] Make SVG resources create remote ImageBuffers for their drawing
Is there a way to test that this has the desired result?
> Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h:164 > + if (!std::holds_alternative<Ref<T>>(iterator->value)) > + return nullptr; > return std::get<Ref<T>>(iterator->value).ptr();
Would be nice to use get_if instead of calling holds_alternative and then get. Would reduce reference count churn, and code would be less repetitive: auto value = std::get_if<Ref<T>>(&iterator->value); return value ? value->ptr() : nullptr;
Said Abou-Hallawa
Comment 4
2022-01-11 21:49:00 PST
Created
attachment 448906
[details]
Patch
Said Abou-Hallawa
Comment 5
2022-01-11 22:12:47 PST
Comment on
attachment 448852
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=448852&action=review
>> Source/WebCore/ChangeLog:3 >> + [GPU Process] Make SVG resources create remote ImageBuffers for their drawing > > Is there a way to test that this has the desired result?
This change fixed some of the layout tests when running them with "--use-gpu-process". I un-skipped them from LayoutTests/gpu-process/TestExpectations
>> Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h:164 >> return std::get<Ref<T>>(iterator->value).ptr(); > > Would be nice to use get_if instead of calling holds_alternative and then get. Would reduce reference count churn, and code would be less repetitive: > > auto value = std::get_if<Ref<T>>(&iterator->value); > return value ? value->ptr() : nullptr;
Fixed.
EWS
Comment 6
2022-01-11 23:50:33 PST
Committed
r287911
(
245944@main
): <
https://commits.webkit.org/245944@main
> All reviewed patches have been landed. Closing bug and clearing flags on
attachment 448906
[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