webrtc/system_wrappers/source
Alessio Bazzica 0441bb625f 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}
2021-08-10 15:48:22 +00:00
..
clock.cc Use backticks not vertical bars to denote variables in comments for /system_wrappers 2021-07-27 14:37:27 +00:00
clock_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
cpu_features.cc Use backticks not vertical bars to denote variables in comments for /system_wrappers 2021-07-27 14:37:27 +00:00
cpu_features_android.cc Refactor cpu_features_wrapper.h functions from C to C++. 2020-09-07 08:44:24 +00:00
cpu_features_linux.cc Refactor cpu_features_wrapper.h functions from C to C++. 2020-09-07 08:44:24 +00:00
cpu_info.cc Ensure CpuInfo::DetectNumberOfCores is > 0 and thread safe. 2019-05-24 12:59:14 +00:00
denormal_disabler.cc APM: add HW-only denormal disabler 2021-08-10 15:48:22 +00:00
denormal_disabler_unittest.cc APM: add HW-only denormal disabler 2021-08-10 15:48:22 +00:00
field_trial.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
field_trial_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
metrics.cc Use backticks not vertical bars to denote variables in comments for /system_wrappers 2021-07-27 14:37:27 +00:00
metrics_default_unittest.cc Add directive to make webrtc metrics optional. 2019-12-09 13:55:50 +00:00
metrics_unittest.cc Rename more death test to *DeathTest 2020-05-26 20:27:34 +00:00
ntp_time_unittest.cc Remove Clock::NtpToMs. 2021-04-08 10:37:20 +00:00
rtp_to_ntp_estimator.cc Use backticks not vertical bars to denote variables in comments for /system_wrappers 2021-07-27 14:37:27 +00:00
rtp_to_ntp_estimator_unittest.cc Fix -Wextra-semi warnings. 2019-02-25 09:22:51 +00:00
sleep.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00