https://bugs.kde.org/show_bug.cgi?id=525105
Bug ID: 525105
Summary: StackBlur (Highway-based, new in 0.7.0) fails to
compile on AArch64 targets where Highway's SVE
dispatch targets are enabled
Classification: Frameworks and Libraries
Product: KQuickImageEditor
Version First 0.7.0
Reported In:
Platform: Compiled Sources
OS: Linux
Status: REPORTED
Severity: major
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected], [email protected]
Target Milestone: ---
Created attachment 195680
--> https://bugs.kde.org/attachment.cgi?id=195680&action=edit
compilation log with failure
DESCRIPTION
StackBlur (Highway-based, new in 0.7.0) fails to compile on AArch64 targets
where Highway's SVE dispatch targets are enabled — stores native SIMD vector
type in std::vector-like container
STEPS TO REPRODUCE
1. Build kquickimageeditor 0.7.0 for an AArch64 target where Highway's default
dynamic-dispatch set includes SVE/SVE2/SVE_256/SVE2_128. Reproduced originally
on a Cortex-A78 part with no hardware SVE).
OBSERVED RESULT
Compile fails on src/annotations/stackblur.cpp
Compilation fails :
error: arithmetic on a pointer to sizeless type '__SVFloat32_t'
error: invalid application of 'sizeof' to sizeless type 'value_type' (aka
'__SVFloat32_t')
error: subscript of pointer to sizeless type '__SVFloat32_t'
EXPECTED RESULT
Successful compile
SOFTWARE/OS VERSIONS
Operating System (available in the Info Center app, or by running `kinfo` in a
terminal window):
KDE Plasma Version: 6.7.4
KDE Frameworks Version: 6.29.0
Qt Version: 6.11.2
ADDITIONAL INFORMATION
hwy::AlignedVector<MVec> weights(kernelSize);
hwy::AlignedVector<MVec> stack(kernelSize);
MVec here is a Highway vector type (hn::Vec<D>), not the lane type. The lane
type should be used because vectors are sizeless on SVE and RVV targets.
WORKAROUND
For anyone else hitting this, it can be avoided by excluding the
sizeless-vector targets at compile-time via:
DHWY_DISABLED_TARGETS='(HWY_SVE|HWY_SVE2|HWY_SVE_256|HWY_SVE2_128)'
This lets the file compile without SVE dispatch, which some AArch64 CPUs don't
implement so no loss.
A related issue also appeared once SVE was excluded: the HWY_NEON_BF16 target
failed with a bf16-target-feature/always-inline mismatch requiring
HWY_NEON_BF16 to be excluded using the same flag.
--
You are receiving this mail because:
You are watching all bug changes.