Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Avoid std::aligned_storage, it's deprecated in newer C++ | Chris Robinson | 2023-10-08 | 1 | -3/+3 |
| | |||||
* | Remove more type-punning from pffft | Chris Robinson | 2023-10-08 | 1 | -52/+63 |
| | |||||
* | Clean up some more type-punning in pffft | Chris Robinson | 2023-10-08 | 1 | -22/+42 |
| | |||||
* | Avoid some type-punning and clean up pffft a bit | Chris Robinson | 2023-10-08 | 1 | -161/+148 |
| | |||||
* | Update and clarify some comments | Chris Robinson | 2023-10-07 | 2 | -91/+93 |
| | |||||
* | Add a generic GCC vector extension fallback for pffft | Chris Robinson | 2023-10-06 | 1 | -13/+80 |
| | | | | Also combine multiple allocations into one. | ||||
* | Improve NEON shuffling | Chris Robinson | 2023-10-06 | 1 | -21/+3 |
| | |||||
* | Fix x86-64 MSVC check | Chris Robinson | 2023-10-06 | 1 | -1/+1 |
| | |||||
* | Include a copy of PFFFT | Chris Robinson | 2023-10-06 | 2 | -0/+2201 |
| | | | | | This is a notably faster FFT implementation for 32-bit float signals, provided under a 3-clause BSD license. | ||||
* | Clear the 0 and half-frequency bins for the phase shift filter | Chris Robinson | 2023-10-03 | 1 | -2/+5 |
| | | | | | | This doesn't change the filter response, but is more correct since a real signal won't have an imaginary value on them (it can only have a magnitude with a phase of 0 or pi). | ||||
* | Add a wrapper for COM initialization | Chris Robinson | 2023-09-29 | 1 | -0/+38 |
| | | | | | This helps ensure COM is initialized and deinitialized in order relative to other objects (e.g. ComPtr). | ||||
* | Use std::array instead of a C-style array | Chris Robinson | 2023-09-25 | 1 | -1/+2 |
| | |||||
* | Compile with c++20 support (#920) | Deal | 2023-09-25 | 2 | -6/+8 |
| | | | | | * Compile with c++20 support * Update CMakeLists.txt | ||||
* | Shift the appropriate type | Chris Robinson | 2023-09-22 | 2 | -6/+12 |
| | |||||
* | Rename noinline to NOINLINE | Chris Robinson | 2023-09-17 | 1 | -3/+3 |
| | | | | To avoid clashes with compilers that use it as a keyword already | ||||
* | Don't inline some big functions | Chris Robinson | 2023-09-16 | 1 | -0/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is very dumb. Template functions are implicitly marked inline according to C++, and contrary to popular belief, "inline" *does* influence the compiler's decision to inline a function. A function the compiler may not have decided to inline normally may be inlined anyway, or issue a warning if it still decides not to inline, if explicitly or implicitly marked as such (or does inline it as requested, but then decides to not inline different functions it normally would because of a cumulative code size increase or something). Furthermore, once a function becomes inline due to being a template function, there's no way to undo it. Marking an inline function "noinline" pushes the problem the other way, causing the compiler to not inline a function it may have decided was beneficial to inline. There's no way to declare a template function to be inlined based solely on compiler heuristics, it will always be influenced by the implicit "inline" or explicit "noinline". That's what's happening here. A number of functions had been combined into a smaller number of large-ish template functions to reduce code duplication and ease maintanence, causing them to be implicitly inline as a side-effect. GCC then manages to inline these larger functions as implicitly requested, but in doing so prevents other smaller functions (which are explicitly marked inline) from being inlined due to excessive code increase and issue a warning. The "noinline" is a heavy-handed method of un-pessimizing the optimization pass, on the assumption the compiler apparently doesn't actually want to inline the template functions, but does so because they're technically marked inline. There's no good option here until it gets acknowledged that inline does mean something beyond allowing multiple definitions, and that template (and other types of) function definitions sometimes (if not most often) want to allow multiple definitions but don't want an artificial/detrimental boost in inline prioritization. /rant | ||||
* | Improve the FFT bit reversal computation | Chris Robinson | 2023-09-09 | 2 | -34/+43 |
| | | | | | This also allows to include 11-bit indices in the fast lookup table path, without exceeding GCC's internal limit of compile-time calculations. | ||||
* | Optimize FFT calculations for lengths of 1024 or less | Chris Robinson | 2023-09-09 | 1 | -23/+64 |
| | | | | | This replaces sin/cos calls with an array of 10 complex values for lookup tables, and separates the first loop iteration with a constant x1 multiplier. | ||||
* | Use a bit_cast instead of a union for type-punning | Chris Robinson | 2023-08-25 | 1 | -31/+16 |
| | |||||
* | Fix conversion and maybe-unused warnings with my_fopen | Chris Robinson | 2023-08-18 | 1 | -3/+10 |
| | |||||
* | Use a string_view for the backend open method | Chris Robinson | 2023-08-06 | 2 | -10/+12 |
| | |||||
* | disable unavailable functionality on xbox (#887) | Max Bachmann | 2023-07-26 | 1 | -0/+4 |
| | | | | | * disable unavailable functionality on xbox * use not std version of getenv on xbox | ||||
* | Rename threads.cpp/h to alsem.cpp/h | Chris Robinson | 2023-06-01 | 2 | -5/+6 |
| | |||||
* | Move althrd_setname to its own source | Chris Robinson | 2023-06-01 | 4 | -68/+82 |
| | |||||
* | Define FORCE_ALIGN in config.h | Chris Robinson | 2023-06-01 | 1 | -13/+0 |
| | |||||
* | Fix ios crash at sem_init fail with errno=78(function not implemented) (#855) | Deal(一线灵) | 2023-06-01 | 2 | -3/+5 |
| | |||||
* | threads: do not use libdispatch where it is not present (#851) | Sergey Fedorov | 2023-05-28 | 2 | -2/+8 |
| | | | Fixes: https://github.com/kcat/openal-soft/issues/850 | ||||
* | Use [[maybe_unused]] instead of std::ignore | Chris Robinson | 2023-05-27 | 1 | -12/+5 |
| | |||||
* | Update and clarify a comment | Chris Robinson | 2023-05-26 | 1 | -4/+7 |
| | |||||
* | Be a bit more safe with type mangling | Chris Robinson | 2023-05-24 | 1 | -3/+4 |
| | |||||
* | Mark some global constexpr variables inline | Chris Robinson | 2023-05-07 | 1 | -8/+8 |
| | |||||
* | Use some more standard functions | Chris Robinson | 2023-05-05 | 2 | -74/+3 |
| | |||||
* | Use deduction guides instead of helper functions for spans | Chris Robinson | 2023-05-05 | 2 | -28/+22 |
| | |||||
* | Remove custom stuff for standard | Chris Robinson | 2023-05-04 | 3 | -56/+31 |
| | |||||
* | Use std::byte instead of a custom al::byte | Chris Robinson | 2023-05-04 | 3 | -80/+61 |
| | |||||
* | Make and use a bit_cast function | Chris Robinson | 2023-05-04 | 2 | -1/+13 |
| | | | | Instead of reinterpret_casting between incompatible types | ||||
* | Update ComPtr and use an out_ptr() function | Chris Robinson | 2023-05-04 | 1 | -26/+69 |
| | |||||
* | Replace al::optional with std::optional | Chris Robinson | 2023-05-04 | 3 | -25/+7 |
| | |||||
* | Use std::optional instead of a custom implementation | Chris Robinson | 2023-05-04 | 1 | -340/+4 |
| | |||||
* | Use a macro for when __has_cpp_attribute is unsupported | Chris Robinson | 2023-03-10 | 1 | -4/+10 |
| | | | | And the standard macro is __has_cpp_attribute, not __has_attribute. | ||||
* | Use macros for the likely/unlikely attributes | Chris Robinson | 2023-03-01 | 6 | -17/+28 |
| | | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places. | ||||
* | Remove a [[likely]] that confuses some versions of GCC | Chris Robinson | 2023-02-28 | 1 | -1/+1 |
| | |||||
* | Support IMA4 ADPCM as a mixing voice format | Chris Robinson | 2023-02-14 | 3 | -13/+30 |
| | |||||
* | Avoid using auto for lambda parameters | Chris Robinson | 2023-02-06 | 1 | -1/+1 |
| | |||||
* | Don't try to use std::pointer_traits::to_address | Chris Robinson | 2023-01-30 | 1 | -21/+2 |
| | |||||
* | Try to fix has_to_address | Chris Robinson | 2023-01-30 | 1 | -3/+7 |
| | |||||
* | Don't pass an unnecessarily large alignment to allocator::rebind | Chris Robinson | 2023-01-30 | 1 | -2/+4 |
| | |||||
* | Use std::pointer_traits::to_address when available | Chris Robinson | 2023-01-29 | 1 | -1/+16 |
| | |||||
* | Change the IS_VALID_CONTAINER macro to a constexpr bool | Chris Robinson | 2023-01-29 | 1 | -11/+11 |
| | |||||
* | Avoid using to_address on an end iterator | Chris Robinson | 2023-01-29 | 1 | -4/+3 |
| |