Incorrect arch feature detection for Windows on ARM platforms
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 3.3k
- Forks
- 808
- PR merge metrics
- No merged PRs in 30d
Description
https://github.com/xiph/opus/blob/main/celt/arm/armcpu.c : opus_select_arch_impl() expects all feature bit to be set in sequential order : OPUS_ARCH_ARM_EDSP -> OPUS_ARCH_ARM_MEDIA -> OPUS_ARCH_ARM_NEON -> OPUS_ARCH_ARM_DOTPROD . and for Windows on ARM platforms, only NEON and DOTPROD (if supported) are set . This makes the function opus_select_arch_impl() to fail for first OPUS_ARCH_ARM_EDSP check and returns arch as ARM v4 , leading to hooking up C implementation of functions instead of NEON intrinsics.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with celt/arm/armcpu.c and opus_select_arch_impl(); trace how Windows on ARM populates the feature bits and compare that path with the sequential checks. Done when supported Windows ARM targets select the NEON implementation rather than the ARM v4/C implementation, with DOTPROD behavior preserved when available.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- audio-video-rtc, performance
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100