summaryrefslogtreecommitdiff
path: root/src/common
AgeCommit message (Collapse)Author
2019-03-22Merge pull request #2256 from bunnei/gpu-vmmbunnei
gpu: Rewrite MemoryManager based on the VMManager implementation.
2019-03-20common/bit_util: Fix bad merge duplicating the copy constructorLioncash
Introduced as a result of #2090, we already define the copy constructor further down below, so this isn't needed.
2019-03-20Merge pull request #2090 from FearlessTobi/port-4599bunnei
Port citra-emu/citra#4244 and citra-emu/citra#4599: Changes to BitField
2019-03-20common/uint128: Add missing header guardLioncash
2019-03-20common/uint128: Add missing top-file source textLioncash
2019-03-20gpu: Rewrite virtual memory manager using PageTable.bunnei
2019-03-20gpu: Move GPUVAddr definition to common_types.bunnei
2019-03-20common/CMakeLists: Amend boost dependencyLioncash
When #2247 was created, thread_queue_list.h was the only user of boost-related code, however #2252 moved the page table struct into common, which makes use of Boost.ICL, so we need to add the dependency to the common library's link interface again.
2019-03-20Merge pull request #2247 from lioncash/includebunnei
common/thread_queue_list: Remove unnecessary dependency on boost
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-16common/thread_queue_list: Remove unnecessary dependency on boostLioncash
We really don't need to pull in several headers of boost related machinery just to perform the erase-remove idiom (particularly with C++20 around the corner, which adds universal container std::erase and std::erase_if, which we can just use instead). With this, we don't need to link in anything boost-related into common.
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-13Make bitfield assignment operator publicfearlessTobi
This change needs to be made to get the code compiling again. It was suggested after a conversation with Lioncash. The conversation can be seen here: https://user-images.githubusercontent.com/20753089/45064197-b6107800-b0b2-11e8-9db8-f696299fb86a.PNG
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
2019-02-06common/bitfield: make it endianness-awareWeiyi Wang
2019-02-06common/swap: remove default value for swap type internal storageWeiyi Wang
This is compromise for swap type being used in union. A union has deleted default constructor if it has at least one variant member with non-trivial default constructor, and no variant member of T has a default member initializer. In the use case of Bitfield, all variant members will be the swap type on endianness mismatch, which would all have non-trivial default constructor if default value is specified, and non of them can have member initializer
2019-02-06common/swap: use template and tag for LE/BE specificationWeiyi Wang
The tag can be useful for other type-generic templates like BitFields to forward the endianness specification
2019-02-06common/swap: add swap template for enumWeiyi Wang
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.