summaryrefslogtreecommitdiff
path: root/src/common
AgeCommit message (Collapse)Author
2019-03-16core: Move PageTable struct into Common.bunnei
2019-03-16Merge pull request #2129 from FernandoS27/cntpctbunnei
Correct CNTPCT from using CPU Cycles to using Clock Cycles
2019-03-10Merge pull request #2147 from ReinUsesLisp/texture-cleanbunnei
shader_ir: Remove "extras" from the MetaTexture
2019-03-07common/bit_field: Make BitField trivially copyableLioncash
This makes the class much more flexible and doesn't make performing copies with classes that contain a bitfield member a pain. Given BitField instances are only intended to be used within unions, the fact the full storage value would be copied isn't a big concern (only sizeof(union_type) would be copied anyways). While we're at it, provide defaulted move constructors for consistency.
2019-03-02logging/backend: Make time_origin a class variable instead of a local staticLioncash
Moves local global state into the Impl class itself and initializes it at the creation of the instance instead of in the function. This makes it nicer for weakly-ordered architectures, given the CreateEntry() class won't need to have atomic loads executed for each individual call to the CreateEntry class.
2019-03-02logging/backend: Move CreateEntry into the Impl classLioncash
This function is only ever used within this source file and makes it easier to remove static state in the following change.
2019-02-27common/math_util: Move contents into the Common namespaceLioncash
These types are within the common library, so they should be within the Common namespace.
2019-02-26common/vector_math: Move Vec[x] types into the Common namespaceLioncash
These types are within the common library, so they should be using the Common namespace.
2019-02-26common/quaternion: Move Quaternion into the Common namespaceLioncash
Quaternion is within the common library, so it should be using the Common namespace.
2019-02-26shader/decode: Split memory and texture instructions decodingReinUsesLisp
2019-02-24Remove GCC version checkstgsm
Citra can't be compiled using GCC <7 because of required C++17 support, so these version checks don't need to exist anymore.
2019-02-16Corrections, documenting and fixes.Fernando Sahmkow
2019-02-15Use u128 on Clock Cycles calculation.Fernando Sahmkow
2019-02-15Implement 128 bits Unsigned Integer Multiplication and Division.Fernando Sahmkow
2019-02-15Adressed review commentsB3n30
2019-02-15threadsafe_queue: Add WaitIfEmpty and use it in loggingB3n30
2019-02-14Merge pull request #2113 from ReinUsesLisp/vulkan-basebunnei
vulkan: Add dependencies and device abstraction
2019-02-12threadsafe_queue: Use std::size_t for representing sizeLioncash
Makes it consistent with the regular standard containers in terms of size representation. This also gets rid of dependence on our own type aliases, removing the need for an include.
2019-02-12threadsafe_queue: Remove NeedSize template parameterLioncash
The necessity of this parameter is dubious at best, and in 2019 probably offers completely negligible savings as opposed to just leaving this enabled. This removes it and simplifies the overall interface.
2019-02-12logging: Add Vulkan backend logging class typeReinUsesLisp
2019-02-06cmake: Fix title bar issueReinUsesLisp
2019-02-06cmake: Use CMAKE_COMMAND instead of "cmake"Frederic L
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-06gl_shader_disk_cache: Invalidate shader cache changes with CMake hashReinUsesLisp
2019-02-06file_util: Add shader directoryReinUsesLisp
2018-12-27Merge pull request #1928 from lioncash/capsbunnei
kernel: Handle kernel capability descriptors
2018-12-21common/quaternion: Ensure that w is always initializedLioncash
Previously xyz was always being zero initialized due to its constructor, but w wasn't. Ensures that we always have a deterministic initial state.
2018-12-21common: Add basic bit manipulation utility function to CommonLioncash
2018-12-15Merge pull request #1732 from DarkLordZach/yield-typesbunnei
svc: Implement yield types 0 and -1
2018-12-07Backport review comment from citra-emu/citra#4418Tobias
Original reason: As Windows multi-byte character codec is unspecified while we always assume std::string uses UTF-8 in our code base, this can output gibberish when the string contains non-ASCII characters. ::OutputDebugStringW combined with Common::UTF8ToUTF16W is preferred here.
2018-11-23Merge pull request #1773 from lioncash/threadbunnei
common/thread: Minor cleanup
2018-11-22common/thread: Drop Hungarian notation on SetCurrentThreadName's parameterLioncash
This is inconsistent with our coding style.
2018-11-22scheduler: Add explanations for YieldWith and WithoutLoadBalancingZach Hilman
2018-11-21common/thread: Make Barrier's 'count' member non-constLioncash
While admirable as a means to ensure immutability, this has the unfortunate downside of making the class non-movable. std::move cannot actually perform a move operation if the provided operand has const data members (std::move acts as an operation to "slide" resources out of an object instance). Given Barrier contains move-only types such as std::mutex, this can lead to confusing error messages if an object ever contained a Barrier instance and said object was attempted to be moved.
2018-11-21common/thread: Initialize class member variables where applicableLioncash
Simplifies the constructor interfaces for Barrier and Event classes.
2018-11-21common/thread: Group non-member functions togetherLioncash
Keeps the non-member interface in one spot instead of split into two places, making it nicer to locate functions.
2018-11-21common/thread: Remove SleepCurrentThread()Lioncash
This is also unused and superceded by standard functionality. The standard library provides std::this_thread::sleep_for(), which provides a much more flexible interface, as different time units can be used with it.
2018-11-21common/thread: Remove unused CurrentThreadId()Lioncash
This is an old function that's no longer necessary. C++11 introduced proper threading support to the language and a thread ID can be retrieved via std::this_thread::get_id() if it's ever needed.
2018-11-21common: Remove bit_set.hLioncash
This is an analog of BitSet from Dolphin that was introduced to allow iterating over a set of bits. Given it's currently unused, and given that std::bitset exists, we can remove this. If it's ever needed in the future it can be brought back.
2018-11-21Merge pull request #1758 from lioncash/rectbunnei
common/math_util: Minor cleanup
2018-11-21common: Remove dependency on xbyakLioncash
Xbyak is currently entirely unused. Rather than carting it along, remove it and get rid of a dependency. If it's ever needed in the future, then it can be re-added (and likely be more up to date at that point in time).
2018-11-21common/math_util: Simplify std::make_signed usages to std::make_signed_tLioncash
Gets rid of the need to use typename to access the ::type alias.
2018-11-21common/math_util: Make Rectangle's constructors constexprLioncash
Allows objects that contain rectangle instances to be constexpr constructible as well.
2018-11-21common/math_util: Remove unnecessary static from PILioncash
const/constexpr variables have internal linkage by default.
2018-11-21common/math_util: Remove unused IntervalsIntersect() functionLioncash
This hasn't been used since the project started, so we may as well get rid of it to keep it from bit rotting.
2018-11-20common/assert: Add UNIMPLEMENTED_IF and UNIMPLEMENTED_IF_MSG for conditional ↵Lioncash
assertions Currently, there's no way to specify if an assertion should conditionally occur due to unimplemented behavior. This is useful when something is only partially implemented (e.g. due to ongoing RE work). In particular, this would be useful within the graphics code. The rationale behind this is it allows a dev to disable unimplemented feature assertions (which can occur in an unrelated work area), while still enabling regular assertions, which act as behavior guards for conditions or states which must not occur. Previously, the only way a dev could temporarily disable asserts, was to disable the regular assertion macros, which has the downside of also disabling, well, the regular assertions which hold more sanitizing value, as opposed to unimplemented feature assertions.
2018-11-20common/assert: Make the UNIMPLEMENTED macro properly assertLioncash
Currently, this was only performing a logging call, which doesn't actually invoke any assertion behavior. This is unlike UNIMPLEMENTED_MSG, which *does* assert. This makes the expected behavior uniform across both macros.
2018-11-18svc: Implement yield types 0 and -1Zach Hilman
2018-11-18am: Deglobalize software keyboard appletZach Hilman
2018-11-18string_util: Implement buffer to UTF-16 string helper functionZach Hilman
Needed as most all software keyboard functions use fixed-length UTF16 string buffers.
2018-11-16Common/Bitfield: store value as unsigned typeWeiyi Wang
Storing signed type causes the following behaviour: extractValue can do overflow/negative left shift. Now it only relies on two implementation-defined behaviours (which are almost always defined as we want): unsigned->signed conversion and signed right shift