Branch: refs/heads/webkitglib/2.52
Home: https://github.com/WebKit/WebKit
Commit: ae3426a78b8eb21b23a7e8b4dbec9f9af1f1d4cb
https://github.com/WebKit/WebKit/commit/ae3426a78b8eb21b23a7e8b4dbec9f9af1f1d4cb
Author: Said Abou-Hallawa <[email protected]>
Date: 2026-05-29 (Fri, 29 May 2026)
Changed paths:
M LayoutTests/svg/filters/feMorphology-radius-cases.svg
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M
Source/WebCore/platform/graphics/filters/software/FEMorphologySoftwareApplier.cpp
M
Source/WebCore/platform/graphics/filters/software/FEMorphologySoftwareApplier.h
A
Source/WebCore/platform/graphics/filters/software/FilterEffectSoftwareParallelApplier.h
Log Message:
-----------
Cherry-pick 305413.516@safari-7624-branch (e557102b0f77).
https://bugs.webkit.org/show_bug.cgi?id=308910
FEMorphologySoftwareApplier is not thread safe
https://bugs.webkit.org/show_bug.cgi?id=308910
rdar://168776587
Reviewed by Mike Wyrzykowski.
The software morphology applier relies on threading the calculations using
ParallelJobs. It splits the source image into vertical blocks and working
on each
block separately. All the jobs access the same source and the destination
PixelBuffer. The problem is the PixelBuffer is not thread safe.
To fix this issue, FEMorphologySoftwareApplier will create a source and a
destination PixelBuffers for each job. Before executing the parallel jobs,
it
copies bytes from its source PixelBuffer to the jobs source PixelBuffers.
After
the calculation finishes, FEMorphologySoftwareApplier will collect the
results
from the destination PixelBuffers of the jobs to its destination
PixelBuffer.
* LayoutTests/svg/filters/feMorphology-radius-cases.svg:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
*
Source/WebCore/platform/graphics/filters/software/FEMorphologySoftwareApplier.cpp:
(WebCore::FEMorphologySoftwareApplier::columnExtremum):
(WebCore::FEMorphologySoftwareApplier::applyPlatformGeneric):
(WebCore::FEMorphologySoftwareApplier::applyPlatformWorker):
(WebCore::FEMorphologySoftwareApplier::applyPlatform):
(WebCore::FEMorphologySoftwareApplier::apply const):
*
Source/WebCore/platform/graphics/filters/software/FEMorphologySoftwareApplier.h:
*
Source/WebCore/platform/graphics/filters/software/FilterEffectSoftwareParallelApplier.h:
Added.
(WebCore::applyPlatformParallel):
Identifier: 305413.516@safari-7624-branch
Canonical link: https://commits.webkit.org/305877.691@webkitglib/2.52
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications