Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Clean up some more clang-tidy warnings | Chris Robinson | 2023-12-08 | 1 | -6/+6 |
| | |||||
* | Try to work around a compiler issue with HexPrinter | Chris Robinson | 2023-12-08 | 1 | -6/+7 |
| | |||||
* | Fix some clang-tidy warnings | Chris Robinson | 2023-12-08 | 1 | -13/+18 |
| | |||||
* | Use RAII to handle writing under the mixer seqlock | Chris Robinson | 2023-12-04 | 1 | -3/+3 |
| | |||||
* | Remove some unnecessary atomic wrappers | Chris Robinson | 2023-12-03 | 1 | -2/+3 |
| | |||||
* | Replace a global function with a member function | Chris Robinson | 2023-12-03 | 1 | -2/+2 |
| | |||||
* | Make a couple global values/variables inline | Chris Robinson | 2023-11-11 | 1 | -5/+3 |
| | |||||
* | Remove an unnecessary deque with a custom allocator | Chris Robinson | 2023-10-11 | 1 | -3/+3 |
| | |||||
* | Don't inline a couple more template functions | Chris Robinson | 2023-09-26 | 1 | -2/+2 |
| | | | | | I still wish I didn't have to force noinline just to avoid template functions being more aggressively inlined. | ||||
* | Avoid casting an integer literal | Chris Robinson | 2023-09-22 | 1 | -12/+17 |
| | |||||
* | Fix source span size | Chris Robinson | 2023-09-17 | 1 | -5/+5 |
| | |||||
* | Rename noinline to NOINLINE | Chris Robinson | 2023-09-17 | 1 | -2/+2 |
| | | | | To avoid clashes with compilers that use it as a keyword already | ||||
* | Don't inline some big functions | Chris Robinson | 2023-09-16 | 1 | -40/+32 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 | ||||
* | Use duration_cast to convert nanoseconds to seconds | Chris Robinson | 2023-09-16 | 1 | -9/+14 |
| | |||||
* | Add AL_EXT_debug functions to set/get object names | Chris Robinson | 2023-08-11 | 1 | -0/+14 |
| | |||||
* | Declare functions closer to where they're needed | Chris Robinson | 2023-07-26 | 1 | -40/+39 |
| | | | | | This provides better code locality when calling implicit context functions that call their direct context variants. | ||||
* | Fix some typos (#872) | Dirk Stolle | 2023-07-04 | 1 | -3/+3 |
| | |||||
* | Use cinttypes instead of inttypes.h in C++ | Chris Robinson | 2023-06-01 | 1 | -1/+1 |
| | |||||
* | Rename threads.cpp/h to alsem.cpp/h | Chris Robinson | 2023-06-01 | 1 | -1/+0 |
| | |||||
* | Make the API functions noexcept | Chris Robinson | 2023-05-22 | 1 | -15/+3 |
| | | | | | | | | | | | Only relevant for C++, but these functions can't throw as it's a C-based API. Letting the compiler know that helps improve code generation. Extension callbacks must also not let exceptions leave the callback, or else Bad Things can happen. The macro AL_DISABLE_NOEXCEPT may be defined before including the headers to not mark functions as noexcept, but this should only be done if the caller can't otherwise be fixed. | ||||
* | Fix linkage definitions | Chris Robinson | 2023-05-14 | 1 | -37/+37 |
| | |||||
* | Don't check for a null context in direct functions | Chris Robinson | 2023-05-14 | 1 | -115/+15 |
| | |||||
* | Implement direct functions for sources | Chris Robinson | 2023-05-14 | 1 | -277/+272 |
| | |||||
* | Avoid using al::vector unnecessarily | Chris Robinson | 2023-05-12 | 1 | -6/+7 |
| | |||||
* | Only check isfinite for floating point values | Chris Robinson | 2023-05-06 | 1 | -19/+28 |
| | |||||
* | Improve accuracy for the source offset and length queries | Chris Robinson | 2023-05-06 | 1 | -39/+63 |
| | |||||
* | Combine multiple functions into reusable templates | Chris Robinson | 2023-05-06 | 1 | -1139/+814 |
| | |||||
* | Clean up some temporary variable names | Chris Robinson | 2023-05-05 | 1 | -10/+3 |
| | |||||
* | Use some more standard functions | Chris Robinson | 2023-05-05 | 1 | -4/+4 |
| | |||||
* | Replace al::optional with std::optional | Chris Robinson | 2023-05-04 | 1 | -15/+15 |
| | |||||
* | Don't try to access null pointers | Chris Robinson | 2023-04-28 | 1 | -0/+3 |
| | |||||
* | Use std::transform to cast doubles to floats | Chris Robinson | 2023-04-27 | 1 | -2/+4 |
| | |||||
* | Make sure extension functions are properly aligned on 32-bit | Chris Robinson | 2023-04-12 | 1 | -2/+3 |
| | |||||
* | Allow using a negative offset with callback buffers | Chris Robinson | 2023-03-28 | 1 | -1/+4 |
| | |||||
* | Log the buffer format when queueing mismatched buffers | Chris Robinson | 2023-03-22 | 1 | -2/+6 |
| | |||||
* | Remove the separate UserFmt types | Chris Robinson | 2023-03-19 | 1 | -16/+3 |
| | | | | | All caller-usable formats are available as core formats now, so there's no reason to distinguish between them. | ||||
* | Simplify some samples-to-bytes conversions | Chris Robinson | 2023-03-19 | 1 | -40/+8 |
| | |||||
* | Add a compat option to restore AL_SOFT_buffer_sub_data | Chris Robinson | 2023-03-17 | 1 | -10/+134 |
| | |||||
* | Rename some member functions and variables for consistency | Chris Robinson | 2023-03-16 | 1 | -102/+102 |
| | |||||
* | Commit deferred EAX properties in alcProcessContext | Chris Robinson | 2023-03-16 | 1 | -15/+0 |
| | |||||
* | Fix the format check for queueing buffers | Chris Robinson | 2023-03-15 | 1 | -1/+1 |
| | |||||
* | Set a default version for EAX source properties | Chris Robinson | 2023-03-14 | 1 | -14/+15 |
| | |||||
* | Don't allow queueing a buffer with no format | Chris Robinson | 2023-03-12 | 1 | -10/+18 |
| | |||||
* | Don't commit EAX updates in applyAllUpdates | Chris Robinson | 2023-03-11 | 1 | -32/+9 |
| | | | | | | | | | | To avoid alcProcessContext causing deferred EAX properties to be committed. This simplifies updates when EAX has been initialized, but never or rarely used. Committing now always occurs in EAXSet when the property is non-deferred, updating the OpenAL object(s) with it (with OpenAL's updates then being applied based on the context's defer state). | ||||
* | Don't assume the max property size unchecked for user pointers | Chris Robinson | 2023-03-06 | 1 | -56/+193 |
| | |||||
* | Don't get the front element of an empty queue | Chris Robinson | 2023-03-05 | 1 | -1/+4 |
| | |||||
* | Report the current buffer ID of a streaming source | Chris Robinson | 2023-03-05 | 1 | -2/+13 |
| | | | | | | The AL_BUFFER query should only return the buffer that was set on a static source, but some apps used it to detect when a current buffer of a streaming source changed instead of AL_BUFFERS_PROCESSED. | ||||
* | Use macros for the likely/unlikely attributes | Chris Robinson | 2023-03-01 | 1 | -136/+136 |
| | | | | | The syntax parser for GCC 8 (and earlier?) fails when these attributes are in certain places. | ||||
* | Don't start with fading for negative offsets | Chris Robinson | 2023-02-18 | 1 | -2/+4 |
| | |||||
* | Track the callback buffer base separately | Chris Robinson | 2023-02-18 | 1 | -0/+1 |
| | | | | | Instead of recalculating it all the time, even for sources that don't use callback buffers. |