WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
221788
clip-path does not update dynamically when svg path changes if using GPU rendering
https://bugs.webkit.org/show_bug.cgi?id=221788
Summary
clip-path does not update dynamically when svg path changes if using GPU rend...
Jonathan Deutsch
Reported
2021-02-11 17:20:19 PST
Created
attachment 420072
[details]
Reproduction document If a CSS clip-path is set to an element that uses a SVG id, changing the "d" component does not update the clip path immediately when the element uses GPU acceleration (via transform:rotateY(0deg). If you resize the window or do something to force redrawing, it will show up correctly. Not using GPU rendering also will make this work. It is not a problem on Chrome/Firefox. I've attached a reproduction case. Click the shape to get the clip path to change. After clicking, do something like resize the window and you'll see it change then. This affects content made with Tumult Hype [
https://tumult.com/hype/
].
Attachments
Reproduction document
(936 bytes, text/html)
2021-02-11 17:20 PST
,
Jonathan Deutsch
no flags
Details
reduced test case
(878 bytes, text/html)
2021-02-11 19:48 PST
,
Said Abou-Hallawa
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Said Abou-Hallawa
Comment 1
2021-02-11 19:48:31 PST
Created
attachment 420082
[details]
reduced test case I think the problem is not related to GPU acceleration or the compositing. I am attaching a reduced test case which does not include any compositing. I think the problem is when the CSS of an element references an SVG "clip-path", the renderer of this element is not registered as client of the RenderSVGResourceContainer of SVG "clip-path". This is already done for any SVG element which references the same SVG "clip-path" but it is not done for any other non SVG element. When the SVG "clip-path" changes, its renderer 'RenderSVGResourceContainer' invalidates all the clients in RenderSVGResourceContainer::markAllClientsForInvalidation().
Jonathan Deutsch
Comment 2
2021-02-11 20:33:39 PST
Yes - it looks like you are correct. Removal of the rotateY(0deg) from my example leads to different behavior that lead me to think it was the culprit, but with some additional testing I can see there are ways it still is wrong with that. Your example easily repros it.
Radar WebKit Bug Importer
Comment 3
2021-02-18 17:21:13 PST
<
rdar://problem/74501548
>
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