commit | 0441bb625fb5c53db26d144cee07291510c742dd | [log] [tgz] |
---|---|---|
author | Alessio Bazzica <alessiob@webrtc.org> | Tue Aug 10 15:23:23 2021 +0200 |
committer | WebRTC LUCI CQ <webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Aug 10 15:48:22 2021 +0000 |
tree | 5dc67fe41ba6c1bf3e055030f25270b5916f9679 | |
parent | db68979a207aaccdb858f29e6f655734e9ad1c63 [diff] [blame] |
APM: add HW-only denormal disabler Denormal numbers (see [1]) may origin in APM when the input is zeroed after a non-zero signal. In extreme cases, instructions involving denormal operands may run as much as 100 times slower, which seems to be the case (to some extent) of crbug.com/1227566. This CL adds a class that disables denormals only via hardware on x86 and on ARM. The class is used in APM and it is an adaption of [2]. Tested: appr.tc call on Chromium (Win, Mac) [1] https://en.wikipedia.org/wiki/Denormal_number [2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/audio/denormal_disabler.h Fixed: chromium:1227566 Change-Id: I0ed2eab55dc597529f09f93c26c7a01de051fdbe Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/227768 Reviewed-by: Magnus Flodman <mflodman@webrtc.org> Reviewed-by: Per Ã…hgren <peah@webrtc.org> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org> Cr-Commit-Position: refs/heads/master@{#34701}
diff --git a/modules/audio_processing/audio_processing_impl.h b/modules/audio_processing/audio_processing_impl.h index 2c22536..27abbd4 100644 --- a/modules/audio_processing/audio_processing_impl.h +++ b/modules/audio_processing/audio_processing_impl.h
@@ -187,6 +187,8 @@ static int instance_count_; const bool use_setup_specific_default_aec3_config_; + const bool use_denormal_disabler_; + SwapQueue<RuntimeSetting> capture_runtime_settings_; SwapQueue<RuntimeSetting> render_runtime_settings_;