Summary: | [GPU Process] (REGRESSION r285597): Set the filterRegion of the CSSFilter after it is created | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Said Abou-Hallawa <sabouhallawa> | ||||||||||
Component: | Layout and Rendering | Assignee: | Said Abou-Hallawa <sabouhallawa> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | CC: | bfulgham, changseok, dino, esprehn+autocc, ews-watchlist, fmalita, fred.wang, glenn, gyuyoung.kim, heycam, kondapallykalyan, macpherson, menard, pdr, schenney, sergio, simon.fraser, webkit-bug-importer, zalan | ||||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||||
Version: | WebKit Nightly Build | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
See Also: |
https://bugs.webkit.org/show_bug.cgi?id=233843 https://bugs.webkit.org/show_bug.cgi?id=231253 https://bugs.webkit.org/show_bug.cgi?id=232457 |
||||||||||||
Bug Depends on: | |||||||||||||
Bug Blocks: | 231253 | ||||||||||||
Attachments: |
|
Description
Said Abou-Hallawa
2021-12-03 19:09:44 PST
Created attachment 445938 [details] Combined Patch (this bug + bug 233843) Created attachment 445944 [details]
Patch for review
Created attachment 445961 [details]
Patch
Comment on attachment 445961 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=445961&action=review > Source/WebCore/ChangeLog:27 > + b) Recreate the sourceImage if needed. > + c) setup the context for drawing the target renderer. "e)" and "f)" > Source/WebCore/rendering/RenderLayerFilters.cpp:174 > + filterRegion += filter.outsets(); > + filterRegion = intersection(filterBoxRect, filterRegion); What about: filterRegion += filter.outsets(); filterRegion.intersect(filterBoxRect); > Source/WebCore/rendering/RenderLayerFilters.cpp:185 > + if (m_sourceImageRect != filterRegion) { > + m_sourceImageRect = filterRegion; > + hasUpdatedBackingStore = true; > } After this point, m_sourceImageRect and filterRegion are the same, so I think we should consistently use one or the other in the remainder of the function. > Source/WebCore/rendering/RenderLayerFilters.cpp:202 > + filter.setFilterRegion(m_sourceImageRect); So here I think we should use filterRegion. > Source/WebCore/rendering/RenderLayerFilters.cpp:-189 > - if (!sourceGraphicsContext || filter.filterRegion().isEmpty() || ImageBuffer::sizeNeedsClamping(filter.filterRegion().size())) In this old code, how would it be that ImageBuffer::sizeNeedsClamping would return true, since earlier we call clampFilterRegionIfNeeded? > Source/WebCore/svg/graphics/filters/SVGFilter.h:50 > + SVGFilter(RenderingMode, const FloatSize& filterScale, ClipOperation, const FloatRect& filterRegion, const FloatRect& targetBoundingBox, SVGUnitTypes::SVGUnitType primitiveUnits); Nit: two spaces after "targetBoundingBox,". Created attachment 446015 [details]
Patch
Committed r286546 (244878@main): <https://commits.webkit.org/244878@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 446015 [details]. |