Commit message (Collapse) | Author | Files | Lines | ||
---|---|---|---|---|---|
2022-07-15 | common_funcs: Mark padding as [[maybe_unused]] | Merry | 1 | -4/+6 | |
2022-07-10 | common: fix bitfield aliasing on GCC/Clang | Liam | 1 | -0/+9 | |
2022-07-02 | common/fiber: make fibers easier to use | Liam | 2 | -20/+8 | |
2022-06-30 | settings: Consolidate RangedSetting's with regular ones | lat9nq | 1 | -270/+182 | |
The latest git version of GCC has issues with my diamond inheritance shenanigans. Since that's now two compilers that don't like it I thought it'd be best to just axe all of it and just have the two templates like before. This rolls the features of BasicRangedSetting into BasicSetting, and likewise RangedSetting into Setting. It also renames them from BasicSetting and Setting to Setting and SwitchableSetting respectively. Now longer name corresponds to more complex thing. | |||||
2022-06-30 | Adress Feedback. | Fernando Sahmkow | 1 | -1/+0 | |
2022-06-28 | Native clock: Use atomic ops as before. | Fernando Sahmkow | 2 | -24/+29 | |
2022-06-28 | Native Clock: remove inaccuracy mask. | Fernando Sahmkow | 2 | -6/+1 | |
2022-06-28 | Core: Fix tests. | Fernando Sahmkow | 2 | -2/+2 | |
2022-06-28 | Core/Common: Corrections to core timing and add critical priority. | Fernando Sahmkow | 2 | -4/+10 | |
2022-06-28 | Common: improve native clock. | Fernando Sahmkow | 3 | -29/+29 | |
2022-06-16 | core/debugger: memory breakpoint support | Liam | 1 | -0/+3 | |
2022-06-16 | common: param_package: Demote DEBUG to TRACE for getters | Narr the Reg | 1 | -3/+3 | |
2022-06-15 | bounded_threadsafe_queue: Use constexpr capacity and mask | Morph | 1 | -86/+73 | |
While this is the primary change, we also: - Remove the mpsc namespace and rename Queue to MPSCQueue - Make Slot a private struct within MPSCQueue - Remove the AlignedAllocator template argument, as we use std::allocator - Replace instances of mask + 1 with capacity, and mask + 2 with capacity + 1 | |||||
2022-06-14 | common/assert: rework ASSERT handling to avoid std::function usage | Liam | 2 | -35/+20 | |
2022-06-14 | common/assert: add unlikely | Liam | 1 | -1/+1 | |
2022-06-14 | common: Don't test ASSERT conditions inline | Liam | 2 | -32/+36 | |
2022-06-14 | common: Change semantics of UNREACHABLE to unconditionally crash | Liam | 3 | -3/+18 | |
2022-06-14 | common: Eliminate variable shadowing | Morph | 1 | -2/+2 | |
GCC/Clang treats variables within lambdas as potentially shadowing those outside the lambda, despite them not being captured inside the lambda's capture list. | |||||
2022-06-05 | common: consolidate ELF structure definitions | Liam | 2 | -0/+334 | |
2022-06-03 | gpu_thread: Move to bounded queue | Levi Behunin | 1 | -0/+180 | |
2022-06-01 | core/debugger: Implement new GDB stub debugger | Liam | 2 | -1/+2 | |
2022-05-30 | settings: Set Vulkan to the default renderer backend | lat9nq | 1 | -1/+1 | |
2022-05-27 | path_util: Resolve `-Wpointer-bool-conversion` warning | lat9nq | 1 | -3/+1 | |
Clang (rightfully) warns that we are checking for the existence of pointer to something just allocated on the stack, which is always true. Instead, check whether GetModuleFileNameW failed. Co-authored-by: Mai M <mathew1800@gmail.com> | |||||
2022-05-23 | input_common: Make vibration request async | Narr the Reg | 1 | -0/+1 | |
2022-05-16 | string_util: Add U16StringFromBuffer | lat9nq | 2 | -0/+6 | |
Qt's QString::toStdU16String doesn't work when compiling against the latest libstdc++, at least when using Clang. This function effectively does the same thing as the aforementioned one. | |||||
2022-05-09 | VideoCore: Add option to dump the macros. | Fernando Sahmkow | 1 | -0/+1 | |
Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com> | |||||
2022-04-28 | GCC 12 fixes | Liam | 1 | -1/+1 | |
2022-04-28 | chore: add missing SPDX tags | Andrea Pappacoda | 19 | -172/+59 | |
Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52 | |||||
2022-04-23 | general: Convert source file copyright comments over to SPDX | Morph | 67 | -211/+136 | |
This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later. | |||||
2022-04-16 | yuzu: Add custom ringcon configuration | german77 | 2 | -0/+4 | |
2022-04-12 | hle: kernel: Use std::mutex instead of spin locks for most kernel locking. | bunnei | 1 | -2/+3 | |
2022-04-07 | common: Replace lock_guard with scoped_lock | Merry | 3 | -5/+5 | |
2022-04-07 | service: jit: stub JIT service | Liam | 2 | -0/+2 | |
2022-04-03 | native_clock: Internal linkage for FencedRDTSC | Merry | 1 | -2/+4 | |
__forceinline required on MSVC for function to be inlined | |||||
2022-04-03 | native_clock: Use lfence with rdtsc | merry | 1 | -14/+33 | |
2022-04-02 | native_clock: Use writeback from CAS to avoid double-loading | merry | 1 | -4/+6 | |
2022-04-02 | atomic_ops: Implement AtomicCompareAndSwap with writeback | merry | 1 | -0/+73 | |
2022-04-02 | native_clock: Use AtomicLoad128 | Merry | 1 | -2/+2 | |
2022-04-02 | atomic_ops: Implement AtomicLoad128 | Merry | 1 | -0/+17 | |
2022-03-26 | configuration: Add Paranoid CPU accuracy level | merry | 1 | -1/+2 | |
Disables most optimizations for the paranoid. | |||||
2022-03-25 | hle: nvflinger: Merge Rect with Common::Rectangle. | bunnei | 1 | -5/+45 | |
2022-03-25 | common: logging: Add a logger for NVFlinger. | bunnei | 2 | -0/+2 | |
2022-03-20 | general: Fix clang/gcc build errors | ameerj | 7 | -0/+9 | |
2022-03-19 | common: Reduce unused includes | ameerj | 25 | -32/+1 | |
2022-03-19 | common: Reduce unused includes | ameerj | 8 | -12/+0 | |
2022-03-15 | common: tree: Various updates. | bunnei | 1 | -284/+341 | |
2022-03-15 | common: intrusive_red_black_tree: Various updates. | bunnei | 1 | -181/+210 | |
2022-03-11 | cpu_detect: Add additional x86 flags and telemetry | Wunkolo | 3 | -27/+84 | |
Adds detection of additional CPU flags to cpu_detect and additions to telemetry output. This is not exhaustive but guided by features that [dynarmic utilizes](https://github.com/merryhime/dynarmic/blob/bcfe377aaa5138af740e90af5be7a7dff7b62a52/src/dynarmic/backend/x64/host_feature.h#L12-L33) as well as features that are currently utilized but not reported to telemetry(invariant_tsc). This is intended to guide future optimizations. AVX512 in particular is broken up into its individual subsets and some other processor features such as [sha](https://en.wikipedia.org/wiki/Intel_SHA_extensions) and [gfni](https://en.wikipedia.org/wiki/AVX-512#GFNI) are added to have some forward-facing data-points. What used to be a single `CPU_Extension_x64_AVX512` telemetry field is also broken up into individual `CPU_Extension_x64_AVX512{F,VL,CD,...}` fields. | |||||
2022-03-11 | common/telemetry: Update `AddField` name type to `string_view` | Wunkolo | 1 | -3/+4 | |
Non-owning `string_view` is flexable and avoids some of the many redundant copies made over `std::string` | |||||
2022-03-10 | backend: Ensure backend_thread is destructed before message_queue | Merry | 1 | -1/+1 | |
Ensures that stop_token signals that stop has been requested before destruction of conditional_variable | |||||
2022-03-10 | cpu_detect: Revert `__cpuid{ex}` array-type argument | Wunkolo | 1 | -6/+6 | |
Restores compatibility with MSVC's `__cpuid` intrinsic. | |||||
2022-03-09 | cpu_detect: Add missing `lzcnt` detection | Wunkolo | 1 | -0/+1 | |
2022-03-09 | cpu_detect: Refactor cpu/manufacturer identification | Wunkolo | 2 | -24/+38 | |
Set the zero-enum value to Unknown Move the Manufacterer enum into the CPUCaps structure namespace Add "ParseManufacturer" utility-function Fix cpu/brand string buffer sizes(!) | |||||
2022-03-09 | cpu_detect: Update array-types to `span` and `array` | Wunkolo | 1 | -11/+13 | |
Update some uses of `int` into some more explicitly sized types as well | |||||
2022-03-09 | cpu_detect: Utilize `Bit<N>` utility function | Wunkolo | 1 | -32/+20 | |
2022-03-09 | cpu_detect: Compact capability fields | Wunkolo | 1 | -20/+21 | |
As this structure gets more explicit, bools can be bitfields and small enums can use smaller types for their span of values. | |||||
2022-03-09 | bit_util: Add `bit` utility function | Wunkolo | 1 | -0/+7 | |
Extracts a singular bit, as a bool, from the specified compile-time index. | |||||
2022-03-03 | host_memory: Fix fastmem crashes in debug builds | Morph | 1 | -2/+2 | |
It is possible for virtual_offset to not be 0 when the iterator is at the beginning, and thus, std::prev(it) may be evaluated, leading to a crash in debug mode. Co-Authored-By: Fernando S. <1731197+FernandoS27@users.noreply.github.com> | |||||
2022-02-28 | logging: Convert `backend_thread` into an `std::jthread` | Wunkolo | 1 | -13/+5 | |
Was getting an unhandled `invalid_argument` [exception](https://en.cppreference.com/w/cpp/thread/thread/join) during shutdown on my linux machine. This removes the need for a `StopBackendThread` function entirely since `jthread` [automatically handles both checking if the thread is joinable and stopping the token before attempting to join](https://en.cppreference.com/w/cpp/thread/jthread/~jthread) in the case that `StartBackendThread` was never called. | |||||
2022-02-27 | dynarmic: Inline exclusive memory accesses | merry | 2 | -0/+4 | |
Inlines implementation of exclusive instructions into JITted code, improving performance of applications relying heavily on these instructions. We also fastmem these instructions for additional speed, with support for appropriate recompilation on fastmem failure. An unsafe optimization to disable the intercore global_monitor is also provided, should one wish to rely solely on cmpxchg semantics for safety. See also: merryhime/dynarmic#664 | |||||
2022-02-21 | settings: Add a new "use_extended_memory_layout" setting. | bunnei | 2 | -0/+2 | |
- This will be used to enable emulation of a larger memory arrangement. | |||||
2022-02-19 | fixup! core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory. | bunnei | 2 | -16/+16 | |
2022-02-19 | core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory. | bunnei | 2 | -6/+76 | |
- Improves the implementations of MapPhysicalMemory and UnmapPhysicalMemory to more closely reflect latest HOS. | |||||
2022-02-17 | common: Add NullVisitor default constructor | Wunkolo | 1 | -0/+3 | |
Addresses https://github.com/yuzu-emu/yuzu/issues/7881 to fix linux builds. `YUZU_NON_COPYABLE` deletes the `T(const T&)` constructor which will cause the implicitly defined default ctor/dtor to no-longer generate. | |||||
2022-02-14 | common: fs_util: Add buffer to string view utility functions | Morph | 2 | -0/+26 | |
These functions allow to construct a string view from an input buffer, avoiding the copy done by the non string view counterparts. However, callers must be cognizant of the viewed buffer's lifetime to avoid a use-after-free. | |||||
2022-02-11 | service/mnpp: Stub mnpp_app | Narr the Reg | 2 | -0/+2 | |
Used in Super Nintendo Entertainment System™ - Nintendo Switch Online | |||||
2022-02-10 | common: uuid: Use sizeof(u64) instead of 8 in Hash() | Morph | 1 | -5/+5 | |
2022-02-05 | common: uuid: Return an invalid UUID if conversion from string fails | Morph | 1 | -14/+39 | |
The string constructor of UUID states: Should the input string not meet the above requirements, an assert will be triggered and an invalid UUID is set instead. | |||||
2022-02-05 | general: Rename NewUUID to UUID, and remove the previous UUID impl | Morph | 6 | -434/+256 | |
This completes the removal of the old UUID implementation. | |||||
2022-02-05 | common: uuid: Add AsU128() | Morph | 2 | -0/+9 | |
This copies the internal bytes of the UUID into a u128 for backwards compatibility. This should not be used. | |||||
2022-02-05 | input/hid: Migrate to the new UUID implementation | Morph | 1 | -4/+4 | |
2022-02-05 | common: Implement NewUUID | Morph | 3 | -0/+322 | |
This is a fixed and revised implementation of UUID that uses an array of bytes as its internal representation of a UUID instead of a u128 (which was an array of 2 u64s). In addition to this, the generation of RFC 4122 Version 4 compliant UUIDs is also implemented. | |||||
2022-02-02 | common_types: Remove NonCopyable struct | Lioncash | 1 | -10/+0 | |
Now that we're moved over to the YUZU_ defines, we can get rid of this struct. | |||||
2022-02-02 | general: Replace NonCopyable struct with equivalents | Lioncash | 1 | -9/+17 | |
2022-02-01 | common/file: Remove [[nodiscard]] from Open() | Lioncash | 1 | -3/+2 | |
Since this has a void return value, there's nothing that can actually be used. | |||||
2022-01-30 | common: wall_clock: Check precision against the emulated CPU and CNTFRQ | Morph | 2 | -8/+12 | |
In addition to requiring nanosecond precision, using the native clock requires that the hardware TSC has a precision greater than the emulated CPU and its clock counter. | |||||
2022-01-30 | common: wall_clock: Utilize constants for ms, us, and ns ratios | Morph | 3 | -5/+9 | |
2022-01-30 | input_common: Add home and hard touch press buttons to UDP controllers | german77 | 1 | -0/+2 | |
2022-01-28 | wall_clock: use standard wall clock if rtsc frequency is too low | german77 | 1 | -1/+3 | |
2022-01-26 | common/xbyak_api: Make BuildRegSet() constexpr | Lioncash | 1 | -8/+8 | |
This allows us to eliminate any static constructors that would have been emitted due to the function not being constexpr. | |||||
2022-01-24 | yuzu: Add setting to disable controller navigation | german77 | 1 | -0/+1 | |
2022-01-17 | input_common: Reintroduce motion from mouse and use button names | german77 | 1 | -0/+7 | |
2022-01-15 | common: fiber: YieldTo: Avoid hard crash on nullptr previous_fiber. | bunnei | 1 | -1/+4 | |
- When the emulator crashes to desktop below, we don't even get this captured in a log, making such issues harder to debug. | |||||
2022-01-11 | common: bit_util: Add IsPow2 helper function | Morph | 1 | -0/+6 | |
Makes use of std::has_single_bit() to check whether the value is a power of 2. | |||||
2022-01-10 | logging/log.h: move enum class formatter to a separate file ... | liushuyu | 3 | -15/+25 | |
... to common/logging/formatter.h | |||||
2022-01-09 | logging/log: use `underlying_type` instead of hardcoding types | liushuyu | 1 | -2/+4 | |
2022-01-08 | logging: adapt to changes in fmt 8.1 | liushuyu | 1 | -1/+14 | |
2022-01-04 | ShaderDecompiler: Add a debug option to dump the game's shaders. | Fernando Sahmkow | 1 | -0/+1 | |
2021-12-21 | Allow overriding SCM version info | Andrew Udvare | 1 | -0/+5 | |
If the build is from a non-repository, these functions will return empty. This patch allows using defines to CMake to set version info such as -DGIT_BRANCH=master. | |||||
2021-12-14 | common/input: Avoid numerous large copies of CallbackStatus | Lioncash | 1 | -2/+2 | |
CallbackStatus instances aren't the cheapest things to copy around (relative to everything else), given that they're currently 520 bytes in size and are currently copied numerous times when callbacks are invoked. Instead, we can pass the status by const reference to avoid all the copying. | |||||
2021-12-14 | common/cpu_detect: Remove CPU family and model | Morph | 1 | -12/+0 | |
We currently do not make use of these fields, remove them for now. | |||||
2021-12-14 | common/input: Remove unnecessary returns | Lioncash | 1 | -6/+2 | |
Given these return void, these can be omitted. | |||||
2021-12-13 | input_engine: Pass LedStatus by const reference | Lioncash | 1 | -1/+1 | |
Avoids copies where reasonably applicable | |||||
2021-12-13 | input_engine: Pass VibrationStatus by const reference in SetRumble() | Lioncash | 1 | -4/+2 | |
Avoids creating copies of the struct where not necessary. | |||||
2021-12-06 | service/notif: Add notif:a and stub ListAlarmSettings,Initialize | german77 | 2 | -0/+2 | |
Used by ring fit adventure 1.2.0 | |||||
2021-12-05 | general: Add missing copyright notices | ameerj | 1 | -0/+4 | |
2021-12-04 | native_clock: Wait for less time in EstimateRDTSCFrequency | Morph | 1 | -18/+18 | |
In my testing, waiting for 200ms provided the same level of precision as the previous implementation when estimating the RDTSC frequency. This significantly improves the yuzu executable launch times since we reduced the wait time from 3 seconds to 200 milliseconds. | |||||
2021-12-02 | general: Replace high_resolution_clock with steady_clock | Morph | 1 | -3/+3 | |
On some OSes, high_resolution_clock is an alias to system_clock and is not monotonic in nature. Replace this with steady_clock. | |||||
2021-11-28 | settings: Add debug setting to enable all controllers | german77 | 2 | -0/+6 | |
2021-11-27 | config: Remove vibration configuration | german77 | 1 | -2/+0 | |
2021-11-26 | input_common: Fully implement UDP controllers | Narr the Reg | 2 | -0/+15 | |
2021-11-25 | input_common: Move button names to the frontend | german77 | 1 | -0/+22 | |
2021-11-25 | core/hid: Fully implement native mouse | german77 | 2 | -5/+11 | |
2021-11-25 | input_common: Allow keyboard to be backwards compatible | german77 | 1 | -2/+0 | |
2021-11-25 | core/hid: Improve accuracy of the keyboard implementation | german77 | 1 | -12/+23 | |
2021-11-25 | config: Cleanup and documentation | german77 | 2 | -6/+31 | |
2021-11-25 | core/hid: Prevent Emulated controller from flapping with multiple inputs devices | german77 | 1 | -0/+4 | |
2021-11-25 | core/hid: Fully emulate motion from button | german77 | 1 | -0/+5 | |
2021-11-25 | second commit lion review | german77 | 1 | -1/+1 | |
2021-11-25 | settings: Fix Debug controller type options | german77 | 1 | -2/+2 | |
2021-11-25 | kraken: Address comments from review | german77 | 2 | -3/+2 | |
start lion review | |||||
2021-11-25 | core/hid: Add TAS input | german77 | 1 | -1/+0 | |
2021-11-25 | input_common: Add manual update options to input devices | german77 | 1 | -0/+10 | |
2021-11-25 | core/hid: Fix rumble too strong at 1% | german77 | 1 | -0/+7 | |
2021-11-25 | core/hid: Only signal when needed | german77 | 1 | -0/+1 | |
2021-11-25 | core/hid: Add output devices | german77 | 1 | -0/+39 | |
2021-11-25 | settings: Cleanup settings | german77 | 2 | -4/+12 | |
2021-11-25 | common: Rewrite and move core/frontend/input.h to common | german77 | 2 | -0/+243 | |
2021-11-21 | configure_general: Allow framerate cap to be used in custom game configs | Kewlan | 2 | -1/+2 | |
2021-11-20 | TextureCache: Refactor and fix linux compiling. | Fernando Sahmkow | 1 | -0/+7 | |
2021-11-16 | TextureCache: Add automatic anisotropic filtering and refactor code. | Fernando Sahmkow | 1 | -1/+1 | |
2021-11-16 | Yuzu UI: Add button for Anti Alias | Fernando Sahmkow | 1 | -0/+1 | |
2021-11-16 | Settings: Add anti-aliasing method setting | Marshall Mohror | 2 | -0/+7 | |
2021-11-16 | QtGUI: Add buttton to toggle the filter. | FernandoS27 | 1 | -0/+1 | |
2021-11-16 | VideoCore: Add gaussian filtering. | FernandoS27 | 1 | -2/+3 | |
2021-11-16 | VideoCore: Add more rescaling option. | FernandoS27 | 2 | -4/+20 | |
2021-11-16 | Video Core: fix building for GCC. | Fernando Sahmkow | 1 | -2/+2 | |
2021-11-16 | Presentation: add Nearest Neighbor filter. | Fernando Sahmkow | 1 | -4/+5 | |
2021-11-16 | vulkan: Implement FidelityFX Super Resolution | Marshall Mohror | 1 | -0/+1 | |
2021-11-16 | Texture Cahe: Fix downscaling on SMO. | Fernando Sahmkow | 2 | -0/+3 | |
2021-11-16 | video_core: Refactor resolution scale function | ameerj | 1 | -0/+14 | |
2021-11-16 | video_core: Misc resolution scaling related refactoring | ameerj | 1 | -1/+1 | |
2021-11-16 | Renderer: Implement Bicubic and ScaleForce filters. | Fernando Sahmkow | 2 | -15/+12 | |
2021-11-16 | common/settings: Remove unused scaling options | ReinUsesLisp | 2 | -18/+7 | |
2021-11-16 | Settings: eliminate rescaling_factor. | Fernando Sahmkow | 2 | -2/+2 | |
2021-11-16 | Settings: Add resolution scaling to settings. | Fernando Sahmkow | 2 | -4/+60 | |
2021-11-16 | VideoCore: Initial Setup for the Resolution Scaler. | Fernando Sahmkow | 2 | -0/+19 | |
2021-11-02 | common: Implement a subset of P0323 (std::expected) | Morph | 2 | -0/+988 | |
This implementation is based on and is a subset of the proposed implementation of std::expected https://github.com/TartanLlama/expected/blob/master/include/tl/expected.hpp | |||||
2021-11-02 | Refactor Logging Impl | Levi Behunin | 3 | -28/+39 | |
Loop on stop_token and remove final_entry in Entry. Move Backend thread out of Impl Constructor to its own function. Add Start function for backend thread. Use stop token in PopWait and check if entry filename is nullptr before logging. | |||||
2021-10-20 | common/alignment: Fix VS2022 compilation | ameerj | 1 | -1/+6 | |
VS2022 seems to introduce an optimization when moving vectors to check for equality of the element values. AlignmentAllocator needed to overload the equality operator to fix compilation of its usage in vector moving. | |||||
2021-10-17 | settings: Remove std::chrono usage | ameerj | 1 | -3/+2 | |
Alleviates the dependency on chrono for all files that include settings.h | |||||
2021-10-14 | string_util: Make use of std::string_view and add bounds checking | Morph | 2 | -5/+5 | |
Makes use of std::string_view in StringFromFixedZeroTerminatedBuffer and add bounds checking | |||||
2021-10-14 | string_util: Prevent out of bounds access in u16string_view buffer | Morph | 1 | -2/+2 | |
2021-10-12 | common/fs/path_util: Slightly refactor PathManagerImpl's constructor | Creak | 1 | -12/+15 | |
This moves all GenerateYuzuPath calls outside of the platofrm-specific #ifdefs, replacing them with assignments to paths. | |||||
2021-10-02 | common/logging: Reduce scope of fmt include | ameerj | 2 | -1/+2 | |
2021-10-02 | common/logging: Move Log::Entry declaration to a separate header | ameerj | 6 | -17/+37 | |
This reduces the load of requiring to include std::chrono in all files which include log.h | |||||
2021-09-29 | Fixed invalid iterator usage | Andrew Strelsky | 1 | -1/+1 | |
2021-09-29 | settings: Remove BCAT settings | Morph | 2 | -4/+0 | |
2021-09-24 | general: Update style to clang-format-12 | ameerj | 4 | -22/+28 | |
2021-09-22 | common/uuid: Add validity checking functions to interface | Lioncash | 1 | -0/+7 | |
Given we have a function to invalidate, we should also have ones to query the validity. Also makes the code more straightforward to read. | |||||
2021-09-18 | input_common/tas: Document the main class | german77 | 1 | -7/+4 | |
2021-09-18 | input_common/tas: Add swap controller | german77 | 1 | -1/+1 | |
2021-09-18 | input_common/tas: Fallback to simple update | MonsterDruide1 | 1 | -4/+3 | |
2021-09-18 | config: Move TAS options to it's own menu | german77 | 3 | -4/+3 | |
2021-09-18 | core: Hacky TAS syncing & load pausing | MonsterDruide1 | 3 | -7/+6 | |
To keep the TAS inputs synced to the game speed even through lag spikes and loading zones, deeper access is required. First, the `TAS::UpdateThread` has to be executed exactly once per frame. This is done by connecting it to the service method the game calls to pass parameters to the GPU: `Service::VI::QueueBuffer`. Second, the loading time of new subareas and/or kingdoms (SMO) can vary. To counteract that, the `CPU_BOOST_MODE` can be detected: In the `APM`-interface, the call to enabling/disabling the boost mode can be caught and forwarded to the TASing system, which can pause the script execution if neccessary and enabled in the settings. | |||||
2021-09-18 | settings: File selector & other settings | MonsterDruide1 | 3 | -0/+7 | |
First of all, TASing requires a script to play back. The user can select the parent directory at `System -> Filesystem`, next to an option to pause TAS during loads: This requires a "hacky" setup deeper in the code and will be added in the last commit. Also, Hotkeys are being introduced: CTRL+F5 for playback start/stop, CTRL+F6 for re-reading the script and CTRL+F7 for recording a new script. | |||||
2021-09-18 | input_common/tas: Base playback & recording system | MonsterDruide1 | 1 | -0/+7 | |
The base playback system supports up to 8 controllers (specified by `PLAYER_NUMBER` in `tas_input.h`), which all change their inputs simulataneously when `TAS::UpdateThread` is called. The recording system uses the controller debugger to read the state of the first controller and forwards that data to the TASing system for recording. Currently, this process sadly is not frame-perfect and pixel-accurate. Co-authored-by: Naii-the-Baf <sfabian200@gmail.com> Co-authored-by: Narr-the-Reg <juangerman-13@hotmail.com> | |||||
2021-09-16 | fix_accidental_deletion | Moonlacer | 1 | -1/+2 | |
2021-09-16 | remove-audio-stretching-setting | Moonlacer | 2 | -5/+1 | |
2021-09-16 | threadsafe_queue: Add std::stop_token overload to PopWait | ameerj | 1 | -5/+22 | |
Useful for jthreads which make use of the threadsafe queues. | |||||
2021-09-13 | common_funcs: Add enum flag bitwise shift operator overloads | Morph | 1 | -0/+16 | |
This adds bitwise shift operator overloads (<<, >>, <<=, >>=) in the macro DECLARE_ENUM_FLAG_OPERATORS(type) | |||||
2021-09-11 | common_funcs: Replace <algorithm> with <iterator> | Morph | 1 | -1/+1 | |
2021-09-11 | common: Move error handling to error.cpp/h | Morph | 5 | -16/+31 | |
This allows us to avoid implicitly including <string> every time common_funcs.h is included. | |||||
2021-09-10 | input_common: Enable steam controllers and 8 player support | german77 | 2 | -3/+6 | |
2021-09-02 | common/logging: Add missing include | german77 | 1 | -0/+1 | |
2021-08-29 | Garbage Collection: Adress Feedback. | Fernando Sahmkow | 1 | -12/+11 | |
2021-08-28 | Garbage Collection: enable as default, eliminate option. | Fernando Sahmkow | 2 | -3/+0 | |
2021-08-28 | VideoCore: Rework Garbage Collection. | Fernando Sahmkow | 1 | -0/+141 | |
2021-08-27 | ngct: Stub NGCT:U service | german77 | 2 | -0/+2 | |
2021-08-27 | Revert "logging: Display backtrace on crash" | Morph | 2 | -114/+1 | |
2021-08-24 | logging: Fix log filter during initialization | ameerj | 1 | -4/+5 | |
The log filter was being ignored on initialization due to the logging instance being initialized before the config instance, so the log filter was set to its default value. This fixes that oversight, along with using descriptive exceptions instead of abort() calls. | |||||
2021-08-21 | settings: Amend language_index maximum setting range | Morph | 1 | -1/+1 | |
The maximum is now 17 with the addition of Brazilian Portuguese | |||||
2021-08-16 | configure_graphics: Add GPU nvdec decoding as an option | ameerj | 2 | -3/+9 | |
Some system configurations may see visual regressions or lower performance using GPU decoding compared to CPU decoding. This setting provides the option for users to specify their decoding preference. Co-Authored-By: yzct12345 <87620833+yzct12345@users.noreply.github.com> | |||||
2021-08-15 | xbyak: Update include path | Merry | 2 | -2/+2 | |
2021-08-13 | threadsafe_queue: Fix deadlock | yzct12345 | 1 | -6/+4 | |
This fixes a lost wakeup in SPSCQueue. If the reader is in just the right position, the writer's notification will be lost and this will be a problem if the writer then does something to wait on the reader. This was discovered to affect my upcoming stacktrace PR. I don't think any performance decrease will be noticeable because an uncontended mutex is smart enough to skip the syscall. This PR might also resolve some rare deadlocks but I don't know of any examples. | |||||
2021-08-13 | logging: Display backtrace on crash | yzct12345 | 2 | -1/+114 | |
This implements backtraces so we don't have to tell users how to use gdb anymore. This prints a backtrace after abort or segfault is detected. It also fixes the log getting cut off with the last line containing only a bracket. This change lets us know what caused a crash not just what happened the few seconds before it. I only know how to add support for Linux with GCC. Also this doesn't work outside of C/C++ such as in dynarmic or certain parts of graphics drivers. The good thing is that it'll try and just crash again but the stack frames are still there so the core dump will work just like before. | |||||
2021-08-13 | logging: Simplify and make thread-safe | yzct12345 | 2 | -245/+218 | |
This simplifies the logging system. This also fixes some lost messages on startup. The simplification is simple. I removed unused functions and moved most things in the .h to the .cpp. I replaced the unnecessary linked list with its contents laid out as three member variables. Anything that went through the linked list now directly accesses the backends. Generic functions are replaced with those for each specific use case and there aren't many. This change increases coupling but we gain back more KISS and encapsulation. With those changes it was easy to make it thread-safe. I just removed the mutex and turned a boolean atomic. I was planning to use this thread-safety in my next PR about stacktraces. It was actually async-signal-safety at first but I ended up using a different approach. Anyway getting rid of the linked list is important for that because have the list of backends constantly changing complicates things. | |||||
2021-08-12 | configuration: add option to select network interface | spholz | 1 | -1/+2 | |
This commit renames the "Services" tab to "Network" and adds a combobox that allows the user to select the network interface that yuzu should use. This new setting is now used to get the local IP address in Network::GetHostIPv4Address. This prevents yuzu from selecting the wrong network interface and thus using the wrong IP address. The return type of Network::GetHostIPv4Adress has also been changed. | |||||
2021-08-11 | settings: Fix MSVC issues | lat9nq | 1 | -7/+22 | |
According to https://stackoverflow.com/questions/469508, we run into a MSVC bug (since VS 2005) when using diamond inheritance for RangedSetting. This explicitly implements those functions in RangedSetting. GetValue is implemented as just calling the inherited version. The explicit converson operator is reimplemented. I opted for this over ignoring the warning with a pragma since this specifies the inherited behavior, and I have now less faith in MSVC to pick the right one. In addition, we mark destructors as virtual to silence what I believe is a fair MSVC compilation error. | |||||
2021-08-06 | common: uuid: Add hash function for UUID | Morph | 1 | -0/+11 | |
Used when UUID is a key in an unordered_map. The hash is produced by XORing the high and low 64-bits of the UUID together. | |||||
2021-08-05 | assert: Verify formatting | yzct12345 | 1 | -2/+6 | |
2021-08-05 | assert: Avoid empty macros | yzct12345 | 1 | -2/+2 | |
2021-08-05 | hex_util: Fix incorrect array size in AsArray | Morph | 1 | -1/+1 | |
Although this isn't used, this is a potential bug as HexStringToArray will perform an out-of-bounds read. | |||||
2021-08-04 | common: uuid: Add hex string to UUID constructor | Morph | 2 | -0/+73 | |
This allows for easily converting a hex string into a Common::UUID, which is backed by a 128 bit unsigned integer. | |||||
2021-07-31 | settings: Use std::clamp where possible | lat9nq | 1 | -39/+9 | |
Addresses PR review Co-authored-by: PixelyIon <pixelyion@protonmail.com> | |||||
2021-07-31 | settings: Remove unnecessary std::move usages | lat9nq | 1 | -12/+12 | |
Addresses review feedback. Co-authored-by: Mai M. <mathew1800@gmail.com> | |||||
2021-07-30 | settings: Fix function virtualization | lat9nq | 1 | -12/+18 | |
Fixes a theoretical scenario where a Setting is using the BasicSetting's GetValue function. In practice this probably only happens on yuzu-cmd, where there is no need for a Setting's additional features. Need to fix regardless. | |||||
2021-07-30 | settings: Implement setting ranges | lat9nq | 1 | -18/+152 | |
Clamps the setting's values against the specified minimum and maximum values. | |||||
2021-07-28 | renderer_vulkan: Add setting to log pipeline statistics | ReinUsesLisp | 1 | -0/+1 | |
Use VK_KHR_pipeline_executable_properties when enabled and available to log statistics about the pipeline cache in a game. For example, this is on Turing GPUs when generating a pipeline cache from Super Smash Bros. Ultimate: Average pipeline statistics ========================================== Code size: 6433.167 Register count: 32.939 More advanced results could be presented, at the moment it's just an average of all 3D and compute pipelines. | |||||
2021-07-27 | host_memory: Add workaround for FreeBSD 12 | Jan Beich | 1 | -0/+5 | |
src/common/host_memory.cpp:360:14: error: use of undeclared identifier 'memfd_create' fd = memfd_create("HostMemory", 0); ^ | |||||
2021-07-27 | host_memory: Enable Linux implementation on FreeBSD | Jan Beich | 1 | -2/+2 | |
HW.Memory <Critical> common/host_memory.cpp:HostMemory:492: Fastmem unavailable, falling back to VirtualBuffer for memory allocation | |||||
2021-07-27 | common: fs: fs_util: Add BufferToUTF8String | Morph | 2 | -0/+15 | |
Allows for direct conversion to std::string without having to convert std::u8string to std::string | |||||
2021-07-27 | common: uuid: Return a lower-case hex string in Format | Morph | 1 | -1/+1 | |
2021-07-24 | general: Rename "Frame Limit" references to "Speed Limit" | ameerj | 2 | -6/+6 | |
This setting is best referred to as a speed limit, as it involves the limits of all timing based aspects of the emulator, not only framerate. This allows us to differentiate it from the fps unlocker setting. | |||||
2021-07-24 | config, nvflinger: Add FPS cap setting | ameerj | 1 | -0/+1 | |
Allows finer tuning of the FPS limit. | |||||
2021-07-23 | general: Implement FullscreenMode enumeration | lat9nq | 1 | -3/+8 | |
Prevents us from using an unclear 0 or 1 to describe the fullscreen mode. | |||||
2021-07-23 | common: Publically link to pthreads | lat9nq | 1 | -1/+1 | |
Common requires pthreads but does not refer to it when linking to other modules. Fix this by linking to Threads where necessary. | |||||
2021-07-23 | cmake: Remove shader cache version | ReinUsesLisp | 2 | -11/+1 | |
2021-07-23 | general: Add setting shader_backend | lat9nq | 2 | -3/+9 | |
GLASM is getting good enough that we can move it out of advanced graphics settings. This removes the setting `use_assembly_shaders`, opting for a enum class `shader_backend`. This comes with the benefits that it is extensible for additional shader backends besides GLSL and GLASM, and this will work better with a QComboBox. Qt removes the related assembly shader setting from the Advanced Graphics section and places it as a new QComboBox in the API Settings group. This will replace the Vulkan device selector when OpenGL is selected. Additionally, mark all of the custom anisotropic filtering settings as "WILL BREAK THINGS", as that is the case with a select few games. | |||||
2021-07-23 | shader: Add logging | ReinUsesLisp | 2 | -0/+8 | |
2021-07-23 | shader: Add shader loop safety check settings | lat9nq | 1 | -0/+3 | |
Also add a setting for enable Nsight Aftermath. | |||||
2021-07-23 | shader_recompiler,video_core: Cleanup some GCC and Clang errors | lat9nq | 1 | -0/+1 | |
Mostly fixing unused *, implicit conversion, braced scalar init, fpermissive, and some others. Some Clang errors likely remain in video_core, and std::ranges is still a pertinent issue in shader_recompiler shader_recompiler: cmake: Force bracket depth to 1024 on Clang Increases the maximum fold expression depth thread_worker: Include condition_variable Don't use list initializers in control flow Co-authored-by: ReinUsesLisp <reinuseslisp@airmail.cc> | |||||
2021-07-23 | shader: Remove old shader management | ReinUsesLisp | 1 | -55/+1 | |
2021-07-23 | thread_worker: Fix compile time error | ameerj | 1 | -1/+1 | |
state is unused in the branch where with_state is false | |||||
2021-07-20 | uuid: Directly compare UUID instead of checking per element | Chloe Marcec | 1 | -3/+2 | |
We can now update this for C++20 | |||||
2021-07-17 | input_common: Fix mouse panning behaivour | german77 | 1 | -1/+1 | |
2021-07-10 | settings: Disable FPS unlimit setting between title launches | ameerj | 1 | -1/+1 | |
Some titles crash if the FPS limit is disabled when launching. This change ensures that titles launch with the limit in-place to avoid issues. In order to simplify the change, the UI toggle was removed as it will always be overridden at launch to be disabled. The setting can still be toggled during gameplay with the hotkey, and indicated by the fps label in the status bar. | |||||
2021-07-09 | configure_input: Use u8 for mouse sensitivity | ameerj | 1 | -1/+1 | |
2021-07-09 | configure_graphics: Use u8 for bg_color values | ameerj | 1 | -3/+3 | |
2021-07-09 | configure_audio: Use u8 for volume value | ameerj | 2 | -2/+2 | |
2021-07-09 | common/thread_worker: Stop workers on stop_token when waiting | ReinUsesLisp | 1 | -18/+20 | |
2021-07-09 | common/thread_worker: Add support for stateful threads | ReinUsesLisp | 3 | -78/+86 | |
2021-07-09 | common/thread_worker: Simplify logic | FernandoS27 | 1 | -8/+1 | |
2021-07-09 | common/thread_worker: Fix data race | FernandoS27 | 2 | -1/+18 | |
2021-07-09 | common/thread_worker: Use unique function | ReinUsesLisp | 2 | -28/+24 | |
2021-07-09 | common: Add unique function | ReinUsesLisp | 2 | -0/+63 | |
2021-07-09 | common/thread_worker: Add wait for requests method | ReinUsesLisp | 2 | -0/+11 | |
2021-07-08 | settings, arm_dynarmic, yuzu qt: Move CPU debugging option | lat9nq | 2 | -2/+2 | |
Decouples the CPU debugging mode from the enumeration to its own boolean. After this, it moves the CPU Debugging tab over to a sub tab underneath the Debug tab in the configuration UI. | |||||
2021-07-08 | settings, yuzu qt: Add migration code for CPU accuracy | lat9nq | 1 | -0/+2 | |
Old CPU Accuracy setting won't translate well into since we're adding one at the beginning of the list. On first boot with the new setting, just use the default setting. | |||||
2021-07-08 | core,common,yuzu qt: Add CPU accuracy option 'Auto' | lat9nq | 1 | -4/+5 | |
The current CPU accuracy settings in yuzu are fairly polarized and require more than common knowledge to know what the optimal settings for yuzu would be. This adds a curated option called 'Auto' that applies a few at the moment known-good unsafe optimizations to Dynarmic. | |||||
2021-07-08 | general: Code formatting improvements | lat9nq | 1 | -2/+1 | |
Slight improvements to readability. Dropped suggestions for string_view (settings.h:101), pass by value (settings.h:82), reverting double to a float (config.cpp:316), and other smaller ones, some out of scope. Addresses review feedback. Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com> | |||||
2021-07-06 | common: logging: backend: Close the file after exceeding the write limit | Morph | 1 | -8/+11 | |
There's no point in keeping the file open after the write limit is exceeded. This allows the file to be committed to the disk shortly after it is closed and avoids redundantly checking whether or not the write limit is exceeded. | |||||
2021-07-06 | common: fs: file: Revert Flush to its previous behavior and add Commit | Morph | 2 | -3/+34 | |
It became apparent that logging can continuously spam errors that trigger file flushing. Since committing the files to disk is an expensive operation, this causes unnecessarily high disk usage. As such, we will revert Flush() to the previous behavior and add a Commit() member function in the event that this behavior is needed. | |||||
2021-07-06 | common: fs: file: Flush the file in GetSize | Morph | 1 | -0/+3 | |
This ensures that GetSize always retrieves the correct file size after a write operation. | |||||
2021-07-01 | settings: Set resolution_factor default to 1 | lat9nq | 1 | -1/+1 | |
Fixes Disgaea 6 Demo issues. | |||||
2021-06-28 | general: Make most settings a BasicSetting | lat9nq | 2 | -127/+295 | |
Creates a new BasicSettings class in common/settings, and forces setting a default and label for each setting that uses it in common/settings. Moves defaults and labels from both frontends into common settings. Creates a helper function in each frontend to facillitate reading the settings now with the new default and label properties. Settings::Setting is also now a subclass of Settings::BasicSetting. Also adds documentation for both Setting and BasicSetting. | |||||
2021-06-26 | common: Force defaults for Settings::Setting's | lat9nq | 1 | -44/+57 | |
Requires a default value when creating each per-game setting. | |||||
2021-06-24 | common: Replace common_sizes into user-literals | Wunkolo | 4 | -49/+39 | |
Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc user-literals within literals.h. To keep the global namespace clean, users will have to use: ``` using namespace Common::Literals; ``` to access these literals. | |||||
2021-06-24 | general: Add missing #pragma once directives | Morph | 1 | -0/+2 | |
2021-06-23 | General: Resolve fmt specifiers to adhere to 8.0.0 API where applicable | Lioncash | 1 | -1/+2 | |
Also removes some deprecated API usages. | |||||
2021-06-22 | common: fs: Add a description of a regular file in IsFile | Morph | 1 | -4/+6 | |
This provides a more concrete example of what a regular file is and isn't. | |||||
2021-06-22 | common: fs: Amend IsFile check in FileOpen / (Write/Append)StringToFile | Morph | 4 | -9/+12 | |
This check was preventing files with the Write or Append file access modes from being created, as per the documented behavior in FileAccessMode. This amends the check to test for the existence of a filesystem object prior to checking whether it is a regular file. Thanks to liushuyu for pointing out that removing the check altogether would not guard against attempting to open non-regular files such as directories, symlinks, FIFO (pipes), sockets, block devices, or character devices. The documentation has also been updated for these functions to clarify that a file refers to a regular file. | |||||
2021-06-22 | common: fs: file: Remove [[nodiscard]] attribute from Flush | Morph | 2 | -3/+3 | |
Similarly, Flush() is typically called to attempt to flush a file into the disk. In the one case where this is used, we do not care whether the flush has succeeded or not, making [[nodiscard]] unnecessary. | |||||
2021-06-22 | common: fs: Remove [[nodiscard]] attribute on Remove* functions | Morph | 2 | -9/+9 | |
There are a lot of scenarios where we don't particularly care whether or not the removal operation and just simply attempt a removal. As such, removing the [[nodiscard]] attribute is best for these functions. | |||||
2021-06-22 | common/detached_tasks: Wait for tasks before shutting down | Rodrigo Locatti | 1 | -0/+2 | |
If this is not waited on, the synchronization primitives are destroyed whe main exits and the detached task ends up signalling garbage and not properly finishing. | |||||
2021-06-20 | Update dynarmic and add new unsafe CPU option. | Fernando Sahmkow | 2 | -0/+2 | |
2021-06-19 | host_memory: Correct MEM_RESERVE_PLACEHOLDER | lat9nq | 1 | -1/+1 | |
Microsoft defines `MEM_RESERVE_PLACEHOLDER` as `0x00040000`, but our manually imported version of it drops the last zero. | |||||
2021-06-17 | nvflinger: Add toggle to disable buffer swap interval limits | ameerj | 1 | -0/+1 | |
Enabling this setting will allow some titles to present more frames to the screen as they become available in the nvflinger buffer queue. | |||||
2021-06-16 | Reaper: Address Feedback. | Fernando Sahmkow | 1 | -0/+1 | |
2021-06-16 | Reaper: Setup settings and final tuning. | Fernando Sahmkow | 2 | -0/+3 | |
2021-06-16 | common: fs: file: Remove redundant call to WriteStringToFile | Morph | 2 | -6/+1 | |
The Append open mode will create a new file if said file does not exist at a given path, making this call redundant. | |||||
2021-06-16 | fsp_srv: Fix filesystem access logging | Morph | 1 | -0/+1 | |
This introduces a new setting Enable FS Access Log which saves the filesystem access log to sdmc:/FsAccessLog.txt If this setting is not enabled, this will indicate to FS to not call OutputAccessLogToSdCard. Fixes softlocks during loading in Xenoblade Chronicles 2 when certain DLC is enabled. | |||||
2021-06-16 | configure_graphics: Add Accelerate ASTC decoding setting | ameerj | 2 | -0/+3 | |
2021-06-13 | common: logging: Restructure backend code | Morph | 8 | -278/+288 | |
2021-06-13 | common: logging: backend: Wrap IOFile in a unique_ptr | Morph | 2 | -6/+27 | |
Allows us to forward declare Common::FS::IOFile. | |||||
2021-06-13 | common: fs: file: Flush the file to the disk when Flush() is called | Morph | 1 | -1/+5 | |
std::fflush does not guarantee that file buffers are flushed to the disk. Use _commit on Windows and fsync on all other OSes to ensure that the file is flushed to the disk. | |||||
2021-06-12 | common: fs: Use the normal directory iterator in *Recursively functions | Morph | 1 | -2/+16 | |
MSVC's implementation of recursive_directory_iterator throws an exception on an error despite a std::error_code being passed into its constructor. This is most likely a bug in MSVC's implementation since directory_iterator does not throw an exception on an error. We can replace the usage of recursive_directory_iterator for now until MSVC fixes their implementation of it. | |||||
2021-06-11 | common/host_memory: Implement a fallback if fastmem fails. | Markus Wick | 2 | -14/+49 | |
This falls back to the old approach of using a virtual buffer. Windows is untested, but this build should fix support for Windows < 10 v1803. However without fastmem support at all. | |||||
2021-06-11 | common/host_shader: Load Windows 10 functions dynamically | ReinUsesLisp | 1 | -29/+88 | |
Workaround old headers and libraries shipped on MinGW. | |||||
2021-06-11 | host_memory: Support staged VirtualProtect calls | ReinUsesLisp | 1 | -3/+12 | |
2021-06-11 | General: Add settings for fastmem and disabling adress space check. | FernandoS27 | 2 | -0/+12 | |
2021-06-11 | common/host_memory: Optimize for huge tables. | Markus Wick | 2 | -11/+24 | |
In theory, if we have 2 MB continously mapped, this should save one layer of TLB. Let's make it at least more likely by aligning the memory. | |||||
2021-06-11 | core: Make use of fastmem | Markus Wick | 1 | -0/+2 | |
2021-06-11 | common/host_memory: Add Linux implementation | Markus Wick | 1 | -10/+120 | |
2021-06-11 | common/host_memory: Add interface and Windows implementation | ReinUsesLisp | 3 | -0/+384 | |
2021-06-09 | src/common/CMakeLists.txt: fix variable escaping | liushuyu | 1 | -8/+9 | |
2021-06-09 | common/fs/path_util: Remove [[nodiscard]] from function with void return | Lioncash | 1 | -1/+1 | |
We can't make use of the return value here, since we don't a return value to work with. | |||||
2021-06-02 | common: fs: fs_util: Move PathToUTF8String to fs_util | Morph | 4 | -15/+14 | |
2021-06-02 | common: fs: fs_util: Add more string conversion functions | Morph | 2 | -0/+33 | |
2021-05-31 | common_funcs: Move R_ macros to result.h | Lioncash | 1 | -25/+0 | |
These macros all interact with the result code type, so they should ideally be within this file as well, so all the common_funcs machinery doesn't need to be pulled in just to use them. | |||||
2021-05-29 | core/memory: Check our memory fallbacks for out-of-bound behavior. | Markus Wick | 2 | -0/+7 | |
This makes it by far harder to crash yuzu. Also implement the 48bit masking of AARCH64 while touching this code. | |||||
2021-05-28 | common: Extract point into a common struct | Lioncash | 2 | -0/+58 | |
This is generic enough that it can be moved into the Common class for reuse. | |||||
2021-05-28 | common/fs/file: Explicitly delete copy constructors | Lioncash | 1 | -1/+4 | |
Relocates them to the same place the move equivalents are at for consistent viewing. | |||||
2021-05-28 | common/fs/file: Devirtualize destructor | Lioncash | 1 | -1/+1 | |
IOFile is a final class, so there's no need for a virtual destructor. | |||||
2021-05-28 | common/fs/file: Default initialize IOFile members | Lioncash | 1 | -2/+2 | |
Prevents a potential uninitialized read vector in the move constructor. | |||||
2021-05-26 | common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270) | Morph | 20 | -1432/+2963 | |
* common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only | |||||
2021-05-24 | zstd_compression: Make use of std::span | Lioncash | 2 | -3/+4 | |
Allows for the incoming data stream to be non-allocating. | |||||
2021-05-24 | lz4_compression: Make use of std::span | Lioncash | 2 | -4/+4 | |
Allows making the incoming data stream non-allocating. | |||||
2021-05-21 | common: tree: Avoid a crash on nullptr dereference. | bunnei | 1 | -0/+11 | |
2021-05-17 | general: Demote custom_rtc to regular setting | lat9nq | 2 | -2/+1 | |
2021-05-16 | configuration: Add CPU tab to game properties | lat9nq | 1 | -0/+6 | |
Allows setting CPU accuracy to Accurate or Unsafe per-game, as well as the accuracy options for Unsafe. Debug is not allowed here as a per-game CPU accuracy. | |||||
2021-05-16 | general: Make CPU accuracy and related a Settings::Setting | lat9nq | 2 | -5/+5 | |
Required to make CPU accuracy and unsafe settings available to use as a per-game setting. | |||||
2021-05-12 | common: tree: Avoid a nullptr dereference. | bunnei | 1 | -1/+1 | |
2021-05-10 | parent_of_member: Make sign conversion explicit in OffsetOfImpl() | Lioncash | 1 | -1/+2 | |
Previously these conversions were implicit and causing quite a few warnings on clang. | |||||
2021-05-06 | fixup! common: bit_util: Add BIT macro. | bunnei | 1 | -2/+0 | |
2021-05-06 | common: parent_of_member: Fix build for OffsetOf(). | bunnei | 1 | -4/+4 | |
2021-05-06 | fixup! common: intrusive_red_black_tree: Disable static_assert that will not evaluate as constant on MSVC. | bunnei | 1 | -5/+0 | |
2021-05-06 | common: Rename NON_COPYABLE/NON_MOVABLE with YUZU_ prefix. | bunnei | 1 | -2/+2 | |
2021-05-06 | common: common_funcs: Add Size helper function. | bunnei | 1 | -0/+15 | |
2021-05-06 | common: bit_util: Add BIT macro. | bunnei | 1 | -0/+2 | |
2021-05-06 | common: intrusive_red_black_tree: Disable static_assert that will not evaluate as constant on MSVC. | bunnei | 1 | -0/+4 | |
2021-05-06 | common: common_funcs: Add helper macros for non-copyable and non-moveable. | bunnei | 1 | -0/+8 | |
- Useful for scenarios where we do not want to inherit from NonCopyable. | |||||
2021-04-20 | log/backend: Use in-class initializer for FileBackend | Lioncash | 2 | -6/+8 | |
We can also avoid redundant constructions of the same string repeatedly. | |||||
2021-04-20 | log/backend: Make use of erase_if | Lioncash | 1 | -4/+4 | |
Same behavior, but less verbose. | |||||
2021-04-15 | log/backend: Correct order of const in copy constructor | Lioncash | 1 | -2/+5 | |
Follows our predominant coding style. Also explicitly specifies the move constructor/assignment operator as well. | |||||
2021-04-15 | common/log: Move Log namespace into the Common namespace | Lioncash | 7 | -33/+39 | |
Forgot to move this over when I moved the rest of the source files with lacking namespaces over. | |||||
2021-04-15 | common: Move settings to common from core. | bunnei | 7 | -2/+830 | |
- Removes a dependency on core and input_common from common. | |||||
2021-04-15 | core: settings: Add setting for debug assertions and disable by default. | bunnei | 1 | -2/+5 | |
- This is a developer-only setting and no longer needs to be enabled by default. - Also adds "use_auto_stub" setting to SDL frontend while we are here. - Supersedes #1340. | |||||
2021-04-13 | nvidia_flags: Add missing header guard | Lioncash | 1 | -0/+2 | |
Prevents potential inclusion compilation errors. | |||||
2021-04-09 | bgtc: Update to 12.x and implement OpenTaskService | Morph | 2 | -0/+2 | |
2021-04-07 | common/threadsafe_queue: Provide Wait() method. | Markus Wick | 1 | -1/+9 | |
It shall block until there is something to consume in the queue. And use it for the GPU emulation instead of the spin loop. This is only in booting the emulator, however in BOTW this is the case for about 1 second. | |||||
2021-04-04 | common: Move assert failure handling into a cpp file. | Markus Wick | 3 | -6/+20 | |
Advantage: Altering the handler does not need a full recompilation. Disadvantage: noreturn is droped, so the caller is a bit slower. We quite often run yuzu with a YOLO assertion handler. In fact, only very few games run at all with asserts. This patch allows developers to patch the handler without recompiling everything. The overhead of the missing "noreturn" attribute shoul be negletable. | |||||
2021-03-24 | common: common_sizes: Move sizes to the Common namespace. | bunnei | 1 | -0/+4 | |
2021-03-21 | common: common_sizes: Move Invalid to Size_* prefix and add missing values. | bunnei | 1 | -1/+7 | |
2021-03-21 | hle: kernel: board: k_system_control: Extend to include memory region sizes. | bunnei | 1 | -0/+10 | |
2021-03-21 | common: Move common sizes to their own header for code reuse. | bunnei | 2 | -0/+24 | |
2021-03-10 | fiber: Double default stack size | MerryMage | 1 | -1/+1 | |
Stack overflow occurs with some guest applications | |||||
2021-03-07 | common: Fiber: use a reference for YieldTo. | bunnei | 2 | -8/+6 | |
- Fixes another small leak. | |||||
2021-03-06 | common: fiber: Use weak_ptr when yielding. | bunnei | 2 | -8/+13 | |
- Avoids a memory leak, as taking a strong reference of the fiber here causes a circular reference. - Supersedes #6006 with a more narrow fix. | |||||
2021-03-06 | Revert "core: Switch to unique_ptr for usage of Common::Fiber." | bunnei | 2 | -9/+9 | |
2021-02-28 | [network] Error handling reform | comex | 2 | -16/+34 | |
`network.cpp` has several error paths which either: - report "Unhandled host socket error=n" and return `SUCCESS`, or - switch on a few possible errors, log them, and translate them to Errno; the same switch statement is copied and pasted in multiple places in the code Convert these paths to use a helper function `GetAndLogLastError`, which is roughly the equivalent of one of the switch statements, but: - handling more cases (both ones that were already in `Errno`, and a few more I added), and - using OS functions to convert the error to a string when logging, so it'll describe the error even if it's not one of the ones in the switch statement. - To handle this, refactor the logic in `GetLastErrorMsg` to expose a new function `NativeErrorToString` which takes the error number explicitly as an argument. And improve the Windows version a bit. Also, add a test which exercises two random error paths. | |||||
2021-02-27 | core: Switch to unique_ptr for usage of Common::Fiber. | bunnei | 2 | -9/+9 | |
- With using unique_ptr instead of shared_ptr, we have more explicit ownership of the context. - Fixes a memory leak due to circular reference of the shared pointer. | |||||
2021-02-23 | common: add missing header after f3805376f726 | Jan Beich | 1 | -0/+1 | |
In file included from src/video_core/dma_pusher.cpp:5: src/./common/cityhash.h:69:47: error: 'size_t' has not been declared 69 | [[nodiscard]] u64 CityHash64(const char* buf, size_t len); | ^~~~~~ src/./common/cityhash.h:73:55: error: 'size_t' has not been declared 73 | [[nodiscard]] u64 CityHash64WithSeed(const char* buf, size_t len, u64 seed); | ^~~~~~ src/./common/cityhash.h:77:56: error: 'size_t' has not been declared 77 | [[nodiscard]] u64 CityHash64WithSeeds(const char* buf, size_t len, u64 seed0, u64 seed1); | ^~~~~~ src/./common/cityhash.h:80:47: error: 'size_t' has not been declared 80 | [[nodiscard]] u128 CityHash128(const char* s, size_t len); | ^~~~~~ src/./common/cityhash.h:84:55: error: 'size_t' has not been declared 84 | [[nodiscard]] u128 CityHash128WithSeed(const char* s, size_t len, u128 seed); | ^~~~~~ | |||||
2021-02-20 | common: wall_clock: Fix integer overflow with StandardWallClock. | bunnei | 2 | -7/+28 | |
- Previous optimized impl. resulted in an integer overflow, so revert. - This is our slow/fallback path that should never be really be used, so the optimization in unimportant. | |||||
2021-02-19 | common: Add implementation of TinyMT (Mersenne Twister RNG). | bunnei | 2 | -0/+251 | |
2021-02-19 | common: alignment: Add DivideUp utility method. | bunnei | 1 | -0/+5 | |
2021-02-18 | common/cityhash: Use common types | ReinUsesLisp | 2 | -114/+98 | |
Allow sharing return types with the rest of the code base. For example, we use 'u128 = std::array<u64, 2>', meanwhile Google's code uses 'uint128 = std::pair<u64, u64>'. While we are at it, use size_t instead of std::size_t. | |||||
2021-02-15 | common: wall_clock: Optimize GetClockCycles/GetCPUCycles to use a single MUL instruction. | bunnei | 1 | -8/+9 | |
2021-02-15 | common: Merge uint128 to a single header file with inlines. | bunnei | 4 | -135/+84 | |
2021-02-10 | common: Add -fsized-deallocation as a Clang flag | lat9nq | 1 | -0/+2 | |
Prevents an operator delete error when compiling with Clang 11. | |||||
2021-02-08 | string_util: Remove MSVC workaround for converting between UTF8/UTF16 | Morph | 1 | -14/+0 | |
This has been fixed as of Visual Studio 2019 Version 16.2 | |||||
2021-02-06 | ring_buffer: Remove granularity template argument | MerryMage | 1 | -11/+10 | |
Non-obvious bug in RingBuffer::Push(std::vector<T>&) when granularity != 1 Just remove it altogether because we do not have a use for granularity != 1 | |||||
2021-02-05 | hle: kernel: Drop R_UNLESS_NOLOG in favor of expanded if-statement. | bunnei | 1 | -8/+0 | |
2021-02-05 | common: scope_exit: Add a cancellable ScopeExit macro. | bunnei | 1 | -0/+6 | |
2021-02-05 | common: common_funcs: Add R_UNLESS_NOLOG for scenarios that should not log. | bunnei | 1 | -0/+8 | |
2021-01-29 | common: common_funcs: Change R_UNLESS to LOG_ERROR. | bunnei | 1 | -1/+1 | |
2021-01-29 | common: common_funcs: Log error on R_UNLESS. | bunnei | 1 | -0/+3 | |
2021-01-29 | common: common_funcs: Add useful kernel macro R_SUCCEED_IF. | bunnei | 1 | -0/+3 | |
2021-01-29 | common: common_funcs: Add a few more useful macros for kernel code. | bunnei | 1 | -0/+11 | |
2021-01-22 | common: Add missing include to bit_util.h | bunnei | 1 | -0/+1 | |
2021-01-21 | bit_util: Unify implementations of MostSignificantBit32/MostSignificantBit64 | Lioncash | 1 | -35/+13 | |
We can use the standardized CLZ facilities to perform this. This also allows us to make utilizing functions constexpr and eliminate the inclusion of an intrinsics header. | |||||
2021-01-21 | renderer_opengl: Avoid precompiled cache and force NV GL cache directory | ReinUsesLisp | 3 | -0/+39 | |
Setting __GL_SHADER_DISK_CACHE_PATH we can force the cache directory to be in yuzu's user directory to stop commonly distributed malware from deleting our driver shader cache. And by setting __GL_SHADER_DISK_CACHE_SKIP_CLEANUP we can have an unbounded shader cache size. This has only been implemented on Windows, mostly because previous tests didn't seem to work on Linux. Disable the precompiled cache on Nvidia's driver. There's no need to hide information the driver already has in its own cache. | |||||
2021-01-15 | core: Silence Wclass-memaccess warnings | ReinUsesLisp | 1 | -2/+2 | |
This requires making several types trivial and properly initialize them whenever they are called. | |||||
2021-01-15 | common/common_funcs: Rename INSERT_UNION_PADDING_{BYTES,WORDS} to _NOINIT | ReinUsesLisp | 1 | -4/+4 | |
INSERT_PADDING_BYTES_NOINIT is more descriptive of the underlying behavior. | |||||
2021-01-15 | common/bit_util: Replace CLZ/CTZ operations with standardized ones | Lioncash | 1 | -76/+0 | |
Makes for less code that we need to maintain. | |||||
2021-01-15 | common/alignment: Upgrade to use constraints instead of static asserts | ReinUsesLisp | 1 | -13/+9 | |
2021-01-15 | common/alignment: Rename AlignBits to AlignUpLog2 | ReinUsesLisp | 1 | -5/+4 | |
AlignUpLog2 describes what the function does better than AlignBits. | |||||
2021-01-15 | common/timer: Remove | Lioncash | 3 | -202/+0 | |
This is a leftover from citra and dolphin that isn't used at all, particularly given the <chrono> header exists. | |||||
2021-01-15 | common/color: Remove | ReinUsesLisp | 2 | -272/+0 | |
This is a leftover from Citra we no longer use. | |||||
2021-01-12 | common/tree: Convert defines over to templates | Lioncash | 2 | -592/+666 | |
Reworks the tree header to operate off of templates as opposed to a series of defines. This allows all tree facilities to obey namespacing rules, and also allows this code to be used within modules once compiler support is in place. This also gets rid to use a macro to define functions and structs for necessary data types. With templates, these will be generated when they're actually used, eliminating the need for the separate declaration. | |||||
2021-01-12 | common/tree: Remove unused splay tree defines | Lioncash | 1 | -249/+2 | |
Makes for less code to take care of. | |||||
2021-01-12 | common/parent_of_member: Replace TYPED_STORAGE define with template alias | Lioncash | 2 | -8/+10 | |
Provides the same construct, but makes it obey namespacing. | |||||
2021-01-11 | common: common_funcs: Add R_UNLESS macro. | bunnei | 1 | -0/+8 | |
2021-01-11 | common: Introduce useful tree structures. | bunnei | 4 | -0/+1641 | |
2021-01-09 | common/div_ceil: Return numerator type | ReinUsesLisp | 1 | -5/+5 | |
Fixes instances where DivCeil(u32, u64) would surprisingly return u64, instead of the more natural u32. | |||||
2021-01-04 | Address review comments | FearlessTobi | 1 | -5/+5 | |
2021-01-04 | Delete the old log file before rotating (#5675) | xperia64 | 1 | -0/+3 | |
2021-01-03 | Fix the old log file to work with the log parser. | bunnei | 1 | -1/+1 | |
2021-01-03 | Rotate previous log file to '.old' if it exists | xperia64 | 1 | -4/+9 | |
2021-01-02 | general: Fix various spelling errors | Morph | 2 | -3/+3 | |
2021-01-02 | X86/NativeClock: Reimplement RTDSC access to be lock free. | Fernando Sahmkow | 5 | -103/+107 | |
2021-01-02 | X86/NativeClock: Improve performance of clock calculations on hot path. | Fernando Sahmkow | 2 | -5/+71 | |
2021-01-01 | memory: Remove MemoryHook | MerryMage | 4 | -78/+0 | |
2020-12-30 | core/memory: Read and write page table atomically | ReinUsesLisp | 3 | -23/+65 | |
Squash attributes into the pointer's integer, making them an uintptr_t pair containing 2 bits at the bottom and then the pointer. These bits are currently unused thanks to alignment requirements. Configure Dynarmic to mask out these bits on pointer reads. While we are at it, remove some unused attributes carried over from Citra. Read/Write and other hot functions use a two step unpacking process that is less readable to stop MSVC from emitting an extra AND instruction in the hot path: mov rdi,rcx shr rdx,0Ch mov r8,qword ptr [rax+8] mov rax,qword ptr [r8+rdx*8] mov rdx,rax -and al,3 and rdx,0FFFFFFFFFFFFFFFCh je Core::Memory::Memory::Impl::Read<unsigned char> mov rax,qword ptr [vaddr] movzx eax,byte ptr [rdx+rax] | |||||
2020-12-30 | common: ThreadWorker: Add class to help do asynchronous work. | bunnei | 3 | -0/+90 | |
2020-12-29 | k_priority_queue: Fix concepts use | comex | 1 | -0/+4 | |
- For `std::same_as`, add missing include of `<concepts>`. - For `std::convertible_to`, create a replacement in `common/concepts.h` and use that instead. This would also be found in `<concepts>`, but unlike `std::same_as`, `std::convertible_to` is not yet implemented in libc++, LLVM's STL implementation - not even in master. (In fact, `std::same_as` is the *only* concept currently implemented. For some reason.) | |||||
2020-12-13 | cmake: Fix generating CMake configs and linking with Boost | lat9nq | 1 | -1/+1 | |
Fixes regression by 761206cf81b271f7f4dd6a167a120325b760dbf3, causing yuzu to not build on Linux with any version of Boost except a cached 1.73 Conan version from before about a day ago. Moves the Boost requirement out of the `REQUIRED_LIBS` psuedo-2D-array for Conan to instead be manually configured, using Conan as a fallback solution if the system does not meet our requirements. Requires any update from the linux-fresh container in order to build. **DO NOT MERGE** until someone with the MSVC toolchain can verify this works there, too. | |||||
2020-12-12 | common: Update CMakeList to fix build issue with Boost. | bunnei | 1 | -2/+1 | |
2020-12-12 | Revert "Merge pull request #5173 from lioncash/common-fs" | Morph | 2 | -112/+396 | |
This reverts commit ce5fcb6bb2c358b0251a2ce87945bda52789a76d, reversing changes made to 6f41763061082d5fa2ab039c554427152243cb46. | |||||
2020-12-12 | Revert "Merge pull request #5174 from ReinUsesLisp/fs-fix" | Morph | 2 | -36/+4 | |
This reverts commit 5fe55b16a11d9ec607fb8a3fdddc77a4393cd96a, reversing changes made to e94dd7e2c4fc3f7ca2c15c01bdc301be2b8a4c1b. | |||||
2020-12-12 | Revert "Merge pull request #5179 from ReinUsesLisp/fs-path" | Morph | 1 | -1/+1 | |
This reverts commit 4e94d0d53af2cdb7b03ef9de23cc29f3565df97a, reversing changes made to 6d6115475b4edccdf1bb4e96ecc3d3b1be319e76. | |||||
2020-12-12 | Revert "Merge pull request #5181 from Morph1984/5174-review" | Morph | 1 | -3/+9 | |
This reverts commit cdb36aef9ec9d30bdef1953f9ed46776ae2f12af, reversing changes made to 5e9b77129f2cf8c039a8d98033cae4ac0f93f515. | |||||
2020-12-10 | common/file_util: Simplify the behavior of CreateFullPath | Morph | 1 | -9/+3 | |
2020-12-09 | common/file_util: Let std::filesystem cast from UTF16 to std::string | ReinUsesLisp | 1 | -1/+1 | |
Fix invalid encoding paths when iterating over a directory on Windows. | |||||
2020-12-09 | common/file_util: Fix and deprecate CreateFullPath, add CreateDirs | ReinUsesLisp | 2 | -4/+31 | |
Fix CreateFullPath to have its intended previous behavior (whatever that was), and deprecate it in favor of the new CreateDirs function. Unlike CreateDir, CreateDirs is marked as [[nodiscard]] to avoid new code ignoring its result value. | |||||
2020-12-09 | common/file_util: Succeed on CreateDir when the directory exists | ReinUsesLisp | 1 | -0/+5 | |
2020-12-09 | file_util: Migrate remaining file handling functions over to std::filesystem | Lioncash | 2 | -340/+100 | |
Converts creation and deletion functions over to std::filesystem, simplifying our file-handling code. Notably with this, CopyDir will now function on Windows. | |||||
2020-12-09 | file_util: Migrate Exists() and IsDirectory() over to std::filesystem | Lioncash | 2 | -57/+13 | |
Greatly simplifies our file-handling code for these functions. | |||||
2020-12-06 | common: BitSet: Various style fixes based on code review feedback. | bunnei | 1 | -23/+22 | |
2020-12-06 | hle: kernel: Separate KScheduler from GlobalSchedulerContext class. | bunnei | 2 | -346/+0 | |
2020-12-06 | common: Port BitSet from Mesosphere. | bunnei | 2 | -0/+101 | |
2020-12-05 | video_core: Resolve more variable shadowing scenarios pt.3 | Lioncash | 2 | -3/+3 | |
Cleans out the rest of the occurrences of variable shadowing and makes any further occurrences of shadowing compiler errors. | |||||
2020-12-05 | xbyak_abi: Shorten std::size_t to size_t | Lioncash | 1 | -8/+8 | |
Makes for less reading. | |||||
2020-12-05 | xbyak_abi: Avoid implicit sign conversions | Lioncash | 1 | -2/+2 | |
2020-12-03 | audio_core: Make shadowing and unused parameters errors | Lioncash | 4 | -10/+11 | |
Moves the audio code closer to enabling warnings as errors in general. | |||||
2020-11-29 | common: fiber: Use VirtualBuffer for stack memory. | bunnei | 1 | -2/+5 | |
- This will be aligned by default, and helps memory usage. | |||||
2020-11-29 | common: fiber: Use boost::context instead of native fibers on Windows. | bunnei | 2 | -115/+8 | |
2020-11-26 | common: Add Common::DivCeil and Common::DivCeilLog2 | ReinUsesLisp | 2 | -0/+27 | |
Add an equivalent to 'Common::AlignUp(n, d) / d' and a log2 alternative. | |||||
2020-11-20 | common/bit_cast: Add function matching std::bit_cast without constexpr | ReinUsesLisp | 2 | -0/+23 | |
Add a std::bit_cast-like function archiving the same runtime results as the standard function, without compile time support. This allows us to use bit_cast while we wait for compiler support, it can be trivially replaced in the future. | |||||
2020-11-19 | hle: service: Stub OLSC Initialize and SetSaveDataBackupSettingEnabled functions. | bunnei | 2 | -0/+2 | |
- Used by Animal Cross: New Horizons v1.6.0 update, minimal stub gets this update working. | |||||
2020-11-19 | virtual_buffer: Do nothing on resize() calls with same sizes | Lioncash | 1 | -1/+6 | |
Prevents us from churning memory by freeing and reallocating a memory block that would have already been adequate as is. | |||||
2020-11-18 | virtual_buffer: Add compile-time type-safety guarantees with VirtualBuffer | Lioncash | 1 | -0/+6 | |
VirtualBuffer makes use of VirtualAlloc (on Windows) and mmap() (on other platforms). Neither of these ensure that non-trivial objects are properly constructed in the allocated memory. To prevent potential undefined behavior occurring due to that, we can add a static assert to loudly complain about cases where that is done. | |||||
2020-11-18 | page_table: Allow page tables to be moved | Lioncash | 4 | -9/+30 | |
Makes page tables and virtual buffers able to be moved, but not copied, making the interface more flexible. Previously, with the destructor specified, but no move assignment or constructor specified, they wouldn't be implicitly generated. | |||||
2020-11-18 | page_table: Add missing doxygen parameters to Resize() | Lioncash | 1 | -0/+2 | |
Resolves two -Wdocumentation warnings. | |||||
2020-11-18 | page_table: Remove unnecessary header inclusions | Lioncash | 1 | -4/+0 | |
Prevents indirect inclusions for these headers. | |||||
2020-11-07 | common/fiber: Move all member variables into impl class | Lioncash | 2 | -89/+86 | |
Hides all of the implementation details for users of the class. This has the benefit of reducing includes and also making the fiber classes movable again. | |||||
2020-11-05 | General: Fix clang build | Lioncash | 2 | -2/+10 | |
Allows building on clang to work again | |||||
2020-11-02 | common: Enable warnings as errors | Lioncash | 9 | -31/+49 | |
Cleans up common so that we can enable warnings as errors. | |||||
2020-10-30 | General: Make ignoring a discarded return value an error | Lioncash | 2 | -5/+12 | |
Allows our CI to catch more potential bugs. This also removes the [[nodiscard]] attribute of IOFile's Open member function. There are cases where a file may want to be opened, but have the status of it checked at a later time. | |||||
2020-10-30 | common/stream: Be explicit with copy and move operators | Lioncash | 1 | -3/+9 | |
2020-10-28 | common/fiber: Take shared_ptr<Fiber> by copy in YieldTo | ReinUsesLisp | 2 | -3/+3 | |
YieldTo does not intend to modify the passed shared_ptrs. Pass it by copy to keep a reference count while this function executes. | |||||
2020-10-27 | video_core: NVDEC Implementation | ameerj | 3 | -0/+99 | |
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com> | |||||
2020-10-22 | core: Fix clang build pt.3 | Lioncash | 1 | -2/+2 | |
Should finally resolve building with clang. | |||||
2020-10-21 | Revert "core: Fix clang build" | bunnei | 7 | -22/+13 | |
2020-10-18 | core: Fix clang build | Lioncash | 7 | -13/+22 | |
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795 | |||||
2020-10-16 | input_common/CMakeLists: Make some warnings errors | Lioncash | 2 | -11/+68 | |
Makes the input_common code warnings consistent with the rest of the codebase. | |||||
2020-10-13 | core/CMakeLists: Make some warnings errors | Lioncash | 1 | -5/+5 | |
Makes our error coverage a little more consistent across the board by applying it to Linux side of things as well. This also makes it more consistent with the warning settings in other libraries in the project. This also updates httplib to 0.7.9, as there are several warning cleanups made that allow us to enable several warnings as errors. | |||||
2020-09-30 | common/wall_clock: Add virtual destructors | ReinUsesLisp | 3 | -2/+4 | |
From -fsanitize=address, this code wasn't calling the proper destructor. Adding virtual destructors for each inherited class and the base class fixes this bug. While we are at it, mark the functions as final. | |||||
2020-09-29 | CMakeLists: use system zstd on Linux | lat9nq | 1 | -1/+6 | |
From what I understand, this tells CMake to use the system, not conan, version of zstd. Required to build on the coming MinGW Docker container. | |||||
2020-09-29 | CMakeLists: fix for finding zstd on linux-mingw | lat9nq | 1 | -1/+1 | |
2020-09-02 | input_common/motion_input: Make use of Common::PI constant | Morph | 1 | -1/+1 | |
Also amend the copyright notice to yuzu's instead of Dolphin's, which was mistakenly copy-pasted from another file. | |||||
2020-08-30 | externals: Update Xbyak to 5.96 | Lioncash | 1 | -16/+16 | |
I made a request on the Xbyak issue tracker to allow some constructors to be constexpr in order to avoid static constructors from needing to execute for some of our register constants. This request was implemented, so this updates Xbyak so that we can make use of it. | |||||
2020-08-28 | Implement a basic class for motion devices | german | 1 | -0/+30 | |
2020-08-26 | Project Mjölnir: Part 1 | Morph | 1 | -1/+1 | |
Co-authored-by: James Rowe <jroweboy@gmail.com> Co-authored-by: Its-Rei <kupfel@gmail.com> | |||||
2020-08-26 | common/thread: Fix data race in is_set | ReinUsesLisp | 1 | -4/+5 | |
As report by tsan, Event::Set can write is_set while WaitFor and friends are reading from it. To address this issue, make is_set an atomic. | |||||
2020-08-25 | logging/settings: Increase maximum log size to 100 MB and add extended logging option | M&M | 1 | -2/+12 | |
The extended logging option is automatically disabled on boot but can be enabled afterwards, allowing the log file to go up to 1 GB during that session. This commit also fixes a few errors that are present in the general debug menu. | |||||
2020-08-24 | common_funcs: Add missing XOR operators to DECLARE_ENUM_FLAG_OPERATORS | Lioncash | 1 | -4/+10 | |
Ensures that the full set of bitwise operators are available for types that make use of this macro. | |||||
2020-08-24 | common/assert: Make use of C++ attribute syntax | Lioncash | 1 | -3/+4 | |
Normalizes the syntax used for attributes | |||||
2020-08-23 | web_service: Move web_result.h into web_service | Lioncash | 2 | -26/+0 | |
This is the only place it's actively used. It's also more appropriate for web-related structures to be within the web service target. Especially given this one doesn't rely on anything in the common library. | |||||
2020-08-20 | Revert "common/time_zone: Simplify GetOsTimeZoneOffset()" | bunnei | 1 | -5/+9 | |
2020-08-18 | common/telemetry: Migrate namespace into the Common namespace | Lioncash | 2 | -4/+4 | |
Migrates the Telemetry namespace into the Common namespace to make the code consistent with the rest of our common code. | |||||
2020-08-18 | common/color: Migrate code over to the Common namespace | Lioncash | 1 | -2/+2 | |
No external code makes use of this header, so we can freely change the namespace. | |||||
2020-08-18 | common/concepts: Move <type_traits> include out of the Common namespace | Lioncash | 1 | -2/+2 | |
This is a compiler/linker error waiting to happen. | |||||
2020-08-16 | common/fileutil: Convert namespace to Common::FS | Lioncash | 3 | -41/+49 | |
Migrates a remaining common file over to the Common namespace, making it consistent with the rest of common files. This also allows for high-traffic FS related code to alias the filesystem function namespace as namespace FS = Common::FS; for more concise typing. | |||||
2020-08-16 | common: Silence two discarded result warnings | Lioncash | 2 | -3/+3 | |
These are intentionally discarded internally, since the rest of the public API allows querying success. We want all non-internal uses of these functions to be explicitly checked, so we can signify that we intentionally want to discard the return values here. | |||||
2020-08-16 | common/time_zone: Simplify GetOsTimeZoneOffset() | Lioncash | 1 | -9/+5 | |
We can simplify this function down into a single line with the use of fmt. A benefit with the fmt approach is that the fmt variant of localtime is thread-safe as well, making GetOsTimeZoneOffset() thread-safe as well. | |||||
2020-08-15 | common/compression: Roll back std::span changes | Lioncash | 4 | -37/+43 | |
Seems like all compilers don't support std::span yet. | |||||
2020-08-15 | common: Make use of [[nodiscard]] where applicable | Lioncash | 34 | -358/+343 | |
Now that clang-format makes [[nodiscard]] attributes format sensibly, we can apply them to several functions within the common library to allow the compiler to complain about any misuses of the functions. | |||||
2020-08-13 | General: Tidy up clang-format warnings part 2 | Lioncash | 3 | -4/+3 | |
2020-08-09 | General: Tidy up clang-format warnings | Lioncash | 1 | -1/+1 | |
2020-08-07 | common/concepts: Rename IsBaseOf to DerivedFrom | Lioncash | 1 | -4/+6 | |
This makes it more inline with its currently unavailable standardized analogue std::derived_from. While we're at it, we can also make the template match the requirements of the standardized variant as well. | |||||
2020-08-06 | partition_data_manager: Make data arrays constexpr | Lioncash | 2 | -40/+23 | |
Previously the constructor for all of these would run at program startup, consuming time before the application can enter main(). This is also particularly dangerous, given the logging system wouldn't have been initialized properly yet, yet the program would use the logs to signify an error. To rectify this, we can replace the literals with constexpr functions that perform the conversion at compile-time, completely eliminating the runtime cost of initializing these arrays. | |||||
2020-08-06 | Fix thread naming on Linux, which limits names to 15 bytes. | comex | 1 | -0/+12 | |
- In `SetCurrentThreadName`, when on Linux, truncate to 15 bytes, as (at least on glibc) `pthread_set_name_np` will otherwise return `ERANGE` and do nothing. - Also, add logging in case `pthread_set_name_np` returns an error anyway. This is Linux-specific, as the Apple and BSD versions of `pthread_set_name_np return `void`. - Change the name for CPU threads in multi-core mode from "yuzu:CoreCPUThread_N" (19 bytes) to "yuzu:CPUCore_N" (14 bytes) so it fits into the Linux limit. Some other thread names are also cut off, but I didn't bother addressing them as you can guess them from the truncated versions. For a CPU thread, truncation means you can't see which core it is! | |||||
2020-08-05 | common/virtual_buffer: drop unused includes | Jan Beich | 1 | -9/+0 | |
On DragonFly and NetBSD build fails with src/common/virtual_buffer.cpp src/common/virtual_buffer.cpp:16:10: fatal error: sys/sysinfo.h: No such file or directory #include <sys/sysinfo.h> ^~~~~~~~~~~~~~~ | |||||
2020-08-03 | logging/backend: Make use of designated initializers | Lioncash | 2 | -21/+15 | |
Same behavior, less code. | |||||
2020-08-03 | ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer (#4465) | David | 2 | -0/+33 | |
* ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer With the support of C++20, we can use concepts to deduce if a type is an STL container or not. * More agressive concept for stl containers * Add -fconcepts * Move to common namespace * Add Common::IsBaseOf | |||||
2020-07-28 | common/atomic_ops: Don't cast away volatile from pointers | Lioncash | 2 | -21/+26 | |
Preserves the volatility of the pointers being casted. | |||||
2020-07-25 | common/string_util: Remove unimplemented function prototype (#4414) | LC | 1 | -12/+0 | |
This function was relocated to log.h as a constexpr function, so this can be removed. | |||||
2020-07-25 | lz4_compression: Make use of std::span in interfaces | Lioncash | 2 | -17/+14 | |
Allows compressing the data and size parameters into one. | |||||
2020-07-25 | zstd_compression: Make use of std::span in interfaces | Lioncash | 2 | -11/+9 | |
Allows condensing the data and size parameters into a single argument. | |||||
2020-07-25 | virtual_buffer: Mark size parameter of FreeMemoryPages() as [[maybe_unused]] | Lioncash | 1 | -1/+1 | |
This isn't used on Windows, but is used on non-Windows operating systems. | |||||
2020-07-21 | common: Add a screenshots directory | lat9nq | 3 | -0/+3 | |
Adds a screenshots directory as a path managed by FileUtil. | |||||
2020-07-19 | alignment: explicitly include <new> after 723edb4c0659 | Jan Beich | 1 | -0/+1 | |
In file included from src/core/hle/kernel/memory/page_table.cpp:5: src/./common/alignment.h:67:68: error: no member named 'align_val_t' in namespace 'std' return static_cast<T*>(::operator new (n * sizeof(T), std::align_val_t{Align})); ~~~~~^ src/./common/alignment.h:71:51: error: no member named 'align_val_t' in namespace 'std' ::operator delete (p, n * sizeof(T), std::align_val_t{Align}); ~~~~~^ | |||||
2020-07-17 | alignment: Simplify AlignmentAllocator implementation | Lioncash | 1 | -43/+4 | |
With C++20, much of the allocator interface has been simplified, so we can make the same adjustments. | |||||
2020-07-14 | common/swap: Make use of std::endian | Lioncash | 1 | -42/+4 | |
Allows removing a bunch of defines in favor of a two liner. | |||||
2020-07-12 | common/alignment: Fix compilation errors (#4303) | Tobias | 1 | -1/+3 | |
2020-07-12 | Revert "Port citra-emu/citra#5441: "Common: remove a mod from AlignUp"" | bunnei | 1 | -3/+1 | |
2020-07-11 | Common: remove a mod from AlignUp (#5441) | Marshall Mohror | 1 | -1/+3 | |
In cases where the size is not a known constant when inlining, AlignUp<std::size_t> currently generates two 64-bit div instructions. This generates one div and a cmov which is significantly cheaper. | |||||
2020-07-10 | cmake: Fix libfmt linking errors | David Marcec | 1 | -5/+1 | |
2020-07-09 | cmake: fix fmt linking when found | John Galt | 1 | -1/+5 | |
This is a new attempt at #4206 that shouldn't break windows builds. If someone else could test on windows, it would be much appreciated. Previously, the build bot passed but the actual builds failed. | |||||
2020-07-03 | Revert "cmake: fix fmt linking" | bunnei | 1 | -1/+1 | |
2020-07-01 | common: switch to nullptr for sysctl's empty new value | Jan Beich | 1 | -4/+4 | |
2020-06-30 | common: add sysconf() fallback | Jan Beich | 1 | -3/+16 | |
src/common/memory_detect.cpp:15:10: fatal error: 'sys/sysinfo.h' file not found #include <sys/sysinfo.h> ^~~~~~~~~~~~~~~ | |||||
2020-06-29 | cmake: fix fmt linking | John Galt | 1 | -1/+1 | |
On gcc/ld, and clang/lld, fmt::v6 symbols are excluded, so linking fails. This fixes the issue. Note: This was included in the FindBoost changes I shared with BlinkHawk, however only they were merged. I'm not sure if it was missed, or if there was an issue with this part of the change. | |||||
2020-06-28 | Core/Common: Address Feedback. | Fernando Sahmkow | 4 | -12/+13 | |
2020-06-27 | Common/Kernel: Corrections and small bug fixing. | Fernando Sahmkow | 1 | -6/+1 | |
2020-06-27 | Common/NativeClockx86: Reduce native clock accuracy further. | Fernando Sahmkow | 1 | -1/+1 | |
2020-06-27 | Common/AtomicOps: Correct GCC Intrinsic argument ordering. | Fernando Sahmkow | 1 | -5/+5 | |
2020-06-27 | Clang Format. | Fernando Sahmkow | 3 | -23/+23 | |
2020-06-27 | General: Tune the priority of main emulation threads so they have higher priority than less important helper threads. | Fernando Sahmkow | 2 | -0/+55 | |
2020-06-27 | X64 Clock: Reduce accuracy to be less or equal to guest accuracy. | Fernando Sahmkow | 2 | -1/+7 | |
2020-06-27 | ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes. | Fernando Sahmkow | 3 | -0/+89 | |
2020-06-27 | HostTiming: Pause the hardware clock on pause. | Fernando Sahmkow | 4 | -0/+15 | |
2020-06-27 | General: Recover Prometheus project from harddrive failure | Fernando Sahmkow | 1 | -0/+6 | |
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host Timing, Reworks the Kernel's Scheduler, Introduce Idle State and Suspended State, Recreates the bootmanager, Initializes Multicore system. | |||||
2020-06-26 | Common: Fix non-conan build | Fernando Sahmkow | 1 | -1/+2 | |
2020-06-20 | common/telemetry: Add AVX512 to telemetry | Morph | 1 | -0/+1 | |
2020-06-20 | common/cpu_detect: Add AVX512 detection | Morph | 2 | -0/+6 | |
2020-06-18 | Common/Fiber: Address Feedback and Correct Memory leaks. | Fernando Sahmkow | 2 | -34/+41 | |
2020-06-18 | Common/Fiber: Implement Rewind on Boost Context. | Fernando Sahmkow | 2 | -2/+39 | |
2020-06-18 | Common/uint128: Correct MSVC Compilation in old versions. | Fernando Sahmkow | 1 | -0/+4 | |
2020-06-18 | Common/Fiber: Document fiber interexchange. | Fernando Sahmkow | 1 | -1/+4 | |
2020-06-18 | Common/Fiber: Implement Rewinding. | Fernando Sahmkow | 2 | -2/+38 | |
2020-06-18 | Common/Fiber: Additional corrections to f_context. | Fernando Sahmkow | 1 | -4/+4 | |
2020-06-18 | Common/Fiber: Correct f_context based Fibers. | Fernando Sahmkow | 1 | -6/+8 | |
2020-06-18 | Core/HostTiming: Allow events to be advanced manually. | Fernando Sahmkow | 2 | -5/+6 | |
2020-06-18 | Common/Tests: Address Feedback | Fernando Sahmkow | 3 | -8/+8 | |
2020-06-18 | Common: Make MinGW build use Windows Fibers instead of fcontext_t | Fernando Sahmkow | 2 | -4/+4 | |
2020-06-18 | Common/Tests: Clang Format. | Fernando Sahmkow | 4 | -18/+21 | |
2020-06-18 | Common: Correct fcontext fibers. | Fernando Sahmkow | 1 | -5/+4 | |
2020-06-18 | Common: Refactor & Document Wall clock. | Fernando Sahmkow | 5 | -49/+49 | |
2020-06-18 | Common: Implement WallClock Interface and implement a native clock for x64 | Fernando Sahmkow | 7 | -0/+348 | |
2020-06-18 | Tests: Add base tests to host timing | Fernando Sahmkow | 1 | -2/+2 | |
2020-06-18 | Common: Polish Fiber class, add comments, asserts and more tests. | Fernando Sahmkow | 4 | -24/+53 | |
2020-06-18 | Tests: Add tests for fibers and refactor/fix Fiber class | Fernando Sahmkow | 2 | -19/+32 | |
2020-06-18 | Common: Implement a basic Fiber class. | Fernando Sahmkow | 3 | -0/+204 | |
2020-06-18 | Common: Implement a basic SpinLock class | Fernando Sahmkow | 3 | -0/+68 | |
2020-06-15 | xbyak_abi: Prefer returning a struct to using out parameters in ABI_CalculateFrameSize | MerryMage | 1 | -17/+19 | |
2020-06-15 | xbyak_abi: Register indexes should be unsigned | MerryMage | 1 | -11/+12 | |
2020-06-15 | xbyak_abi: Remove *GPS variants of stack manipulation functions | MerryMage | 1 | -36/+0 | |
2020-06-15 | xbyak_abi: Fix ABI_PushRegistersAndAdjustStack | MerryMage | 1 | -6/+2 | |
Pushing GPRs twice. | |||||
2020-06-12 | gl_arb_decompiler: Implement an assembly shader decompiler | ReinUsesLisp | 1 | -0/+2 | |
Emit code compatible with NV_gpu_program5. This should emit code compatible with Fermi, but it wasn't tested on that architecture. Pascal has some issues not present on Turing GPUs. | |||||
2020-05-30 | Add xbyak external | David Marcec | 3 | -1/+316 | |
2020-05-27 | Fix macOS code and change "Swapfile" to "Swap" | Morph | 1 | -2/+5 | |
2020-05-17 | main: Log host system memory parameters | Morph | 3 | -0/+81 | |
Logs both physical memory and swapfile sizes, this is useful for support. | |||||
2020-05-13 | time_zone: Use std::chrono::seconds for strong typing. | bunnei | 2 | -3/+4 | |
2020-05-11 | common: Add module to get the current time zone. | bunnei | 3 | -0/+68 | |
2020-05-08 | Replace externals with Conan (#3735) | James Rowe | 1 | -2/+2 | |
* Remove git submodules that will be loaded through conan * Move custom Find modules to their own folder * Use conan for downloading missing external dependencies * CI: Change the yuzu source folder user to the user that the containers run on * Attempt to remove dirty mingw build hack * Install conan on the msvc build * Only set release build type when using not using multi config generator * Re-add qt bundled to workaround an issue with conan qt not downloading prebuilt binaries * Add workaround for submodules that use legacy CMAKE variables * Re-add USE_BUNDLED_QT on the msvc build bot | |||||
2020-04-29 | acc: Return a unique value per account for GetAccountId | David Marcec | 1 | -0/+5 | |
2020-04-24 | Fix -Werror=conversion error. | Markus Wick | 1 | -1/+1 | |
2020-04-17 | common: page_table: Update to use VirtualBuffer and simplify. | bunnei | 2 | -53/+18 | |
2020-04-17 | common: Add VirtualBuffer class, to abstract memory virtualization. | bunnei | 3 | -0/+112 | |
2020-04-17 | common: scope_exit: Implement mechanism for canceling a scope exit. | bunnei | 1 | -1/+8 | |
2020-04-17 | common: alignment: Add a helper function for generic alignment checking. | bunnei | 1 | -0/+7 | |
2020-04-17 | common: common_funcs: Add a macro for defining enum flag operators. | bunnei | 1 | -0/+32 | |
2020-04-15 | file_util: Early-exit in WriteArray and ReadArray if specified lengths are zero | Lioncash | 2 | -9/+33 | |
It's undefined behavior to pass a null pointer to std::fread and std::fwrite, even if the length passed in is zero, so we must perform the precondition checking ourselves. A common case where this can occur is when passing in the data of an empty std::vector and size, as an empty vector will typically have a null internal buffer. While we're at it, we can move the implementation out of line and add debug checks against passing in nullptr to std::fread and std::fwrite. | |||||
2020-04-09 | common/file_util: Allow access to files on network shares | Ben Russell | 1 | -1/+8 | |
On Windows, network shares use paths like \\server\share\file which were being broken by FileUtil::SanitizePath() removing double slashes. Changed the code in SanitizePath to permit a double-backslash if it occurs at the start of a filepath (on Windows only). | |||||
2020-04-07 | common/dynamic_library: Import and adapt helper from Dolphin | ReinUsesLisp | 3 | -0/+183 | |
2020-04-01 | common: Port some changes from dolphin (#5127) | Vitor K | 2 | -15/+16 | |
* IOFile: Make the move constructor and move assignment operator noexcept Certain parts of the standard library try to determine whether or not a transfer operation should either be a copy or a move. The prevalent notion of move constructors/assignment operators is that they should not throw, they simply move an already existing resource somewhere else. This is typically done with 'std::move_if_noexcept'. Like the name says, if a type's move constructor is noexcept, then the functions retrieves an r-value reference (for move semantics), or an l-value (for copy semantics) if it is not noexcept. As IOFile deletes the copy constructor and copy assignment operators, using IOFile with certain parts of the standard library can fail in unexcepted ways (especially when used with various container implementations). This prevents that. * fix various instances of -1 being assigned to unsigned types * do not assign in conditional statements * File/IOFile: Check _tfopen_s properly * common/file_util.cpp: address review comments Co-authored-by: Lioncash <mathew1800@gmail.com> Co-authored-by: Shawn Hoffman <godisgovernment@gmail.com> Co-authored-by: Sepalani <sepalani@hotmail.fr> | |||||
2020-03-14 | PageTable: move backing addresses to a children class as the CPU page table does not need them. | Fernando Sahmkow | 2 | -3/+24 | |
This PR aims to reduce the memory usage in the CPU page table by moving GPU specific parameters into a child class. This saves 1Gb of Memory for most games. | |||||
2020-03-13 | shader/transform_feedback: Add host API friendly TFB builder | ReinUsesLisp | 1 | -0/+2 | |
2020-03-09 | video_core: Rename "const buffer locker" to "registry" | ReinUsesLisp | 1 | -2/+2 | |
2020-03-09 | gl_shader_cache: Rework shader cache and remove post-specializations | ReinUsesLisp | 1 | -2/+0 | |
Instead of pre-specializing shaders and then post-specializing them, drop the later and only "specialize" the shader while decoding it. | |||||
2020-02-28 | common/math_util: Support float type rectangles | ReinUsesLisp | 1 | -2/+14 | |
2020-01-23 | common/logging: don't use regex for path trimming | BreadFish64 | 4 | -36/+23 | |
2020-01-23 | Address second part of review comments | FearlessTobi | 1 | -1/+1 | |
2020-01-23 | Input: UDP Client to provide motion and touch controls | fearlessTobi | 1 | -0/+9 | |
An implementation of the cemuhook motion/touch protocol, this adds the ability for users to connect several different devices to citra to send direct motion and touch data to citra. Co-Authored-By: jroweboy <jroweboy@gmail.com> | |||||
2020-01-18 | Remove unused CPU Vendor string and telemtry field | James Rowe | 3 | -114/+0 | |
The information is duplicated in the brand string and the telemetry field is unused | |||||
2020-01-16 | Fix git version in scm_rev.cpp | James Rowe | 1 | -0/+5 | |
2019-12-17 | common: SPSCQueue: Notify after incrementing queue size. | bunnei | 1 | -2/+9 | |
2019-11-23 | fix clang-format and lambda capture | Weiyi Wang | 1 | -1/+2 | |
2019-11-23 | unfold UNREACHABLE implementation for dumb compilers | Weiyi Wang | 1 | -2/+2 | |
We relies on UNREACHABLE's noreturn attribute to eliminate parent's "no return value" warning. However, this was wrapped in a `if(!false)` block, which compilers may not unfold to recognize the noreturn nature. | |||||
2019-11-16 | Revert "common/bit_field: Silence sign-conversion warnings" | Rodrigo Locatti | 1 | -3/+2 | |
2019-11-15 | common/logging: Silence no return value warnings | ReinUsesLisp | 1 | -2/+6 | |
2019-11-15 | common/bit_field: Silence sign-conversion warnings | Lioncash | 1 | -2/+3 | |
We can just use numeric_limits instead of relying on wraparound behavior here. | |||||
2019-11-14 | common_funcs: Remove semicolons from INSERT_PADDING_* macros | Lioncash | 1 | -4/+6 | |
Makes code that uses the macros consistent by requiring the lines to be terminated with a semicolon. | |||||
2019-11-13 | common/hash: Remove unused HashableStruct | Lioncash | 1 | -35/+0 | |
This is unused, so it can be removed. There's better ways of ensuring zeroed out padding bits, like using zero-initialization, anyhow. | |||||
2019-11-13 | common_funcs: silence sign-conversion warnings in MakeMagic() | Lioncash | 1 | -1/+1 | |
We can trivially resolve these by casting the characters to unsigned values and then shifting the bits. | |||||
2019-11-06 | ci: Populate build repository from Azure environment | Zach Hilman | 1 | -11/+2 | |
2019-11-04 | common_func: Use std::array for INSERT_PADDING_* macros. | bunnei | 2 | -12/+17 | |
- Zero initialization here is useful for determinism. | |||||
2019-11-03 | Revert "common_func: Use std::array for INSERT_PADDING_* macros." | bunnei | 1 | -3/+2 | |
2019-11-03 | common_func: Use std::array for INSERT_PADDING_* macros. | bunnei | 1 | -2/+3 | |
- Zero initialization here is useful for determinism. | |||||
2019-11-03 | common/bit_field: Remove FORCE_INLINE calls | Tobias | 1 | -2/+2 | |
See bunneis comment here https://github.com/citra-emu/citra/pull/4629#discussion_r258533167. They were supposed to be removed by him, but he missed them. | |||||
2019-10-26 | Shader_IR: Address Feedback. | Fernando Sahmkow | 1 | -1/+1 | |
2019-10-25 | VideoCore: Unify const buffer accessing along engines and provide ConstBufferLocker class to shaders. | Fernando Sahmkow | 2 | -2/+15 | |
2019-10-15 | common/algorithm: Add description comment indicating intended algorithms | Lioncash | 1 | -0/+5 | |
Makes it explicit that the header is intended for iterator-based algorithms that can ideally operate on any type. | |||||
2019-10-15 | common: Rename binary_find.h to algorithm.h | Lioncash | 2 | -1/+2 | |
Makes the header more general for other potential algorithms in the future. While we're at it, include a missing <functional> include to satisfy the use of std::less. | |||||
2019-10-15 | Kernel Scheduler: Make sure the global scheduler shutdowns correctly. | Fernando Sahmkow | 1 | -0/+7 | |
2019-10-07 | alignment: Resolve allocator construction issues on debug | Lioncash | 1 | -0/+5 | |
This was related to the source allocator being passed into the constructor potentially having a different type than allocator being constructed. We simply need to provide a constructor to handle this case. This resolves issues related to the allocator causing debug builds on MSVC to fail. | |||||
2019-10-07 | alignment: Specify trait definitions within the allocator | Lioncash | 1 | -0/+5 | |
Allows containers and other data structures to consider optimizations based off of them. We satisfy all of these requirements anyways. | |||||
2019-10-05 | common: Add additional SCM revision fields | Zach Hilman | 3 | -0/+21 | |
2019-10-05 | common/file_util: Silence -Wswitch | ReinUsesLisp | 1 | -1/+2 | |
2019-10-05 | Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes. | Fernando Sahmkow | 1 | -0/+2 | |
2019-10-05 | shader_ir: Corrections to outward movements and misc stuffs | Fernando Sahmkow | 1 | -0/+4 | |
2019-09-22 | cmake: Add SCM detection for Azure | Zach Hilman | 1 | -0/+3 | |
2019-09-22 | log: Add logging class for Cheat Engine | Zach Hilman | 2 | -0/+2 | |
This is better than just using something like Common.Filesystem or Common.Memory | |||||
2019-08-21 | shader_ir: Implement VOTE | ReinUsesLisp | 1 | -0/+1 | |
Implement VOTE using Nvidia's intrinsics. Documentation about these can be found here https://developer.nvidia.com/reading-between-threads-shader-intrinsics Instead of using portable ARB instructions I opted to use Nvidia intrinsics because these are the closest we have to how Tegra X1 hardware renders. To stub VOTE on non-Nvidia drivers (including nouveau) this commit simulates a GPU with a warp size of one, returning what is meaningful for the instruction being emulated: * anyThreadNV(value) -> value * allThreadsNV(value) -> value * allThreadsEqualNV(value) -> true ballotARB, also known as "uint64_t(activeThreadsNV())", emits VOTE.ANY Rd, PT, PT; on nouveau's compiler. This doesn't match exactly to Nvidia's code VOTE.ALL Rd, PT, PT; Which is emulated with activeThreadsNV() by this commit. In theory this shouldn't really matter since .ANY, .ALL and .EQ affect the predicates (set to PT on those cases) and not the registers. | |||||
2019-07-20 | Common/Alignment: Add noexcept where required. | Fernando Sahmkow | 1 | -5/+5 | |
2019-07-19 | Kernel: Address Feedback | Fernando Sahmkow | 1 | -3/+2 | |
2019-07-19 | Common: Correct alignment allocator to work on C++14 or higher. | Fernando Sahmkow | 1 | -37/+19 | |
2019-07-19 | VM_Manager: Align allocated memory to 256bytes | Fernando Sahmkow | 1 | -0/+79 | |
This commit ensures that all backing memory allocated for the Guest CPU is aligned to 256 bytes. This due to how gpu memory works and the heavy constraints it has in the alignment of physical memory. | |||||
2019-07-09 | shader_ir: Implement a new shader scanner | Fernando Sahmkow | 1 | -0/+2 | |
2019-07-05 | texture_cache: Address Feedback | Fernando Sahmkow | 3 | -10/+22 | |
2019-06-24 | common/alignment: Address feedback | ReinUsesLisp | 1 | -2/+3 | |
2019-06-21 | shader: Decode SUST and implement backing image functionality | ReinUsesLisp | 1 | -0/+1 | |
2019-06-21 | texture_cache: Optimize GetMipBlockHeight and GetMipBlockDepth | Fernando Sahmkow | 1 | -0/+44 | |
2019-06-21 | video_core: Use un-shifted block sizes to avoid integer divisions | ReinUsesLisp | 1 | -0/+5 | |
Instead of storing all block width, height and depths in their shifted form: block_width = 1U << block_shift; Store them like they are provided by the emulated hardware (their block_shift form). This way we can avoid doing the costly Common::AlignUp operation to align texture sizes and drop CPU integer divisions with bitwise logic (defined in Common::AlignBits). | |||||
2019-06-21 | Reduce amount of size calculations. | Fernando Sahmkow | 1 | -0/+11 | |
2019-06-12 | common/hex_util: Reserve std::string memory ahead of time | Lioncash | 1 | -0/+5 | |
Avoids potentially performing multiple reallocations (depending on the size of the input data) by reserving the necessary amount of memory ahead of time. This is trivially doable, so there's no harm in it. | |||||
2019-06-12 | common/hex_util: Combine HexVectorToString() and HexArrayToString() | Lioncash | 2 | -11/+7 | |
These can be generified together by using a concept type to designate them. This also has the benefit of not making copies of potentially very large arrays. | |||||
2019-06-07 | cmake: Add missing shader hash file entries | ReinUsesLisp | 1 | -0/+3 | |
2019-05-31 | common/math_util: Provide a template deduction guide for Common::Rectangle | Lioncash | 1 | -0/+3 | |
Allows for things such as: auto rect = Common::Rectangle{0, 0, 0, 0}; as opposed to being required to explicitly write out the underlying type, such as: auto rect = Common::Rectangle<int>{0, 0, 0, 0}; The only requirement for the deduction is that all constructor arguments be the same type. | |||||
2019-05-23 | common/file_util: Remove unnecessary return at end of void StripTailDirSlashes() | Lioncash | 1 | -6/+8 | |
While we're at it, also invert the conditional into a guard clause. | |||||
2019-05-23 | common/file_util: Make GetCurrentDir() return a std::optional | Lioncash | 2 | -3/+4 | |
nullptr was being returned in the error case, which, at a glance may seem perfectly OK... until you realize that std::string has the invariant that it may not be constructed from a null pointer. This means that if this error case was ever hit, then the application would most likely crash from a thrown exception in std::string's constructor. Instead, we can change the function to return an optional value, indicating if a failure occurred. | |||||
2019-05-23 | common/file_util: Remove duplicated documentation comments | Lioncash | 1 | -25/+0 | |
These are already present within the header, so they don't need to be repeated in the cpp file. | |||||
2019-05-23 | common/file_util: Make ReadFileToString and WriteStringToFile consistent | Lioncash | 2 | -5/+5 | |
Makes the parameter ordering consistent, and also makes the filename parameter a std::string. A std::string would be constructed anyways with the previous code, as IOFile's only constructor with a filepath is one taking a std::string. We can also make WriteStringToFile's string parameter utilize a std::string_view for the string, making use of our previous changes to IOFile. | |||||
2019-05-23 | common/file_util: Remove unnecessary c_str() calls | Lioncash | 1 | -2/+2 | |
The file stream open functions have supported std::string overloads since C++11, so we don't need to use c_str() here. Same behavior, less code. | |||||
2019-05-23 | common/file_util: Make IOFile's WriteString take a std::string_view | Lioncash | 1 | -2/+2 | |
We don't need to force the usage of a std::string here, and can instead use a std::string_view, which allows writing out other forms of strings (e.g. C-style strings) without any unnecessary heap allocations. | |||||
2019-05-04 | common/zstd_compression: Remove #pragma once directive from source file | Lioncash | 1 | -2/+0 | |
Introduced in 72477731ed20c56a4d6f18a22f43224fab667cef. This is only necessary within header files. | |||||
2019-04-25 | mii: Implement Delete and Destroy file | Zach Hilman | 1 | -5/+6 | |
2019-04-25 | mii_manager: Cleanup and optimization | Zach Hilman | 2 | -3/+5 | |
2019-04-25 | common: Extract UUID to its own class | Zach Hilman | 3 | -0/+80 | |
Since the Mii database uses UUIDs very similar to the Accounts database, it makes no sense to not share code between them. | |||||
2019-04-15 | common/{lz4_compression, zstd_compression}: Add missing header guards | Lioncash | 2 | -0/+4 | |
These two files were missing the #pragma once directive. | |||||
2019-04-12 | common/swap: Improve codegen of the default swap fallbacks | Lioncash | 1 | -3/+7 | |
Uses arithmetic that can be identified more trivially by compilers for optimizations. e.g. Rather than shifting the halves of the value and then swapping and combining them, we can swap them in place. e.g. for the original swap32 code on x86-64, clang 8.0 would generate: mov ecx, edi rol cx, 8 shl ecx, 16 shr edi, 16 rol di, 8 movzx eax, di or eax, ecx ret while GCC 8.3 would generate the ideal: mov eax, edi bswap eax ret now both generate the same optimal output. MSVC used to generate the following with the old code: mov eax, ecx rol cx, 8 shr eax, 16 rol ax, 8 movzx ecx, cx movzx eax, ax shl ecx, 16 or eax, ecx ret 0 Now MSVC also generates a similar, but equally optimal result as clang/GCC: bswap ecx mov eax, ecx ret 0 ==== In the swap64 case, for the original code, clang 8.0 would generate: mov eax, edi bswap eax shl rax, 32 shr rdi, 32 bswap edi or rax, rdi ret (almost there, but still missing the mark) while, again, GCC 8.3 would generate the more ideal: mov rax, rdi bswap rax ret now clang also generates the optimal sequence for this fallback as well. This is a case where MSVC unfortunately falls short, despite the new code, this one still generates a doozy of an output. mov r8, rcx mov r9, rcx mov rax, 71776119061217280 mov rdx, r8 and r9, rax and edx, 65280 mov rax, rcx shr rax, 16 or r9, rax mov rax, rcx shr r9, 16 mov rcx, 280375465082880 and rax, rcx mov rcx, 1095216660480 or r9, rax mov rax, r8 and rax, rcx shr r9, 16 or r9, rax mov rcx, r8 mov rax, r8 shr r9, 8 shl rax, 16 and ecx, 16711680 or rdx, rax mov eax, -16777216 and rax, r8 shl rdx, 16 or rdx, rcx shl rdx, 16 or rax, rdx shl rax, 8 or rax, r9 ret 0 which is pretty unfortunate. | |||||
2019-04-12 | common/swap: Mark byte swapping free functions with [[nodiscard]] and noexcept | Lioncash | 1 | -11/+11 | |
Allows the compiler to inform when the result of a swap function is being ignored (which is 100% a bug in all usage scenarios). We also mark them noexcept to allow other functions using them to be able to be marked as noexcept and play nicely with things that potentially inspect "nothrowability". | |||||
2019-04-12 | common/swap: Simplify swap function ifdefs | Lioncash | 1 | -48/+15 | |
Including every OS' own built-in byte swapping functions is kind of undesirable, since it adds yet another build path to ensure compilation succeeds on. Given we only support clang, GCC, and MSVC for the time being, we can utilize their built-in functions directly instead of going through the OS's API functions. This shrinks the overall code down to just if (msvc) use msvc's functions else if (clang or gcc) use clang/gcc's builtins else use the slow path | |||||
2019-04-12 | common/swap: Remove 32-bit ARM path | Lioncash | 1 | -13/+0 | |
We don't plan to support host 32-bit ARM execution environments, so this is essentially dead code. | |||||
2019-04-12 | common/scope_exit: Replace std::move with std::forward in ScopeExit() | Lioncash | 1 | -1/+1 | |
The template type here is actually a forwarding reference, not an rvalue reference in this case, so it's more appropriate to use std::forward to preserve the value category of the type being moved. | |||||
2019-04-07 | Permit a Null Shader in case of a bad host_ptr. | Fernando Sahmkow | 1 | -0/+18 | |
2019-04-05 | common/multi_level_queue: Silence truncation warning in iterator operator++ | Lioncash | 1 | -1/+1 | |
2019-04-05 | common/bit_util: Make CountLeading/CountTrailing functions have the same return types | Lioncash | 1 | -8/+8 | |
Makes the return type consistently uniform (like the intrinsics we're wrapping). This also conveniently silences a truncation warning within the kernel multi_level_queue. | |||||
2019-04-04 | common/lz4_compression: Remove #pragma once directive from the cpp file | Lioncash | 1 | -2/+0 | |
Introduced within 798d76f4c7018174e58702fb06a042dc8c84f0be, this only really has an effect within header files. Silences a -Wpragma-once-outside-header warning with clang. | |||||
2019-04-01 | general: Use deducation guides for std::lock_guard and std::unique_lock | Lioncash | 4 | -14/+14 | |
Since C++17, the introduction of deduction guides for locking facilities means that we no longer need to hardcode the mutex type into the locks themselves, making it easier to switch mutex types, should it ever be necessary in the future. | |||||
2019-03-29 | common/thread: Remove unused functions | Lioncash | 2 | -41/+0 | |
Many of these functions are carried over from Dolphin (where they aren't used anymore). Given these have no use (and we really shouldn't be screwing around with OS-specific thread scheduler handling from the emulator, these can be removed. The function for setting the thread name is left, however, since it can have debugging utility usages. | |||||
2019-03-29 | common/zstd_compression: simplify decompression interface | unknown | 2 | -10/+9 | |
2019-03-29 | common/zstd_compression: Add Zstandard wrapper | unknown | 3 | -0/+98 | |
2019-03-29 | common: Link libzstd_static | unknown | 1 | -1/+1 | |
2019-03-29 | Addressed feedback | unknown | 5 | -81/+135 | |
2019-03-29 | gl_shader_disk_cache: Use better compression for transferable and precompiled shader disk chache files | unknown | 2 | -8/+24 | |
2019-03-29 | data_compression: Move LZ4 compression from video_core/gl_shader_disk_cache to common/data_compression | unknown | 3 | -0/+66 | |
2019-03-27 | Fixes and corrections on formatting. | Fernando Sahmkow | 2 | -5/+10 | |
2019-03-27 | Fixes to multilevelqueue's iterator. | Fernando Sahmkow | 1 | -1/+5 | |
2019-03-27 | Use MultiLevelQueue instead of old ThreadQueueList | Fernando Sahmkow | 1 | -12/+10 | |
2019-03-27 | Implement intrinsics CountTrailingZeroes and test it. | Fernando Sahmkow | 1 | -12/+33 | |
2019-03-27 | Implement a MultiLevelQueue | Fernando Sahmkow | 3 | -0/+349 | |
2019-03-21 | common/bit_util: Fix bad merge duplicating the copy constructor | Lioncash | 1 | -2/+0 | |
Introduced as a result of #2090, we already define the copy constructor further down below, so this isn't needed. | |||||
2019-03-21 | common/uint128: Add missing header guard | Lioncash | 1 | -0/+2 | |
2019-03-21 | common/uint128: Add missing top-file source text | Lioncash | 2 | -0/+7 | |
2019-03-21 | gpu: Rewrite virtual memory manager using PageTable. | bunnei | 2 | -1/+7 | |
2019-03-21 | gpu: Move GPUVAddr definition to common_types. | bunnei | 1 | -4/+3 | |
2019-03-21 | common/CMakeLists: Amend boost dependency | Lioncash | 1 | -1/+1 | |
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-17 | core: Move PageTable struct into Common. | bunnei | 5 | -0/+171 | |
2019-03-16 | common/thread_queue_list: Remove unnecessary dependency on boost | Lioncash | 2 | -4/+4 | |
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-07 | common/bit_field: Make BitField trivially copyable | Lioncash | 1 | -9/+7 | |
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-02 | logging/backend: Make time_origin a class variable instead of a local static | Lioncash | 1 | -2/+1 | |
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-02 | logging/backend: Move CreateEntry into the Impl class | Lioncash | 2 | -29/+26 | |
This function is only ever used within this source file and makes it easier to remove static state in the following change. | |||||
2019-02-27 | common/math_util: Move contents into the Common namespace | Lioncash | 1 | -2/+2 | |
These types are within the common library, so they should be within the Common namespace. | |||||
2019-02-27 | common/vector_math: Move Vec[x] types into the Common namespace | Lioncash | 3 | -25/+25 | |
These types are within the common library, so they should be using the Common namespace. | |||||
2019-02-27 | common/quaternion: Move Quaternion into the Common namespace | Lioncash | 1 | -2/+2 | |
Quaternion is within the common library, so it should be using the Common namespace. | |||||
2019-02-26 | shader/decode: Split memory and texture instructions decoding | ReinUsesLisp | 1 | -0/+1 | |
2019-02-24 | Remove GCC version checks | tgsm | 1 | -3/+3 | |
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-16 | Corrections, documenting and fixes. | Fernando Sahmkow | 2 | -9/+11 | |
2019-02-16 | Use u128 on Clock Cycles calculation. | Fernando Sahmkow | 2 | -21/+26 | |
2019-02-16 | Implement 128 bits Unsigned Integer Multiplication and Division. | Fernando Sahmkow | 3 | -0/+50 | |
2019-02-15 | Adressed review comments | B3n30 | 2 | -7/+9 | |
2019-02-15 | threadsafe_queue: Add WaitIfEmpty and use it in logging | B3n30 | 3 | -14/+26 | |
2019-02-13 | Make bitfield assignment operator public | fearlessTobi | 1 | -6/+2 | |
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-13 | threadsafe_queue: Use std::size_t for representing size | Lioncash | 1 | -7/+6 | |
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-13 | threadsafe_queue: Remove NeedSize template parameter | Lioncash | 1 | -13/+11 | |
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-12 | logging: Add Vulkan backend logging class type | ReinUsesLisp | 2 | -0/+2 | |
2019-02-07 | cmake: Fix title bar issue | ReinUsesLisp | 1 | -1/+14 | |
2019-02-07 | cmake: Use CMAKE_COMMAND instead of "cmake" | Frederic L | 1 | -1/+1 | |
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc> | |||||
2019-02-07 | gl_shader_disk_cache: Invalidate shader cache changes with CMake hash | ReinUsesLisp | 3 | -39/+56 | |
2019-02-07 | file_util: Add shader directory | ReinUsesLisp | 3 | -0/+3 | |
2019-02-06 | common/bitfield: make it endianness-aware | Weiyi Wang | 1 | -3/+9 | |
2019-02-06 | common/swap: remove default value for swap type internal storage | Weiyi Wang | 1 | -1/+1 | |
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-06 | common/swap: use template and tag for LE/BE specification | Weiyi Wang | 1 | -39/+91 | |
The tag can be useful for other type-generic templates like BitFields to forward the endianness specification | |||||
2019-02-06 | common/swap: add swap template for enum | Weiyi Wang | 1 | -0/+52 | |
2018-12-21 | common/quaternion: Ensure that w is always initialized | Lioncash | 1 | -1/+1 | |
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-21 | common: Add basic bit manipulation utility function to Common | Lioncash | 2 | -0/+62 | |
2018-12-07 | Backport review comment from citra-emu/citra#4418 | Tobias | 1 | -2/+2 | |
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-22 | common/thread: Drop Hungarian notation on SetCurrentThreadName's parameter | Lioncash | 1 | -7/+7 | |
This is inconsistent with our coding style. | |||||
2018-11-22 | scheduler: Add explanations for YieldWith and WithoutLoadBalancing | Zach Hilman | 1 | -2/+2 | |
2018-11-22 | common/thread: Make Barrier's 'count' member non-const | Lioncash | 1 | -1/+1 | |
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-22 | common/thread: Initialize class member variables where applicable | Lioncash | 1 | -6/+4 | |
Simplifies the constructor interfaces for Barrier and Event classes. | |||||
2018-11-22 | common/thread: Group non-member functions together | Lioncash | 1 | -3/+2 | |
Keeps the non-member interface in one spot instead of split into two places, making it nicer to locate functions. | |||||
2018-11-22 | common/thread: Remove SleepCurrentThread() | Lioncash | 2 | -12/+0 | |
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-22 | common/thread: Remove unused CurrentThreadId() | Lioncash | 2 | -12/+0 | |
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-22 | common: Remove bit_set.h | Lioncash | 2 | -245/+0 | |
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-21 | common: Remove dependency on xbyak | Lioncash | 3 | -274/+0 | |
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-21 | common/math_util: Simplify std::make_signed usages to std::make_signed_t | Lioncash | 1 | -2/+2 | |
Gets rid of the need to use typename to access the ::type alias. | |||||
2018-11-21 | common/math_util: Make Rectangle's constructors constexpr | Lioncash | 1 | -2/+2 | |
Allows objects that contain rectangle instances to be constexpr constructible as well. | |||||
2018-11-21 | common/math_util: Remove unnecessary static from PI | Lioncash | 1 | -1/+1 | |
const/constexpr variables have internal linkage by default. | |||||
2018-11-21 | common/math_util: Remove unused IntervalsIntersect() function | Lioncash | 1 | -6/+0 | |
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-21 | common/assert: Add UNIMPLEMENTED_IF and UNIMPLEMENTED_IF_MSG for conditional assertions | Lioncash | 1 | -0/+3 | |
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-20 | common/assert: Make the UNIMPLEMENTED macro properly assert | Lioncash | 1 | -1/+1 | |
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-19 | svc: Implement yield types 0 and -1 | Zach Hilman | 1 | -0/+16 | |
2018-11-18 | am: Deglobalize software keyboard applet | Zach Hilman | 2 | -4/+4 | |
2018-11-18 | string_util: Implement buffer to UTF-16 string helper function | Zach Hilman | 2 | -0/+17 | |
Needed as most all software keyboard functions use fixed-length UTF16 string buffers. | |||||
2018-11-16 | Common/Bitfield: store value as unsigned type | Weiyi Wang | 1 | -9/+10 | |
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 | |||||
2018-11-14 | string_util: Remove ArrayToString() | Lioncash | 2 | -21/+0 | |
An old function from Dolphin. This is also unused, and pretty inflexible when it comes to printing out different data types (for example, one might not want to print out an array of u8s but a different type instead. Given we use fmt, there's no need to keep this implementation of the function around. | |||||
2018-11-14 | string_util: Remove TryParse() | Lioncash | 2 | -54/+3 | |
This is an unused hold-over from Dolphin that was primarily used to parse values out of the .ini files. Given we already have libraries that do this for us, we don't need to keep this around. | |||||
2018-11-13 | string_util: Remove ThousandSeparate() | Lioncash | 1 | -14/+0 | |
This is currently unused and doesn't really provide much value to keep around either. | |||||
2018-10-28 | compatdb: Use a seperate endpoint for testcase submission | fearlessTobi | 1 | -0/+4 | |
2018-10-24 | logging/backend: Add missing services to the log filters | Lioncash | 2 | -0/+5 | |
Just a few overlooked services. | |||||
2018-10-23 | common: Remove memory_util.cpp/.h | Lioncash | 3 | -200/+0 | |
Everything from here is completely unused and also written with the notion of supporting 32-bit architecture variants in mind. Given the Switch itself is on a 64-bit architecture, we won't be supporting 32-bit architectures. If we need specific allocation functions in the future, it's likely more worthwhile to new functions for that purpose. | |||||
2018-10-23 | only redefine 64 bit file operation for MSVC | Weiyi Wang | 1 | -5/+8 | |
MinGW provides POSIX functions | |||||
2018-10-21 | service: Add skeleton for psm service | Zach Hilman | 1 | -0/+1 | |
Seems to be the power controller. Listed in switchbrew under the category PTM services. | |||||
2018-10-18 | common: Add function for checking word alignment to alignment.h | Lioncash | 1 | -0/+6 | |
This will be used in a following change to svcArbitrateLock() and svcArbitrateUnlock() | |||||
2018-10-18 | common: Move Is4KBAligned() to alignment.h | Lioncash | 1 | -0/+6 | |
Aligning on 4KB pages isn't a Switch-specific thing, so this can be moved to common so it can be used with other things as well. | |||||
2018-10-11 | web_backend: Make Client use the PImpl idiom | Lioncash | 1 | -0/+1 | |
Like with TelemetryJson, we can make the implementation details private and avoid the need to expose httplib to external libraries that need to use the Client class. | |||||
2018-10-07 | logging: Add DebuggerBackend for logging to Visual Studio | Carl Kenner | 2 | -2/+23 | |
2018-10-06 | Remove "#" in the version number | fearlessTobi | 1 | -1/+1 | |
So that people can stop using it in issue/pr comments and randomly link some other issue/pr unintentionally. | |||||
2018-10-06 | citra_qt/configuration: misc input tab improvements | zhupengfei | 2 | -1/+19 | |
* Added a context menu on the buttons including Clear & Restore Default * Allow clearing (unsetting) inputs. Added a Clear All button * Allow restoring a single input to default (instead of all) | |||||
2018-10-05 | text_formatter: Avoid unnecessary string temporary creation in PrintMessage() | Lioncash | 1 | -1/+1 | |
operator+ for std::string creates an entirely new string, which is kind of unnecessary here if we just want to append a null terminator to the existing one. Reduces the total amount of potential allocations that need to be done in the logging path. | |||||
2018-10-04 | ips_layer: Deduplicate resource usage | Zach Hilman | 2 | -2/+2 | |
2018-10-04 | hex_util: Add HexVectorToString and HexStringToVector | Zach Hilman | 2 | -0/+24 | |
Converts between bytes and strings when the size is not known at compile time. | |||||
2018-10-02 | string_util: unify UTF8<->UTF16 conversion to codecvt | Weiyi Wang | 1 | -109/+6 | |
2018-10-02 | string_util: remove TString conversion for windows | Weiyi Wang | 2 | -19/+1 | |
First of all they are foundamentally broken. As our convention is that std::string is always UTF-8, these functions assume that the multi-byte character version of TString (std::string) from windows is also in UTF-8, which is almost always wrong. We are not going to build multi-byte character build, and even if we do, this dirty work should be handled by frontend framework early. | |||||
2018-10-02 | string_util: remove ShiftJIS/CP1252 conversion function | Weiyi Wang | 2 | -22/+0 | |
We always use unicode internally. Any dirty work of conversion with other codec should be handled by frontend framework (Qt). Further more, ShiftJIS/CP1252 are not special (they are not code set used by 3ds, or any guest/host dependencies we have), so there is no reason to specifically include them | |||||
2018-10-02 | Review comments - part 5 | fearlessTobi | 1 | -0/+1 | |
2018-10-02 | Address a bunch of review comments | fearlessTobi | 1 | -1/+1 | |
2018-10-02 | Port web_service from Citra | fearlessTobi | 4 | -0/+107 | |
2018-09-24 | Stubbed IRS (#1349) | David | 2 | -0/+2 | |
* Stubbed IRS Currently we have no ideal way of implementing IRS. For the time being we should have the functions stubbed until we come up with a way to emulate IRS properly. * Added IRS to logging backend * Forward declared shared memory for irs | |||||
2018-09-22 | common/thread: remove YieldCPU() | Weiyi Wang | 1 | -8/+0 | |
simply use the standard library yield() | |||||
2018-09-22 | common_paths: Add Load and Dump dirs | Zach Hilman | 3 | -0/+6 | |
2018-09-19 | ring_buffer: Use std::atomic_size_t in a static assert | Lioncash | 1 | -1/+1 | |
Avoids the need to repeat "std::" twice | |||||
2018-09-19 | ring_buffer: Use std::hardware_destructive_interference_size to determine alignment size for avoiding false sharing | Lioncash | 1 | -2/+10 | |
MSVC 19.11 (A.K.A. VS 15.3)'s C++ standard library implements P0154R1 (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html) which defines two new constants within the <new> header, std::hardware_destructive_interference_size and std::hardware_constructive_interference_size. std::hardware_destructive_interference_size defines the minimum recommended offset between two concurrently-accessed objects to avoid performance degradation due to contention introduced by the implementation (with the lower-bound being at least alignof(max_align_t)). In other words, the minimum offset between objects necessary to avoid false-sharing. std::hardware_constructive_interference_size on the other hand defines the maximum recommended size of contiguous memory occupied by two objects accessed wth temporal locality by concurrent threads (also defined to be at least alignof(max_align_t)). In other words the maximum size to promote true-sharing. So we can simply use this facility to determine the ideal alignment size. Unfortunately, only MSVC supports this right now, so we need to enclose it within an ifdef for the time being. | |||||
2018-09-15 | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 23 | -135/+140 | |
2018-09-08 | common: Implement a ring buffer | MerryMage | 2 | -0/+112 | |
2018-09-07 | Better Title Bar Display | CaptV0rt3x | 3 | -5/+25 | |
2018-09-04 | common/logging: Amend documentation comments | Lioncash | 2 | -6/+6 | |
Multi-line doc comments still need the '<' after the ///, otherwise it's treated as a regular comment and makes the original doc comment broken in viewers, IDEs, etc. While we're at it, also fix some typos in the comments. | |||||
2018-09-04 | common/logging/filter: Replace C-style case with C++ static_cast | Lioncash | 1 | -1/+1 | |
2018-09-04 | common/logging/filter: Make constructor explicit | Lioncash | 1 | -1/+1 | |
Implicit conversions aren't desirable here. | |||||
2018-08-24 | file_util: Correct return value in early exit of ReadFileToString() | Lioncash | 1 | -1/+1 | |
While still essentially being zero, we should be returning a numeric value here, not a boolean typed value. | |||||
2018-08-23 | hex_util: Replace logic_errors with LOG_CRITICAL | Zach Hilman | 1 | -5/+17 | |
Makes it so malformed hex strings do not crash the entire program. | |||||
2018-08-21 | logging/text_formatter: Use empty braces for initializing CONSOLE_SCREEN_BUFFER_INFO instance | Lioncash | 1 | -1/+1 | |
The previous form of initializing done here is a C-ism, an empty set of braces is sufficient for initializing (and doesn't potentially cause missing brace warnings, given the first member of the struct is a COORD struct). | |||||
2018-08-21 | bit_field: Convert ToBool() into explicit operator bool | Lioncash | 1 | -2/+1 | |
Gets rid of a TODO that is long overdue. | |||||
2018-08-16 | common: Namespace hex_util.h/.cpp | Lioncash | 2 | -0/+8 | |
It's in the common code, so it should be under the Common namespace like everything else. | |||||
2018-08-15 | common/telemetry: Migrate core-independent info gathering to common | Lioncash | 2 | -0/+77 | |
Previously core itself was the library containing the code to gather common information (build info, CPU info, and OS info), however all of this isn't core-dependent and can be moved to the common code and use the common interfaces. We can then just call those functions from the core instead. This will allow replacing our CPU detection with Xbyak's which has better detection facilities than ours. It also keeps more architecture-dependent code in common instead of core. | |||||
2018-08-15 | common/xbyak_abi: Mark defined functions in header as inline | Lioncash | 1 | -7/+7 | |
Avoids potential One Definition Rule violations when these are used in the future. | |||||
2018-08-15 | common/xbyak: Use nested namespace specifiers where applicable | Lioncash | 2 | -8/+4 | |
2018-08-15 | common: Remove unused old breakpoint source files | Lioncash | 3 | -141/+0 | |
These currently aren't used and contain commented out source code that corresponds to Dolphin's JIT. Given our CPU code is organized quite differently, we shouldn't be keeping this around (at the moment it just adds to compile times marginally). | |||||
2018-08-14 | logging/backend: Use const reference to refer to log filter | Lioncash | 1 | -2/+3 | |
The filter is returned via const reference, so this was making a pointless copy of the entire filter every time a message was being pushed into the logger instance. | |||||
2018-08-13 | common/misc: use windows.h | Zhu PengFei | 1 | -1/+1 | |
linux-mingw does not really like this. | |||||
2018-08-12 | thread_queue_list: Make contains() and get_first() const member functions | Lioncash | 1 | -4/+4 | |
These don't directly modify the contained data. | |||||
2018-08-12 | thread_queue_list: Convert typedef to a type alias | Lioncash | 1 | -1/+1 | |
2018-08-12 | file_sys: Comply to style guidelines | Zach Hilman | 1 | -0/+2 | |
2018-08-12 | file_util: Add getter for NAND registration directory | Zach Hilman | 2 | -0/+8 | |
2018-08-12 | common: Move hex string processing to separate file | Zach Hilman | 3 | -0/+64 | |
2018-08-09 | file_util: Use enum instead of bool for specifing path behavior | Zach Hilman | 2 | -6/+9 | |
2018-08-09 | file_util: Add platform-specific slash option to SanitizePath | Zach Hilman | 2 | -5/+16 | |
2018-08-08 | common/logging: Add missing service log categories | Lioncash | 2 | -0/+16 | |
These weren't added when the services were introduced. | |||||
2018-08-08 | common/color: Remove unnecessary const qualifiers on return types | Lioncash | 1 | -7/+7 | |
These are just superfluous and not necessesary | |||||
2018-08-08 | common/color: Get rid of undefined behavior | Lioncash | 1 | -12/+24 | |
Gets rid of type punning via reinterpret_cast within functions. Instead, we use memcpy to transfer the contents across types. | |||||
2018-08-08 | vector_math: Use variable template version of is_signed in Vec classes | Lioncash | 1 | -3/+3 | |
Same behavior, less code | |||||
2018-08-08 | vector_math: Remove unimplemented function prototypes | Lioncash | 1 | -23/+0 | |
2018-08-08 | vector_math: Make functions constexpr where applicable | Lioncash | 1 | -154/+179 | |
2018-08-08 | vector_math: Convert typedefs to type aliases | Lioncash | 1 | -3/+3 | |
2018-08-08 | common: Convert type traits templates over to variable template versions where applicable | Lioncash | 5 | -11/+11 | |
Uses the C++17 inline variable variants | |||||
2018-08-07 | file_util: Avoid sign-conversions in WriteArray() and ReadArray() | Lioncash | 1 | -4/+8 | |
Prevents compiler warnings. | |||||
2018-08-07 | service: Add usb services | Lioncash | 2 | -0/+2 | |
Adds basic skeleton for the usb services based off the information provided by Switch Brew. | |||||
2018-08-05 | service: Add arp services | Lioncash | 2 | -0/+2 | |
Adds the basic skeleton of the arp services based off the information provided by Switch Brew. | |||||
2018-08-02 | math_util: Always initialize members of Rectangle | Lioncash | 1 | -5/+5 | |
Prevents potentially using the members uninitialized. | |||||
2018-08-02 | service: Add migration services | Lioncash | 2 | -0/+2 | |
Adds the basic skeleton for the mig:usr service based off information provided by Switch Brew. | |||||
2018-08-02 | logging/log: Remove incorrect description in PCV doc comment | Lioncash | 1 | -1/+1 | |
PCV isn't the parental control service. | |||||
2018-08-02 | service: Add psc services | Lioncash | 2 | -0/+2 | |
Adds the basic skeleton for the psc services based off the information provided by Switch Brew. | |||||
2018-08-01 | service: Add capture services | Lioncash | 2 | -0/+2 | |
Adds the basic skeleton for the capture services based off information provided by Switch Brew. | |||||
2018-08-01 | service: Add bpc and pcv services | Lioncash | 2 | -0/+4 | |
Adds the basic skeleton for the remaining pcv-related services based off information on Switch Brew. | |||||
2018-08-01 | Allow key loading from %YUZU_DIR%/keys in addition to ~/.switch | Zach Hilman | 3 | -0/+3 | |
2018-08-01 | Use SHGetKnownFolderPath instead of SHGetFolderPathA | Zach Hilman | 1 | -3/+4 | |
2018-08-01 | Extract mbedtls to cpp file | Zach Hilman | 1 | -1/+1 | |
2018-08-01 | Remove files that are not used | Zach Hilman | 4 | -0/+16 | |
2018-07-31 | service: Add fgm services | Lioncash | 2 | -0/+2 | |
Adds the basic skeleton for the fgm services based off the information provided by Switch Brew. | |||||
2018-07-31 | service: Add the pcie service | Lioncash | 2 | -0/+2 | |
Adds the basic skeleton of the pcie service based off information on Switch Brew. | |||||
2018-07-31 | Port #3758 from Citra (#852): Add missing std::string import in text_formatter | Tobias | 1 | -0/+1 | |
2018-07-29 | Port #3732 from Citra: "common: Fix compilation on ARM" | Cameron Cawley | 2 | -4/+2 | |
2018-07-29 | remove polymorphism issue | B3n30 | 1 | -2/+30 | |
2018-07-29 | common/string_utils: replace boost::transform with std counterpart | zhupengfei | 1 | -3/+5 | |
Note: according to cppreference it is necessary to convert char to unsigned char when using std::tolower and std::toupper, otherwise the behaviour would be undefined. | |||||
2018-07-29 | Port #3972 from Citra: "common/timer: use std::chrono, avoid platform-dependent code" | zhupengfei | 2 | -81/+31 | |
2018-07-29 | service: Add wlan services | Lioncash | 2 | -0/+2 | |
Adds the basic skeleton for the wlan services based off the information on Switch Brew. | |||||
2018-07-29 | service: Add btm services | Lioncash | 2 | -0/+2 | |
Adds the skeleton for the btm services based off the information on Switch Brew. | |||||
2018-07-27 | service: Add ncm services | Lioncash | 2 | -0/+2 | |
Adds the basic skeleton for the ncm services based off information on Switch Brew. | |||||
2018-07-27 | service: Add mii services | Lioncash | 2 | -0/+2 | |
Adds the skeleton for the mii services based off information provided by Switch Brew | |||||
2018-07-27 | service: Add nfc services | Lioncash | 2 | -0/+2 | |
Adds the skeleton of the nfc service based off the information provided on Switch Brew. | |||||
2018-07-27 | service/lbl: Implement EnableVrMode, DisableVrMode and GetVrMode | Lioncash | 2 | -0/+2 | |
Implements these functions according to the information available on Switch Brew. | |||||
2018-07-26 | service: Add ldn services | Lioncash | 2 | -0/+2 | |
Adds ldn services based off information provided by Switch Brew. | |||||
2018-07-24 | VFS Regression and Accuracy Fixes (#776) | Zach Hilman | 2 | -1/+13 | |
* Regression and Mode Fixes * Review Fixes * string_view correction * Add operator& for FileSys::Mode * Return std::string from SanitizePath * Farming Simulator Fix * Use != With mode operator& | |||||
2018-07-22 | string_util: Get rid of separate resize() in CPToUTF16(), UTF16ToUTF8(), CodeToUTF8() and UTF8ToUTF16() | Lioncash | 1 | -20/+22 | |
There's no need to perform the resize separately here, since the constructor allows presizing the buffer. Also move the empty string check before the construction of the string to make the early out more straightforward. | |||||
2018-07-22 | string_util: Use emplace_back() in SplitString() instead of push_back() | Lioncash | 1 | -2/+3 | |
This is equivalent to doing: push_back(std::string("")); which is likely not to cause issues, assuming a decent std::string implementation with small-string optimizations implemented in its design, however it's still a little unnecessary to copy that buffer regardless. Instead, we can use emplace_back() to directly construct the empty string within the std::vector instance, eliminating any possible overhead from the copy. | |||||
2018-07-22 | string_util: Remove unnecessary std::string instance in TabsToSpaces() | Lioncash | 2 | -8/+7 | |
We can just use the variant of std::string's replace() function that can replace an occurrence with N copies of the same character, eliminating the need to allocate a std::string containing a buffer of spaces. | |||||
2018-07-22 | file_util, vfs: Use std::string_view where applicable | Lioncash | 2 | -40/+55 | |
Avoids unnecessary construction of std::string instances where applicable. | |||||
2018-07-22 | file_util: Remove goto usages from Copy() | Lioncash | 1 | -24/+14 | |
We can just leverage std::unique_ptr to automatically close these for us in error cases instead of jumping to the end of the function to call fclose on them. | |||||
2018-07-22 | file_util: Use a u64 to represent number of entries | Lioncash | 2 | -13/+13 | |
This avoids a truncating cast on size. I doubt we'd ever traverse a directory this large, however we also shouldn't truncate sizes away. | |||||
2018-07-22 | file_util: std::move FST entries in ScanDirectoryTree() | Lioncash | 1 | -1/+1 | |
Avoids unnecessary copies when building up the FST entries. | |||||
2018-07-21 | file_util: Use an enum class for GetUserPath() | Lioncash | 3 | -50/+51 | |
Instead of using an unsigned int as a parameter and expecting a user to always pass in the correct values, we can just convert the enum into an enum class and use that type as the parameter type instead, which makes the interface more type safe. We also get rid of the bookkeeping "NUM_" element in the enum by just using an unordered map. This function is generally low-frequency in terms of calls (and I'd hope so, considering otherwise would mean we're slamming the disk with IO all the time) so I'd consider this acceptable in this case. | |||||
2018-07-21 | file_util: Remove explicit type from std::min() in GetPathWithoutTop() | Lioncash | 1 | -1/+1 | |
Given both operands are the same type, there won't be an issue with overload selection that requires making this explicit. | |||||
2018-07-21 | file_util: Remove redundant duplicate return in GetPathWithoutTop() | Lioncash | 1 | -1/+0 | |
2018-07-21 | common: Remove synchronized_wrapper.h | Lioncash | 2 | -86/+0 | |
This is entirely unused in the codebase. | |||||
2018-07-20 | param_package: Take std::string by value in string-based Set() function | Lioncash | 2 | -4/+6 | |
Allows avoiding string copies by letting the strings be moved into the function calls. | |||||
2018-07-20 | param_package: Use std::unordered_map's insert_or_assign instead of map indexing | Lioncash | 1 | -3/+3 | |
This avoids a redundant std::string construction if a key doesn't exist in the map already. e.g. data[key] requires constructing a new default instance of the value in the map (but this is wasteful, since we're already setting something into the map over top of it). | |||||
2018-07-20 | param_package: Get rid of file-static std::string construction | Lioncash | 1 | -3/+4 | |
Avoids potential dynamic allocation occuring during program launch | |||||
2018-07-20 | logging/filter: Use std::string_view in ParseFilterString() | Lioncash | 2 | -41/+40 | |
Allows avoiding constructing std::string instances, since this only reads an arbitrary sequence of characters. We can also make ParseFilterRule() internal, since it doesn't depend on any private instance state of Filter | |||||
2018-07-20 | logging/backend: Add missing standard includes | Lioncash | 2 | -4/+3 | |
A few inclusions were being satisfied indirectly. To prevent breakages in the future, include these directly. | |||||
2018-07-20 | logging/backend: Use std::string_view in RemoveBackend() and GetBackend() | Lioncash | 2 | -12/+13 | |
These can just use a view to a string since its only comparing against two names in both cases for matches. This avoids constructing std::string instances where they aren't necessary. | |||||
2018-07-19 | common/swap: Remove unnecessary const on return value of swap() | Lioncash | 1 | -1/+1 | |
2018-07-19 | common/swap: Use static_cast where applicable | Lioncash | 1 | -16/+16 | |
2018-07-19 | common/swap: Use using aliases where applicable | Lioncash | 1 | -33/+33 | |
2018-07-19 | common/common_funcs: Remove unused rotation functions | Lioncash | 1 | -38/+0 | |
These are unused and essentially don't provide much benefit either. If we ever need rotation functions, these can be introduced in a way that they don't sit in a common_* header and require a bunch of ifdefing to simply be available | |||||
2018-07-19 | common/misc: Deduplicate code in GetLastErrorMsg() | Lioncash | 2 | -12/+8 | |
Android and macOS have supported thread_local for quite a while, but most importantly is that we don't even really need it. Instead of using a thread-local buffer, we can just return a non-static buffer as a std::string, avoiding the need for that quality entirely. | |||||
2018-07-19 | file_util: return string by const reference for GetExeDirectory() | Lioncash | 2 | -2/+2 | |
This disallows modifying the internal string buffer (which shouldn't be modified anyhow). | |||||
2018-07-19 | string_util: Remove AsciiToHex() | Lioncash | 2 | -15/+0 | |
Easy TODO | |||||
2018-07-19 | Virtual Filesystem 2: Electric Boogaloo (#676) | Zach Hilman | 2 | -57/+116 | |
* Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression | |||||
2018-07-18 | externals: update fmt to version 5.1.0 | Lioncash | 1 | -1/+1 | |
Previously, we were on 4.1.0, which was a major version behind. | |||||
2018-07-18 | telemetry: Remove unnecessary Field constructor | Lioncash | 1 | -4/+1 | |
We can just take the value parameter by value which allows both moving into it, and copies at the same time, depending on the calling code. | |||||
2018-07-18 | telemetry: Make operator== and operator!= const member functions of Field | Lioncash | 1 | -2/+2 | |
These operators don't modify internal class state, so they can be made const member functions. While we're at it, drop the unnecessary inline keywords. Member functions that are defined in the class declaration are already inline by default. | |||||
2018-07-18 | telemetry: Default copy/move constructors and assignment operators | Lioncash | 1 | -14/+4 | |
This provides the equivalent behavior, but without as much boilerplate. While we're at it, explicitly default the move constructor, since we have a move-assignment operator defined. | |||||
2018-07-15 | Logging: Dump all logs in the queue on close in debug mode | James Rowe | 3 | -1/+12 | |
2018-07-14 | Logging: Don't lock the queue for the duration of the write | James Rowe | 1 | -3/+5 | |
2018-07-13 | More improvements to GDBStub (#653) | Hedges | 1 | -1/+1 | |
* More improvements to GDBStub - Debugging of threads should work correctly with source and assembly level stepping and modifying registers and memory, meaning threads and callstacks are fully clickable in VS. - List of modules is available to the client, with assumption that .nro and .nso are backed up by an .elf with symbols, while deconstructed ROMs keep N names. - Initial support for floating point registers. * Tidy up as requested in PR feedback * Tidy up as requested in PR feedback | |||||
2018-07-08 | Revert "Virtual Filesystem (#597)" | bunnei | 2 | -99/+57 | |
This reverts commit 77c684c1140f6bf3fb7d4560d06d2efb1a2ee5e2. | |||||
2018-07-07 | Port #3474 from Citra | fearlessTobi | 1 | -1/+1 | |
2018-07-07 | Port #3579 from Citra | fearlessTobi | 3 | -7/+7 | |
2018-07-06 | Virtual Filesystem (#597) | Zach Hilman | 2 | -57/+99 | |
* Add VfsFile and VfsDirectory classes * Finish abstract Vfs classes * Implement RealVfsFile (computer fs backend) * Finish RealVfsFile and RealVfsDirectory * Finished OffsetVfsFile * More changes * Fix import paths * Major refactor * Remove double const * Use experimental/filesystem or filesystem depending on compiler * Port partition_filesystem * More changes * More Overhaul * FSP_SRV fixes * Fixes and testing * Try to get filesystem to compile * Filesystem on linux * Remove std::filesystem and document/test * Compile fixes * Missing include * Bug fixes * Fixes * Rename v_file and v_dir * clang-format fix * Rename NGLOG_* to LOG_* * Most review changes * Fix TODO * Guess 'main' to be Directory by filename | |||||
2018-07-06 | Remove some references to Citra | fearlessTobi | 2 | -2/+2 | |
2018-07-03 | Fix build and address review feedback | bunnei | 1 | -4/+4 | |
2018-07-03 | Add configurable logging backends | James Rowe | 5 | -18/+257 | |
2018-07-03 | Update clang format | James Rowe | 3 | -14/+11 | |
2018-07-03 | Rename logging macro back to LOG_* | James Rowe | 7 | -70/+70 | |
2018-06-07 | Common/string_util: add StringFromBuffer function | mailwl | 2 | -0/+6 | |
convert input buffer (std::vector<u8>) to string, stripping zero chars | |||||
2018-06-05 | Service/MM: add service and stub some functions | mailwl | 2 | -0/+2 | |
2018-05-28 | Service/BCAT: add module and services | mailwl | 2 | -0/+2 | |
2018-05-02 | vector_math: Ensure members are always initialized | Lioncash | 1 | -9/+9 | |
Ensures that values are always in a well-defined state. | |||||
2018-04-30 | string_util: Remove StringFromFormat() and related functions | Lioncash | 4 | -91/+9 | |
Given we utilize fmt, we don't need to provide our own functions for formatting anymore | |||||
2018-04-30 | file_util: Make move constructor/assignment operator and related functions noexcept | Lioncash | 2 | -6/+6 | |
Without this, it's possible to get compilation failures in the (rare) scenario where a container is used to store a bunch of live IOFile instances, as they may be using std::move_if_noexcept under the hood. Given these definitely don't throw exceptions this is also not incorrect to add either. | |||||
2018-04-30 | file_util: Add static assertions to ReadBytes() and WriteBytes() | Lioncash | 1 | -2/+6 | |
Ensure that the actual types being passed in are trivially copyable. The internal call to ReadArray() and WriteArray() will always succeed, since they're passed a pointer to char* which is always trivially copyable. | |||||
2018-04-28 | file_util: Remove compiler version checks around is_trivially_copyable() | Lioncash | 1 | -8/+0 | |
The minimum clang/GCC versions we support already support this. We can also remove is_standard_layout(), as fread and fwrite only require the type to be trivially copyable. | |||||
2018-04-27 | log: Remove old logging macros and functions | Lioncash | 2 | -54/+1 | |
Now that the old macros are no longer used, we can remove all functionality related to them. | |||||
2018-04-27 | general: Convert assertion macros over to be fmt-compatible | Lioncash | 2 | -5/+6 | |
2018-04-27 | Switched to NGLOG_WARNING | David Marcec | 1 | -1/+1 | |
2018-04-27 | common: Move logging macros over to new fmt-capable macros where applicable | Lioncash | 4 | -67/+67 | |
2018-04-26 | Added PREPO to logging backend, Removed comments from SaveReportWithUser | David Marcec | 1 | -0/+1 | |
2018-04-26 | common: Remove chunk_file.h and linear_disk_cache.h | Lioncash | 3 | -792/+0 | |
These are unused (and given chunk_file references Dolphin's >SVN< I doubt they were going to be used). | |||||
2018-04-23 | GetIUserInterface->CreateUserInterface, Added todos and stub logs. Playreport->PlayReport. | David Marcec | 1 | -0/+1 | |
2018-04-20 | math_util: Remove the Clamp() function | Lioncash | 1 | -5/+0 | |
C++17 adds clamp() to the standard library, so we can remove ours in favor of it. | |||||
2018-04-20 | vector_math: Remove AsArray() and Write() functions from Vec[2,3,4] | Lioncash | 1 | -30/+0 | |
These are all unused and the Write() ones should arguably not even be in the interface. There are better ways to provide this if we ever need it (like iterators). | |||||
2018-04-20 | common: Remove code_block.h | Lioncash | 2 | -86/+0 | |
We use dynarmic, so this is unued. Anything else we need will likely use Xbyak, so this header isn't necessary any more. | |||||
2018-04-20 | common/thread: Remove unnecessary feature checking for thread_local | Lioncash | 1 | -19/+0 | |
Every compiler we require already supports it. | |||||
2018-04-20 | common_funcs: Remove ARRAY_SIZE macro | Lioncash | 1 | -2/+0 | |
C++17 has non-member size() which we can just call where necessary. | |||||
2018-04-20 | common_funcs: Remove check for VS versions that we don't even support | Lioncash | 1 | -5/+0 | |
We don't support any VS versions that don't already have snprintf in the standard library implementation. | |||||
2018-04-20 | common_types: Convert typedefs to using aliases | Lioncash | 1 | -12/+12 | |
May as well while we're making changes to this file. | |||||
2018-04-20 | common_types: Remove unnecessary check for whether or not__func__ is defined | Lioncash | 1 | -6/+0 | |
VS has supported this for quite a while. | |||||
2018-04-18 | bit_field: Remove is_pod check, add is_trivially_copyable_v. | bunnei | 1 | -6/+1 | |
2018-04-14 | common: Port cityhash code from Citra. | bunnei | 5 | -147/+502 | |
2018-04-14 | bit_field: Make all methods constexpr. | bunnei | 1 | -5/+5 | |
2018-04-06 | Update fmtlib to fix msvc warnings | James Rowe | 2 | -5/+8 | |
Additionally, when updating fmtlib, there was a change in fmtlib broke how the old logging macro was overloaded, so this works around that by just naming the fmtlib macro impl something different | |||||
2018-04-03 | logging: Change FmtLogMessage to use variadic template instead of FMT_VARIADIC | Daniel Lim Wee Soong | 2 | -5/+11 | |
Due to premature merging of #262 I think the build may be failing right now. Should merge this ASAP to fix it. | |||||
2018-04-02 | common: fix swap functions on Bitrig and OpenBSD | Daniel Lim Wee Soong | 1 | -1/+13 | |
swap{16,32,64} are defined as macros on the two, but client code tries to invoke them as Common::swap{16,32,64}, which naturally doesn't work. This hack redefines the macros as inline functions in the Common namespace: the bodies of the functions are the same as the original macros, but relying on OS-specific implementation details like this is of course brittle. | |||||
2018-03-30 | service: Add NFP module interface. | bunnei | 2 | -0/+2 | |
service: Initialize NFP service. Log: Add NFP service as a log subtype. | |||||
2018-03-27 | telemetry.h: Reword comment from citra to yuzu | N00byKing | 1 | -1/+1 | |
2018-03-26 | log.h: Change comment from citra to yuzu | N00byKing | 1 | -1/+1 | |
2018-03-26 | file_util.h: Update Comment from citra to yuzu | N00byKing | 1 | -1/+1 | |
2018-03-26 | cpu_detect.cpp: Change comment from citra to yuzu | N00byKing | 1 | -1/+1 | |
2018-03-23 | Service/SSL: add ssl service | mailwl | 2 | -0/+2 | |
2018-03-22 | Remove dependency chrono | Daniel Lim Wee Soong | 1 | -1/+0 | |
Earlier chrono was included but after some code changed it was no longer needed Forgot to remove it so I'm removing it now | |||||
2018-03-22 | Logging: Create logging macros based on fmtlib | Daniel Lim Wee Soong | 10 | -67/+112 | |
Add a new set of logging macros based on fmtlib Similar but not exactly the same as https://github.com/citra-emu/citra/pull/3533 Citra currently uses a different version of fmt, which does not support FMT_VARIADIC so make_args is used instead. On the other hand, yuzu uses fmt 4.1.0 which doesn't have make_args yet so FMT_VARIADIC is used. | |||||
2018-03-22 | Service/spl: add module and services | mailwl | 2 | -0/+2 | |
2018-03-21 | CMake: Set EMU_ARCH_BITS in CMakeLists.txt | N00byKing | 2 | -35/+0 | |
2018-03-20 | Service: add fatal:u, fatal:p services | mailwl | 2 | -0/+2 | |
2018-02-20 | Service/AOC: stub ListAddOnContent function | mailwl | 2 | -0/+2 | |
2018-02-19 | logging: Add category for Friend service. | bunnei | 2 | -0/+2 | |
2018-02-15 | log: Add logging category for NS services. | bunnei | 2 | -0/+2 | |
2018-02-05 | logger: Add Time service logging category. | bunnei | 2 | -0/+2 | |
2018-02-05 | logger: Add SET service logging category. | bunnei | 2 | -15/+11 | |
2018-02-05 | logger: Add PCTL service logging category. | bunnei | 2 | -0/+2 | |
2018-02-05 | logger: Add LM service logging category. | bunnei | 2 | -0/+2 | |
2018-02-05 | logger: Add APM service logging category. | bunnei | 2 | -0/+2 | |
2018-02-05 | logger: Add NIFM service logging category. | bunnei | 2 | -0/+2 | |
2018-02-05 | logger: Add VI service logging category. | bunnei | 2 | -0/+2 | |
2018-02-04 | logger: Add AM service logging category. | bunnei | 2 | -0/+2 | |
2018-02-04 | logger: Add "account" service logging category. | bunnei | 2 | -0/+2 | |
2018-01-25 | audout:u OpenAudioOut and IAudioOut (#138) | st4rk | 2 | -0/+2 | |
* Updated the audout:u and IAudioOut, now it might work with RetroArch without trigger an assert, however it's not the ideal implementation * Updated the audout:u and IAudioOut, now it might work with RetroArch without trigger an assert, however it's not the ideal implementation * audout:u OpenAudioOut implementation and IAudioOut cmd 1,2,3,4,5 implementation * using an enum for audio_out_state as well as changing its initialize to member initializer list * Minor fixes, added Service_Audio for LOG_*, changed PcmFormat enum to EnumClass * Minor fixes, added Service_Audio for LOG_*, changed PcmFormat enum to EnumClass * added missing Audio loggin subclass, minor fixes, clang comment breakline * Solving backend logging conflict * minor fix * Fixed duplicated Service NVDRV in backend.cpp, my bad | |||||
2018-01-24 | logging: add missing NVDRV subclass to macro list | Rozlette | 1 | -0/+1 | |
2018-01-21 | Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid (#114) | David | 1 | -0/+1 | |
* Added nvmemp, Added /dev/nvhost-ctrl, SetClientPID now stores pid * used clang-format-3.9 instead * lowercase pid * Moved nvmemp handlers to cpp * Removed unnecessary logging for NvOsGetConfigU32. Cleaned up log and changed to LOG_DEBUG * using std::arrays instead of c arrays * nvhost get config now uses std::array completely * added pid logging back * updated cmakelist * missing includes * added array, removed memcpy * clang-format6.0 | |||||
2018-01-21 | Fix spelling error in CMakeLists | Matthew Brener | 1 | -1/+1 | |
Minor spelling error of its --> it's | |||||
2018-01-21 | Format: Run the new clang format on everything | James Rowe | 19 | -43/+87 | |
2018-01-18 | CMakeLists: Derive the source directory grouping from targets themselves | Lioncash | 1 | -63/+57 | |
Removes the need to store to separate SRC and HEADER variables, and then construct the target in most cases. | |||||
2018-01-18 | telemetry: Silence initialization order warnings | Lioncash | 1 | -2/+2 | |
2018-01-17 | loggin: Add IPC logging category. | bunnei | 2 | -1/+3 | |
2018-01-14 | Minor cleanup | MerryMage | 1 | -1/+1 | |
2018-01-13 | Removing unused settings and yuzu rebranding | James Rowe | 1 | -5/+1 | |
2018-01-09 | fix macos build | MerryMage | 1 | -1/+1 | |
2018-01-09 | CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119) | B3n30 | 2 | -0/+123 | |
* CoreTiming: New CoreTiming; Add Test for CoreTiming | |||||
2017-10-23 | logging: Rename category "Core_ARM11" to "Core_ARM". | bunnei | 2 | -2/+2 | |
2017-10-15 | core: Refactor MakeMagic usage and remove dead code. | bunnei | 1 | -0/+8 | |
2017-10-15 | hle: Initial implementation of NX service framework and IPC. | bunnei | 2 | -2/+2 | |
2017-10-10 | hle: Remove a large amount of 3ds-specific service code. | bunnei | 2 | -42/+0 | |
2017-09-30 | arm: Use 64-bit addressing in a bunch of places. | bunnei | 1 | -2/+2 | |
2017-09-30 | Fixed type conversion ambiguity | Huw Pascoe | 3 | -11/+5 | |
2017-09-27 | Disable unary operator- on Math::Vec2/Vec3/Vec4 for unsigned types. | Subv | 1 | -4/+8 | |
It is unlikely we will ever use this without first doing a Cast to a signed type. Fixes 9 "unary minus operator applied to unsigned type, result still unsigned" warnings on MSVC2017.3 | |||||
2017-08-04 | common: Add build timestamp to scm_rev. | bunnei | 2 | -0/+3 | |
2017-07-11 | vector_math: remove dead template parameter | wwylele | 1 | -1/+1 | |
2017-07-11 | vector_math: remove broken SFINAE stuff | wwylele | 1 | -3/+2 | |
this was originally added to eliminate warnings on MSVC, but it doesn't work for custom types. | |||||
2017-07-11 | SwRasterizer: Flip the vertex quaternions before clipping (if necessary). | Subv | 1 | -1/+1 | |
2017-07-11 | SwRasterizer: Corrected the light LUT lookups. | Subv | 1 | -0/+5 | |
2017-07-10 | logging: Add WebService as a log cateogry. | bunnei | 2 | -1/+3 | |
2017-07-07 | Implement basic virtual Room support based on enet (#2803) | B3n30 | 2 | -0/+2 | |
* Added support for network with ENet lib, connecting is possible, but data can't be sent, yet. * fixup! Added support for network with ENet lib, * fixup! CLang * fixup! Added support for network with ENet lib, * fixup! Added support for network with ENet lib, * fixup! Clang format * More fixups! * Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Clang again * fixup! Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Moved ENetHost* and ENetPeer* into pimpl classes | |||||
2017-06-30 | Remove unnecessary WIN32_LEAN_AND_MEAN macro definition | Kloen | 1 | -1/+0 | |
2017-06-09 | Remove unused import in break_points.cpp (#2763) | Kloen Lansfiel | 1 | -1/+0 | |
2017-05-28 | CMake: Create INTERFACE targets for microprofile and nihstro | Yuri Kunde Schlesner | 1 | -1/+1 | |
2017-05-28 | CMake: Use IMPORTED target for Boost | Yuri Kunde Schlesner | 1 | -0/+1 | |
2017-05-28 | CMake: Correct inter-module dependencies and library visibility | Yuri Kunde Schlesner | 1 | -1/+1 | |
Modules didn't correctly define their dependencies before, which relied on the frontends implicitly including every module for linking to succeed. Also changed every target_link_libraries call to specify visibility of dependencies to avoid leaking definitions to dependents when not necessary. | |||||
2017-05-28 | Common: Fix some out-of-style includes | Yuri Kunde Schlesner | 3 | -5/+5 | |
2017-05-28 | Move framebuffer_layout from Common to Core | Yuri Kunde Schlesner | 3 | -214/+0 | |
This removes a dependency inversion between core and common. It's also the proper place for the file since it makes screen layout decisions specific to the 3DS. | |||||
2017-05-25 | Common: Clean up meta-template logic in BitField | Yuri Kunde Schlesner | 1 | -3/+3 | |
2017-05-25 | Make BitField and ResultCode constexpr-initializable | Yuri Kunde Schlesner | 1 | -23/+42 | |
2017-05-25 | common: Add a generic interface for logging telemetry fields. | bunnei | 3 | -0/+238 | |
2017-05-20 | pica/swrasterizer: implement procedural texture | wwylele | 1 | -0/+10 | |
2017-05-08 | Remove unused symbols code | Yuri Kunde Schlesner | 3 | -78/+0 | |
2017-03-13 | common/cpu_detect: Add missing include and fix namespace scope | Yuri Kunde Schlesner | 1 | -5/+7 | |
2017-03-11 | file_util: Log when using local user directory | wwylele | 1 | -0/+2 | |
2017-03-08 | file_util: lower logging level for harmless cases | wwylele | 1 | -9/+7 | |
2017-03-01 | Input: add device and factory template | wwylele | 2 | -0/+2 | |
2017-03-01 | Common: add ParamPackage | wwylele | 3 | -0/+162 | |
2017-02-27 | Remove built-in (non-Microprofile) profiler | Yuri Kunde Schlesner | 3 | -186/+0 | |
2017-02-27 | SynchronizedWrapper: Add Lock convenience method | Yuri Kunde Schlesner | 1 | -18/+25 | |
2017-02-23 | Add custom layout settings. | SonofUgly | 2 | -0/+27 | |
2017-02-23 | Gui: Change title bar to include build name | James Rowe | 3 | -0/+26 | |
Nightly builds now have "Citra Nightly" in the titlebar Bleeding edge builds now have "Citra Bleeding Edge" in the titlebar | |||||
2017-02-21 | HW: add AES engine & implement AES-CCM | wwylele | 3 | -0/+3 | |
2017-02-14 | applied the change suggested by @wwylele | noah the goodra | 1 | -0/+1 | |
2017-02-14 | added http service enum to the log.h file | noah the goodra | 1 | -0/+1 | |
2017-01-31 | Common/x64: remove legacy emitter and abi (#2504) | Weiyi Wang | 5 | -4201/+1 | |
These are not used any more since we moved shader JIT to xbyak. | |||||
2017-01-31 | file_util: Fixed implicit type conversion warning (#2503) | noah the goodra | 1 | -2/+2 | |
2017-01-30 | Common: Optimize BitSet iterator | Yuri Kunde Schlesner | 1 | -14/+19 | |
2017-01-28 | common: add <cstddef> to hash.h | Kloen | 1 | -0/+1 | |
2017-01-28 | common: switch ComputeHash64 len param to size_t instead of int, fix warning on MSVC on dsp_dsp.cpp | Kloen | 2 | -6/+6 | |
2016-12-30 | Service/NFC: stub GetTagInRangeEvent | mailwl | 2 | -0/+2 | |
Fix Fatal Error in Mini-Mario & Friends - amiibo Challenge | |||||
2016-12-26 | Common: add Quaternion | wwylele | 2 | -0/+45 | |
2016-12-26 | vector math: add implementation of Length and Normalize | wwylele | 1 | -0/+19 | |
2016-12-26 | MathUtil: add PI constant | wwylele | 1 | -0/+2 | |
2016-12-26 | Common::Event: add WaitUntil | wwylele | 1 | -0/+10 | |
2016-12-23 | file_util: fix missing sysdata path | wwylele | 1 | -3/+1 | |
2016-12-23 | core: Move emu_window and key_map into core | MerryMage | 5 | -646/+0 | |
* Removes circular dependences (common should not depend on core) | |||||
2016-12-22 | file_util: Remove unused paths. | bunnei | 3 | -87/+3 | |
2016-12-18 | Fixed GPLv2 license text in the start. | Vamsi Krishna | 1 | -1/+1 | |
2016-12-15 | VideoCore: Convert x64 shader JIT to use Xbyak for assembly | Yuri Kunde Schlesner | 3 | -1/+234 | |
2016-12-13 | Common: Fix gcc build on macOS | Jeffrey Pfau | 1 | -0/+11 | |
2016-12-12 | csnd:SND reformat source code | mailwl | 2 | -0/+2 | |
2016-12-05 | Support mingw cross-compile | Jannik Vogel | 5 | -5/+6 | |
2016-11-30 | WINVER definition moved to CMake and cleanup | freiro | 1 | -3/+0 | |
2016-11-30 | Set client SDK version to Service APIs | mailwl | 1 | -3/+2 | |
2016-11-29 | Build: Fixed a few warnings. | Subv | 1 | -4/+4 | |
2016-11-26 | Move to AppData/Roaming/Citra/ | freiro | 1 | -1/+1 | |
2016-11-26 | Removed /user/ from path | freiro | 1 | -2/+1 | |
2016-11-25 | MIC_U: Stub service funcions | mailwl | 2 | -0/+2 | |
2016-11-24 | Switch to AppData/Roaming | freiro | 2 | -4/+4 | |
2016-11-19 | Return by value and other fixes | freiro | 2 | -14/+8 | |
2016-11-19 | Win32 move default user folder location to AppData | freiro | 2 | -0/+24 | |
2016-11-14 | Add mingw compile support | James Rowe | 1 | -2/+3 | |
2016-11-12 | Round the rectangle size to prevent float to int casting issues | James Rowe | 3 | -8/+9 | |
And other minor style changes | |||||
2016-11-05 | Add default hotkey to swap primary screens. | James Rowe | 4 | -7/+10 | |
Also minor style changes | |||||
2016-11-05 | Rework frame layouts to use a max rectangle instead of hardcoded calculations | James Rowe | 2 | -250/+100 | |
2016-11-05 | LargeFrameLayout + Swapped | SonofUgly | 1 | -50/+36 | |
Make small screen stay at 1x, and large screen maintain its aspect ratio. | |||||
2016-11-05 | Support additional screen layouts. | James Rowe | 5 | -73/+382 | |
Allows users to choose a single screen layout or a large screen layout. Adds a configuration option to change the prominent screen. | |||||
2016-10-28 | common: use system bswap* functions on more BSDs | Jan Beich | 1 | -2/+5 | |
2016-10-28 | common: use system CPUID routine on DragonFly as well | Jan Beich | 1 | -2/+2 | |
2016-10-28 | common: some FreeBSD headers are incomplete to avoid namespace pollution | Jan Beich | 1 | -1/+3 | |
In file included from src/common/x64/cpu_detect.cpp:16: /usr/include/machine/cpufunc.h:66:17: error: unknown type name 'u_int' static __inline u_int ^ /usr/include/machine/cpufunc.h:67:6: error: unknown type name 'u_int' bsfl(u_int mask) ^ /usr/include/machine/cpufunc.h:69:2: error: unknown type name 'u_int' u_int result; ^ /usr/include/machine/cpufunc.h:75:17: error: unknown type name 'u_long'; did you mean 'long'? static __inline u_long ^ /usr/include/machine/cpufunc.h:76:6: error: unknown type name 'u_long'; did you mean 'long'? bsfq(u_long mask) ^ /usr/include/machine/cpufunc.h:78:2: error: use of undeclared identifier 'u_long'; did you mean 'long'? u_long result; ^ [...] | |||||
2016-10-28 | common: convert to standard stat()/fstat() interfaces | Anthony J. Bentley | 1 | -15/+10 | |
Most modern Unix environments use 64-bit off_t by default: OpenBSD, FreeBSD, OS X, and Linux libc implementations such as Musl. glibc is the lone exception; it can default to 32 bits but this is configurable by setting _FILE_OFFSET_BITS. Avoiding the stat64()/fstat64() interfaces is desirable because they are nonstandard and not implemented on many systems (including OpenBSD and FreeBSD), and using 64 bits for stat()/fstat() is either the default or trivial to set up. | |||||
2016-10-28 | common: stat64 is non-standard, hide on a random Unix | Jan Beich | 1 | -1/+1 | |
src/common/file_util.cpp:79:19: error: variable has incomplete type 'struct stat64' struct stat64 file_info; ^ src/common/file_util.cpp:79:12: note: forward declaration of 'stat64' struct stat64 file_info; ^ src/common/file_util.cpp:99:19: error: variable has incomplete type 'struct stat64' struct stat64 file_info; ^ src/common/file_util.cpp:99:12: note: forward declaration of 'stat64' struct stat64 file_info; ^ src/common/file_util.cpp:342:19: error: variable has incomplete type 'struct stat64' struct stat64 buf; ^ src/common/file_util.cpp:342:12: note: forward declaration of 'stat64' struct stat64 buf; ^ src/common/file_util.cpp:359:19: error: variable has incomplete type 'struct stat64' struct stat64 buf; ^ src/common/file_util.cpp:359:12: note: forward declaration of 'stat64' struct stat64 buf; ^ 4 errors generated. | |||||
2016-10-28 | common: only FreeBSD has thread affinity compatible with Linux | Jan Beich | 1 | -1/+5 | |
src/common/thread.cpp:90:5: error: unknown type name 'cpu_set_t'; did you mean 'cpuset_t'? cpu_set_t cpu_set; ^~~~~~~~~ cpuset_t /usr/include/sys/_cpuset.h:48:24: note: 'cpuset_t' declared here typedef struct _cpuset cpuset_t; ^ 1 error generated. | |||||
2016-10-28 | common: define routines to set thread name on more BSDs | Jan Beich | 1 | -2/+4 | |
src/common/thread.cpp:123:5: error: use of undeclared identifier 'pthread_setname_np' pthread_setname_np(pthread_self(), szThreadName); ^ 1 error generated. | |||||
2016-10-20 | Fix typos | Ricardo de Almeida Gonzaga | 2 | -2/+2 | |
2016-10-02 | Update the stub code of BOSS | JamePeng | 2 | -0/+2 | |
2016-09-30 | Common: Remove dangerous Vec[234] array constructors | Yuri Kunde Schlesner | 1 | -3/+0 | |
They're not currently used, and it's easy to accidentally pass a single pointer argument to them, causing an out-of-bounds read. | |||||
2016-09-21 | Remove special rules for Windows.h and library includes | Yuri Kunde Schlesner | 3 | -1/+3 | |
2016-09-21 | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 10 | -11/+11 | |
2016-09-21 | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 32 | -54/+13 | |
This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation. | |||||
2016-09-19 | Manually tweak source formatting and then re-run clang-format | Yuri Kunde Schlesner | 15 | -61/+32 | |
2016-09-18 | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 51 | -3389/+4172 | |
2016-09-15 | microprofile: Double buffer size to 16MB. | bunnei | 1 | -1/+1 | |
2016-09-13 | Common: readdir_r() is deprecated, switch to readdir(). | Emmanuel Gil Peyrot | 1 | -6/+2 | |
2016-07-23 | Protection against a resize of size 0 | Alexandre LittleWhite Laurent | 1 | -4/+3 | |
2016-06-25 | Remove superfluous std::move in return std::move(local_var) | scurest | 1 | -1/+1 | |
2016-06-19 | Fix recursive scanning of directories | Yuri Kunde Schlesner | 2 | -17/+12 | |
ForeachDirectoryEntry didn't actually do anything with the `recursive` parameter, and the corresponding callback parameter was shadowing the actual recursion counters in the user functions. | |||||
2016-05-27 | common_funcs: Provide rotr and rotl for MSVC | MerryMage | 1 | -12/+18 | |
2016-05-21 | Common: Make recursive FileUtil functions take a maximum recursion | Emmanuel Gil Peyrot | 2 | -24/+36 | |
Fixes #1115. Also improves the performances of DiskArchive’s directory implementation a lot, simply by not going through the entire tree instead of just listing the first level files. Thanks to JayRoxFox for rebasing this on current master! | |||||
2016-05-15 | fixup! fixup! Refactor input system | wwylele | 2 | -7/+7 | |
2016-05-15 | fixup! Refactor input system | wwylele | 2 | -20/+24 | |
2016-05-15 | implement circle pad modifier | wwylele | 2 | -4/+22 | |
2016-05-15 | Refactor input subsystem | wwylele | 4 | -23/+210 | |
2016-05-09 | swap: Get rid of pointer casting for swapping structs | Lioncash | 1 | -5/+5 | |
These shouldn't haphazardly convert types | |||||
2016-05-09 | swap: Get rid of undefined behavior in swapf and swapd | Lioncash | 1 | -14/+18 | |
This isn't well-defined in C++. | |||||
2016-05-09 | swap: Remove unused methods | Lioncash | 1 | -28/+0 | |
Also gets rid of pointer data variants as this prevents the use of the regular swapping routines as unary predicates in std lib functions. They also cast to stricter alignment types, which is undefined behavior. | |||||
2016-05-07 | AudioCore: SDL2 Sink | MerryMage | 2 | -1/+3 | |
2016-04-30 | VideoCore: Run include-what-you-use and fix most includes. | Emmanuel Gil Peyrot | 6 | -5/+14 | |
2016-04-29 | Common: Remove section measurement from profiler (#1731) | Yuri Kunde Schlesner | 5 | -259/+6 | |
This has been entirely superseded by MicroProfile. The rest of the code can go when a simpler frametime/FPS meter is added to the GUI. | |||||
2016-04-29 | Make Citra build with MICROPROFILE_ENABLED set to 0 (#1709) | Henrik Rydgård | 1 | -0/+4 | |
* Make Citra build with MICROPROFILE_ENABLED set to 0 * Buildfix with microprofile kept on * moc did not like a dialog to conditionally exist. * Cleanup * Fix end of line | |||||
2016-04-24 | assert: Allow UNREACHABLE_MSG to have just one argument | Sam Spilsbury | 1 | -1/+1 | |
2016-04-23 | Protect use of std::is_trivially_copyable to compile with GCC 4.9 | LittleWhite | 1 | -0/+4 | |
2016-04-23 | assert: Add _MSG variations for UNREACHABLE and UNIMPLEMENTED | Sam Spilsbury | 1 | -0/+2 | |
2016-04-15 | fix driver root identification on Windows | wwylele | 1 | -3/+12 | |
2016-04-14 | Thread: Make Barrier reusable | MerryMage | 1 | -5/+5 | |
2016-04-14 | common/thread: Correct code style | MerryMage | 1 | -21/+19 | |
2016-04-14 | emitter: Add CALL that can be fixed up. | bunnei | 2 | -0/+13 | |
2016-04-14 | emitter: Support arbitrary FixupBranch targets. | bunnei | 2 | -0/+17 | |
2016-04-14 | file_util: In-class initialize data members | Lioncash | 2 | -6/+4 | |
2016-04-14 | file_util: const qualify IOFile's Tell and GetSize functions | Lioncash | 2 | -8/+8 | |
2016-04-14 | file_util: Don't expose IOFile internals through the API | Lioncash | 2 | -30/+4 | |
2016-04-14 | file_util: Check for is_trivially_copyable | Lioncash | 1 | -3/+5 | |
Also applies the template checks to ReadArray as well. | |||||
2016-04-14 | file_util: Make IOFile data members private | Lioncash | 1 | -0/+1 | |
2016-04-12 | FileUtil: Missing #include, Add const to IOFile methods | MerryMage | 1 | -6/+7 | |
2016-04-08 | cecd:u: stub GetCecStateAbbreviated (#1648) | mailwl | 1 | -1/+1 | |
2016-04-05 | Common: Remove Common::make_unique, use std::make_unique | MerryMage | 2 | -18/+0 | |
2016-04-02 | Dummy implementation dlp:SRVR Service. | exhalatio | 2 | -0/+2 | |
2016-03-31 | remove debug code | LFsWang | 1 | -1/+1 | |
2016-03-31 | cecd:u: stub GetCecInfoEventHandle, GetChangeStateEventHandle | mailwl | 2 | -0/+2 | |
2016-03-31 | fix unicode url problem on windows | LFsWang | 1 | -6/+18 | |
2016-03-31 | Fix encode problem On Windows | LFsWang | 3 | -21/+26 | |
2016-03-27 | frd:u: Initial stub some functions | mailwl | 2 | -0/+2 | |
2016-03-26 | remove unnecessary const | wwylele | 1 | -2/+2 | |
2016-03-22 | implement accel and gyro backend | wwylele | 1 | -0/+48 | |
2016-03-18 | vector_math: Add missing member in Vec4's SetZero function | Lioncash | 1 | -1/+4 | |
2016-03-14 | Reorganize the ndm service path for dummy implement function | JamePeng | 2 | -0/+2 | |
SuspendDaemons , ResumeDaemons , OverrideDefaultDaemons The NDM file move to /core/hle/service/ndm/ now! | |||||
2016-03-13 | PICA: Align vertex attributes | Jannik Vogel | 2 | -0/+23 | |
2016-03-13 | common_types: Make NonCopyable constructor constexpr | Lioncash | 1 | -1/+1 | |
2016-03-13 | common_types: Specify const in deleted copy constructor/assignment operator | Lioncash | 1 | -2/+2 | |
2016-03-09 | emitter: templatize ImmPtr | Lioncash | 1 | -2/+6 | |
2016-03-09 | emitter: constexpr-ify helper functions | Lioncash | 1 | -19/+17 | |
2016-03-09 | emitter: Get rid of CanDoOpWith | Lioncash | 1 | -7/+0 | |
This was removed in Dolphin as there were no particular uses for it. I'm sure the same will apply to citra. | |||||
2016-03-09 | emitter: constexpr-ify OpArg | Lioncash | 1 | -30/+30 | |
2016-03-09 | emitter: friend class OpArg with XEmitter | Lioncash | 1 | -3/+4 | |
2016-03-09 | emitter: Remove unimplemented prototype | Lioncash | 1 | -1/+0 | |
2016-03-09 | Common: Get rid of alignment macros | Lioncash | 1 | -9/+1 | |
The gl rasterizer already uses alignas, so we may as well move everything over. | |||||
2016-02-27 | x64 Emitter: Fix L bit in VEX prefix | MerryMage | 1 | -2/+2 | |
2016-02-26 | Initial implementation ir:user | mailwl | 2 | -0/+2 | |
2016-02-21 | AudioCore: Skeleton Implementation | MerryMage | 3 | -1/+5 | |
This commit: * Adds a new subproject, audio_core. * Defines structures that exist in DSP shared memory. * Hooks up various other parts of the emulator into audio core. This sets the foundation for a later HLE DSP implementation. | |||||
2016-02-12 | BitField: Make trivially copyable and remove assignment operator | MerryMage | 2 | -26/+22 | |
2016-02-05 | backend: defaulted move constructor/assignment | Lioncash | 1 | -18/+2 | |
2016-01-28 | color: Make trivial helpers constexpr | Lioncash | 1 | -8/+8 | |
2016-01-25 | key_map: Use std::tie for comparisons | Lioncash | 1 | -7/+7 | |
2016-01-16 | DiskDirectory: Initialize the directory member with valid info. | Subv | 1 | -1/+1 | |
2015-12-23 | Add missing return values in ForeachDirectoryEntry | LFsWang | 1 | -4/+14 | |
ForeachDirectoryEntry is changed by #1256 ,but return value at last line was missing. | |||||
2015-11-27 | Refactor ScanDirectoryTreeAndCallback to separate errors and retvals | archshift | 2 | -50/+53 | |
ScanDirectoryTreeAndCallback, before this change, coupled error/return codes and actual return values (number of entries found). This caused confusion and difficulty interpreting the precise way the function worked. Supersedes, and closes #1255. | |||||
2015-11-23 | Services/Cam: Added new log type and camera enums from 3dbrew. | Subv | 2 | -0/+2 | |
Followup to #1102 Original author @mailwl | |||||
2015-11-12 | fix failure on gcc and clang | wwylele | 1 | -3/+3 | |
2015-11-12 | disable unary minus when the type is not signed | wwylele | 1 | -0/+4 | |
silent warning C4146 on msvc | |||||
2015-10-22 | gl_rasterizer: Use MMH3 hash for shader cache hey. | bunnei | 1 | -18/+0 | |
- Includes a check to confirm no hash collisions. | |||||
2015-10-22 | renderer_opengl: Refactor shader generation/caching to be more organized + various cleanups. | bunnei | 1 | -0/+18 | |
2015-10-04 | Implement gdbstub | polaris- | 2 | -0/+2 | |
2015-10-01 | bit_field: Re-enable code on MSVC | Lioncash | 1 | -11/+0 | |
2015-10-01 | Split up FileUtil::ScanDirectoryTree to be able to use callbacks for custom behavior | archshift | 2 | -103/+83 | |
Converted FileUtil::ScanDirectoryTree and FileUtil::DeleteDirRecursively to use the new ScanDirectoryTreeAndCallback function internally. | |||||
2015-09-30 | symbols: Replace an insert call with emplace | Lioncash | 1 | -1/+1 | |
2015-09-30 | symbols: Get rid of initial underscores in variable names | Lioncash | 2 | -20/+20 | |
2015-09-30 | symbols: Directly initialize TSymbol members | Lioncash | 1 | -8/+3 | |
2015-09-30 | symbols: Simplify GetSymbol | Lioncash | 1 | -8/+5 | |
2015-09-20 | Implement gdbstub | polaris- | 2 | -0/+2 | |
2015-09-16 | hash: Get rid of unused functions | Lioncash | 1 | -16/+0 | |
2015-09-16 | general: Silence some warnings when using clang | Lioncash | 1 | -2/+2 | |
2015-09-12 | memory_util: Remove unnecessary assignment in FreeMemoryPages | Lioncash | 1 | -3/+0 | |
2015-09-12 | memory_util: Remove commented out printf statements | Lioncash | 1 | -10/+0 | |
2015-09-12 | general: Replace 0 literals with nullptr where applicable | Lioncash | 2 | -6/+6 | |
2015-09-12 | synchronized_wrapper: Add missing return in SynchronizedRef move assignment operator | Lioncash | 1 | -0/+1 | |
2015-09-11 | common: Get rid of a cast in swap.h | Lioncash | 1 | -2/+2 | |
2015-09-11 | common: Get rid of debug_interface.h | Lioncash | 4 | -176/+0 | |
This is technically unused. Also removes TMemChecks because it relies on this. Whenever memory breakpoints are implemented for real, it should be designed to match the codebase debugging mechanisms. | |||||
2015-09-01 | x64: Proper stack alignment in shader JIT function calls | aroulin | 3 | -424/+90 | |
Import Dolphin stack handling and register saving routines Also removes the x86 parts from abi files | |||||
2015-09-01 | Common: Import BitSet from Dolphin | aroulin | 2 | -0/+190 | |
2015-08-28 | Common: Fix MicroProfile compilation in MSVC2015 | Yuri Kunde Schlesner | 1 | -0/+5 | |
2015-08-25 | Integrate the MicroProfile profiling library | Yuri Kunde Schlesner | 4 | -0/+51 | |
This brings goodies such as a configurable user interface and multi-threaded timeline view. | |||||
2015-08-23 | x64-emitter: add RCPSS SSE instruction | aroulin | 2 | -0/+2 | |
2015-08-21 | emitter: Remove pointer casts | Lioncash | 2 | -4/+27 | |
This should also technically silence quite a few ubsan warnings. | |||||
2015-08-20 | emitter: Remove unnecessary defines | Lioncash | 1 | -5/+1 | |
2015-08-20 | emitter: Remove unnecessary else keywords | Lioncash | 1 | -7/+7 | |
2015-08-20 | emitter: Remove unused code | Lioncash | 2 | -44/+0 | |
2015-08-20 | emitter: Remove unimplemented JMP prototype | Lioncash | 1 | -1/+0 | |
2015-08-20 | emitter: Pass OpArg by reference where possible | Lioncash | 2 | -763/+763 | |
2015-08-20 | emitter: Remove unnecessary inline specifiers | Lioncash | 1 | -33/+33 | |
Functions implemented in a class definition are already implicitly inline. | |||||
2015-08-18 | Fix building under MinGW | darkf | 2 | -4/+10 | |
2015-08-16 | videocore: Added RG8 texture support | Patrick Martin | 1 | -0/+18 | |
2015-08-16 | VMManager: Make LogLayout log level configurable as a parameter | Yuri Kunde Schlesner | 1 | -8/+7 | |
2015-08-16 | Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64. | bunnei | 8 | -14/+14 | |
2015-08-16 | Common: Cleanup CPU capability detection code. | bunnei | 4 | -198/+141 | |
2015-08-16 | Common: Move cpu_detect to x64 directory. | bunnei | 4 | -5/+5 | |
2015-08-16 | x64: Refactor to remove fake interfaces and general cleanups. | bunnei | 10 | -516/+26 | |
2015-08-15 | Common: Added MurmurHash3 hash function for general-purpose use. | bunnei | 5 | -2/+158 | |
2015-08-15 | Common: Ported over boilerplate x86 JIT code from Dolphin/PPSSPP. | bunnei | 9 | -4/+4380 | |
2015-08-15 | Common: Ported over Dolphin's code for x86 CPU capability detection. | bunnei | 4 | -17/+273 | |
2015-08-15 | Handle invalid `Log::Class` | Benjamin Barenblat | 1 | -1/+2 | |
Add a case of `Log::Class::Count` to the switch statement that dispatches on `Log::Class`. The case simply calls the `UNREACHABLE` macro. | |||||
2015-08-12 | Stop defining GCC always_inline attributes as __forceinline | archshift | 2 | -7/+8 | |
__forceinline is a MSVC extension, which may confuse some people working on the codebase. Furthermore, the C++ standard dictates that all names which contain adjacent underscores are reserved. | |||||
2015-08-03 | Use UNREACHABLE macro for impossible cases in previous commit | Benjamin Barenblat | 2 | -4/+3 | |
Use the UNREACHABLE macro instead of `ASSERT(false, ...);`. | |||||
2015-08-03 | Common: Work around bug in MSVC2015 standard library | Yuri Kunde Schlesner | 1 | -0/+14 | |
The char16_t/char32_t implementations aren't present in the library and cause linker errors. This is a known issue that wasn't fixed in VS2015 RTM. | |||||
2015-08-02 | Handle invalid `Log::Level::Count` | Benjamin Barenblat | 2 | -1/+9 | |
Add a case of `Log::Level::Count` to all switch statements that dispatch on `Log::Level`. The case simply asserts `false` and notes the invalid log level. | |||||
2015-07-19 | Common : Fix Conversion Warnings | zawata | 1 | -1/+1 | |
2015-07-18 | Common: Remove the unused and commented GetThemeDir prototype from FileUtil. | Emmanuel Gil Peyrot | 1 | -3/+0 | |
2015-07-13 | Pica: Implement stencil testing. | Tony Wasserka | 1 | -1/+26 | |
2015-07-13 | FileUtil: Add a WriteObject method for writing a single, POD-type object. | Tony Wasserka | 1 | -0/+10 | |
2015-07-12 | don´t define snprintf on Visual Studio 2015 | Apology11 | 1 | -2/+4 | |
Visual Studio 2015 defines this in stdio now | |||||
2015-07-11 | Common: Remove thunk.h | Lioncash | 2 | -43/+0 | |
This isn't used, and there's no implementations of the member functions. | |||||
2015-07-10 | Common: Remove redundant masking in BitField | Yuri Kunde Schlesner | 1 | -1/+1 | |
For the signed case, the shifts already remove the rest of the value, so ANDing by the mask is redundant. | |||||
2015-07-10 | Common: Fix mask generation in BitField | Yuri Kunde Schlesner | 1 | -1/+1 | |
Fixes #913 | |||||
2015-06-28 | Common: Remove unused type unions breaking aliasing rules in horrible ways. | Emmanuel Gil Peyrot | 1 | -26/+0 | |
2015-06-28 | Core: Cleanup file_sys includes. | Emmanuel Gil Peyrot | 1 | -0/+1 | |
2015-06-28 | Core: Cleanup core includes. | Emmanuel Gil Peyrot | 1 | -1/+2 | |
2015-06-28 | CitraQt: Cleanup includes. | Emmanuel Gil Peyrot | 2 | -1/+1 | |
2015-06-28 | Common: Cleanup emu_window includes. | Emmanuel Gil Peyrot | 2 | -3/+15 | |
2015-06-28 | Common: Remove unused ROUND_UP_POW2 macro. | Emmanuel Gil Peyrot | 1 | -7/+0 | |
2015-06-28 | Common: Cleanup key_map includes. | Emmanuel Gil Peyrot | 1 | -0/+1 | |
2015-06-28 | Common: Cleanup memory and misc includes. | Emmanuel Gil Peyrot | 7 | -22/+18 | |
2015-06-28 | Common: Cleanup profiler includes. | Emmanuel Gil Peyrot | 4 | -7/+10 | |
2015-06-28 | Common: Cleanup thread includes. | Emmanuel Gil Peyrot | 2 | -18/+15 | |
2015-06-28 | Common: Fix string_util includes. | Emmanuel Gil Peyrot | 2 | -3/+9 | |
2015-06-28 | Common: Fix FileUtil includes, and everything relying on those. | Emmanuel Gil Peyrot | 3 | -7/+14 | |
2015-06-27 | Common: Remove now-unused EMU_PLATFORM define, fixes issue #373. | Emmanuel Gil Peyrot | 1 | -30/+0 | |
2015-06-27 | Common: Remove unused SSE version checking and a GCC macro. | Emmanuel Gil Peyrot | 1 | -25/+0 | |
2015-06-27 | Common: Remove unused fifo_queue.h. | Emmanuel Gil Peyrot | 2 | -112/+0 | |
2015-06-12 | Services: Continue separation of services into their own folders | purpasmart96 | 2 | -2/+4 | |
2015-06-09 | Render-to-texture flush, interval math fix | tfarley | 1 | -1/+1 | |
2015-05-30 | Move video_core/color.h to common/color.h | archshift | 2 | -0/+215 | |
2015-05-30 | Move video_core/math.h to common/vector_math.h | archshift | 2 | -0/+641 | |
The file only contained vector manipulation code, and such widely-useable code doesn't belong in video_core. | |||||
2015-05-29 | Remove every trailing whitespace from the project (but externals). | Emmanuel Gil Peyrot | 3 | -3/+3 | |
2015-05-23 | OpenGL renderer | tfarley | 1 | -0/+4 | |
2015-05-22 | Service::Y2R: Support for grayscale decoding of specific formats | Yuri Kunde Schlesner | 2 | -0/+2 | |
Implements unrotated planar YUV 4:2:0 -> RGB24 conversions in Y2R. Currently only the Y (luma) channel is used, so the results don't contain color. This will be added in a later PR at some point. This is enough to get all currently know Moflex videos to decode. (Some don't display on-screen due to seemingly unrelated reasons.) Thanks to @archshift for doing the initial implementation which I cleaned up and then fixed the 8x8 block mode. | |||||
2015-05-16 | Remove unused concurrent_ring_buffer.h | Yuri Kunde Schlesner | 2 | -164/+0 | |
2015-05-14 | Common: Remove unused cruft from math_util, and remove a duplicated Rect class in common_types. | Emmanuel Gil Peyrot | 4 | -409/+3 | |
2015-05-12 | Common: Use the log system to print assert messages | Yuri Kunde Schlesner | 1 | -7/+3 | |
2015-05-12 | Common: Remove async logging | Yuri Kunde Schlesner | 7 | -210/+32 | |
It provided a large increase in complexity of the logging system while having a negligible performance impact: the usage patterns of the ring buffer meant that each log contended with the logging thread, causing it to effectively act as a synchronous extra buffering. Also removed some broken code related to filtering of subclasses which was broken since it was introduced. (Which means no one ever used that feature anyway, since, 8 months later, no one ever complained.) | |||||
2015-05-09 | Common: Remove the BIT macro | Yuri Kunde Schlesner | 1 | -2/+0 | |
When the macro was introduced in 326ec51261299e48de97592631c02523da9c8118 it wasn't noticed that it conflicted in name with a heavily used macro inside of dyncom. This causes some compiler warnings. Since it's only lightly used, it was opted to simply remove the new macro. | |||||
2015-05-09 | Common: Add BIT macro | Yuri Kunde Schlesner | 1 | -0/+2 | |
2015-05-08 | Common: Add StringFromFixedZeroTerminatedBuffer | Yuri Kunde Schlesner | 2 | -0/+14 | |
2015-05-08 | Profiler: Fix off-by-one error when computing average. | Yuri Kunde Schlesner | 1 | -2/+1 | |
2015-05-08 | Common: Remove mem_arena.cpp/h | Yuri Kunde Schlesner | 3 | -466/+0 | |
It is superfluous for Citra. (It's only really necessary if you're doing JIT. We were using it but not taking any advantage from it.) This should make 32-bit builds work again. | |||||
2015-05-07 | Common: Remove hash.cpp/h | Yuri Kunde Schlesner | 3 | -543/+0 | |
Currently unused and the code quality is pretty questionable. | |||||
2015-05-07 | Common: Add proper macros to test for architecture pointer size | Yuri Kunde Schlesner | 5 | -17/+11 | |
The old system of just defining macros available in some other platform was susceptible to silently using the wrong code if you forgot to include a particular header. This fixes a crash on non-Windows platforms introduced by e1fbac3ca13d37d2625c11d30cfdece4327b446b. | |||||
2015-05-07 | string_util: Get rid of UriDecode/UriEncode | Lioncash | 2 | -127/+0 | |
2015-05-07 | Common: Remove common.h | Yuri Kunde Schlesner | 29 | -56/+43 | |
2015-05-07 | Common: Move alignment macros to common_funcs.h | Yuri Kunde Schlesner | 2 | -21/+21 | |
2015-05-07 | Common: Move SSE detection ifdefs to platform.h | Yuri Kunde Schlesner | 3 | -16/+21 | |
2015-05-07 | Common: Remove more unused compatibility defines | Yuri Kunde Schlesner | 1 | -45/+0 | |
2015-05-07 | Common: Move IO-specific compatibility macros to file_util.cpp | Yuri Kunde Schlesner | 2 | -26/+26 | |
2015-05-07 | Common: Remove many unnecessary cross-platform compatibility macros | Yuri Kunde Schlesner | 5 | -88/+10 | |
2015-05-07 | Clean-up includes | Yuri Kunde Schlesner | 1 | -0/+1 | |
2015-05-07 | Move typedefs from kernel.h to more appropriate places | Yuri Kunde Schlesner | 1 | -0/+5 | |
2015-05-07 | Common: Move NonCopyable to common_types.h | Yuri Kunde Schlesner | 2 | -10/+10 | |
2015-05-07 | Common: Use C++11 deleted functions for NonCopyable | Yuri Kunde Schlesner | 1 | -8/+6 | |
2015-05-07 | Common: Remove unused enums | Yuri Kunde Schlesner | 1 | -17/+0 | |
2015-05-02 | EmuWindow: Clip mouse input coordinates to emulated screen dimensions. | Zaneo | 2 | -6/+21 | |
If the mouse position for a mouse move/drag would take it outside the emulated screen dimensions, clip the coordinates to the emulated screen dimensions. Qt and GLFW will report negative coordinates for mouse positions to the left, or above citra window. Added restriction to mouse coordinates passed to touchmoved by Qt/GLFW to be greater or equal to zero. | |||||
2015-04-16 | Common: thread.h cleanups | Yuri Kunde Schlesner | 1 | -65/+16 | |
The helper classes are rendered obsolete by C++11 lambdas. Also made formatting conform to our code style. | |||||
2015-04-10 | Thread: Implement priority boost for starved threads. | bunnei | 1 | -0/+18 | |
SVC: Return correct error code on invalid CreateThread processor ID. SVC: Assert when creating a thread with an invalid userland priority. | |||||
2015-04-03 | Services: Stubs and minor changes | purpasmart96 | 2 | -0/+4 | |
2015-03-30 | disassembler: Get rid of a const_cast | Lioncash | 2 | -4/+4 | |
2015-03-16 | Common: Fix logic for setting EMU_DATA_DIR. | Emmanuel Gil Peyrot | 1 | -6/+5 | |
2015-03-16 | Common: Make a #else more apparent. | Emmanuel Gil Peyrot | 1 | -5/+1 | |
2015-03-14 | EmuWindow: Fixed a reference to a temporary variable | Subv | 1 | -1/+1 | |
in GetTouchState() | |||||
2015-03-11 | HID: Complete refactor of pad/touch input to fix threading issues. | bunnei | 2 | -68/+63 | |
2015-03-10 | EmuWindow: Made pad/touch functions non-static. | bunnei | 2 | -11/+6 | |
2015-03-10 | EmuWindow: Added infrastructure code to enable touchpad support. | bunnei | 2 | -1/+93 | |
2015-03-09 | Added LCD registers, and implementation for color filling in OGL code. | archshift | 2 | -0/+2 | |
2015-03-08 | Fixed EmuWindow typo (fixes OSX build) | bunnei | 2 | -2/+2 | |
2015-03-07 | Set framebuffer layout from EmuWindow. | bunnei | 2 | -7/+75 | |
2015-03-06 | Logging: check for filter before sending to the queue, to skip all heavy formatting on the other thread. | Emmanuel Gil Peyrot | 5 | -7/+17 | |
2015-03-06 | Removed swap code redundancy and moved common swap code to swap.h | archshift | 3 | -127/+97 | |
2015-03-02 | Profiler: Implement QPCClock to get better precision on Win32 | Yuri Kunde Schlesner | 2 | -1/+42 | |
MSVC 2013 (at least) doesn't use QueryPerformanceCounter to implement std::chrono::high_resolution_clock, so it has bad precision. Manually implementing our own clock type using it works around this for now. | |||||
2015-03-02 | Add profiling infrastructure and widget | Yuri Kunde Schlesner | 6 | -0/+493 | |
2015-02-25 | Common: Switch to the XDG Base Directory Specification for directory selection. | Emmanuel Gil Peyrot | 2 | -10/+69 | |
This allows for easily movable and independent configuration and data directories, using standardized paths. | |||||
2015-02-22 | Added information reporting from ThrowFatalError | archshift | 3 | -2/+2 | |
This was RE'd from the errdisp applet. | |||||
2015-02-20 | Common: Change names containing “Dolphin” or “PPSSPP” to something more generic. | Emmanuel Gil Peyrot | 2 | -8/+8 | |
2015-02-20 | Misc cleanup of common and related functions | archshift | 3 | -79/+28 | |
2015-02-20 | Remove duplication of INSERT_PADDING_WORDS between pica.h and gpu.h | archshift | 2 | -3/+3 | |
2015-02-19 | Remove "super lame/broken" file_search compilation unit that was leftover from Dolphin | archshift | 3 | -128/+0 | |
2015-02-19 | Remove redundant utf8 compilation unit that was leftover from Dolphin | archshift | 3 | -528/+0 | |
2015-02-19 | Remove useless extended_trace compilation unit that was leftover from Dolphin | archshift | 3 | -480/+0 | |
2015-02-19 | Remove the useless msg_handler compilation unit that was left over from Dolphin | archshift | 7 | -178/+11 | |
2015-02-18 | Asserts: Use lambdas to keep assertion code away from the main code path | Yuri Kunde Schlesner | 1 | -6/+25 | |
2015-02-17 | ConfigMem: Clean up the Config memory to be more like the shared page and moved | purpasmart96 | 1 | -0/+7 | |
the helper macro for padding to common_funcs.h | |||||
2015-02-13 | backend: Add logging subentry for ldr | Lioncash | 1 | -0/+1 | |
Fixes an assertion upon executing citra in debug mode. | |||||
2015-02-12 | Build: Fixed some warnings | Subv | 1 | -3/+3 | |
2015-02-11 | Asserts: break/crash program, fit to style guide; log.h->assert.h | archshift | 15 | -105/+73 | |
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time) As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing) Also removed some GEKKO cruft. | |||||
2015-02-08 | Services: Stub some functions | purpasmart96 | 1 | -0/+1 | |
2015-02-07 | Fix a wrong file name in a comment | chinhodado | 1 | -1/+1 | |
2015-01-30 | Common: Fix SCOPE_EXIT to actually create unique identifiers. | Yuri Kunde Schlesner | 2 | -1/+7 | |
2015-01-21 | Added HID_SPVR service and split HID_U implementation into service/hid/hid.xxx | archshift | 3 | -10/+10 | |
2015-01-10 | Logging: Log all called service functions (under trace). Compile out all trace logs under release for performance. | archshift | 3 | -24/+8 | |
2015-01-07 | Common: Clean up ThreadQueueList | Yuri Kunde Schlesner | 1 | -144/+74 | |
Replace all the C-style complicated buffer management with a std::deque. In addition to making the code easier to understand it also adds support for non-POD IdTypes. Also clean the rest of the code to follow our code style. | |||||
2015-01-07 | CoreTiming: Ported the CoreTiming namespace from PPSSPP | Subv | 2 | -0/+2 | |
Implemented the required calls to make it work. CoreTiming: Added a new logging class Core_Timing. | |||||
2015-01-06 | Common: Remove dead platform #ifdefs to make the code more readable. | Emmanuel Gil Peyrot | 5 | -101/+2 | |
Symbian, Xbox, Blackberry and iOS got removed. FreeBSD and Android kept due to them potentially being able to run Citra in the future. The iOS specific part also got removed from PPSSPP in order to fix a bug there. | |||||
2015-01-05 | Common: Use std::abs instead of abs, using abs with cmath fails on some systems. | Emmanuel Gil Peyrot | 1 | -2/+3 | |
2015-01-05 | Common: Remove the unused x86-specific 128-bit float type. | Emmanuel Gil Peyrot | 1 | -11/+0 | |
2015-01-04 | Archives: Changed the way paths are built for the archives. | Subv | 3 | -20/+4 | |
Each archive now takes a mount point of either NAND or SDMC, and builds its own directory structure there, trying to simulate an HLE-friendly hardware layout | |||||
2015-01-04 | SaveDataCheck: Move the files to nand/title | Subv | 1 | -1/+1 | |
under /nand/title/high/low/content/00000000.app.romfs | |||||
2015-01-03 | Archives: Change the folder layout of some archives. | Subv | 3 | -20/+24 | |
This is to better represent the hardware layout, they are still aren't quite accurate, but this better and will help a bit when implementing the other archives like NAND-RO and NAND-RW | |||||
2015-01-03 | Archives: Reduced duplicate code in RomFS and SaveCheck. | Subv | 3 | -0/+4 | |
Fixed a few warnings and cleaned up the code | |||||
2014-12-31 | SOC_U: Preliminary implementation of sockets. | Subv | 2 | -0/+2 | |
Stubbed CreateMemoryBlock Using Berkeley sockets, and Winsock2.2 on Windows. So far ftpony creates the socket and accepts incoming connections SOC_U: Renamed functions to maintain consistency Also prevents possible scope errors / conflicts with the actual Berkeley socket functions SOCU: Close all the opened sockets when cleaning up SOCU | |||||
2014-12-30 | Fix MSVC-related #defines and add CMakeLists comment | darkf | 5 | -10/+10 | |
2014-12-30 | Archives: Implemented ExtSaveData and SharedExtSaveData | Subv | 3 | -0/+4 | |
They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively. Also redirect some APT_A functions to their APT_U equivalents. Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module. Implemented formatting the savegame. Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded. | |||||
2014-12-21 | More warning cleanups | Chin | 1 | -0/+6 | |
2014-12-21 | License change | purpasmart96 | 46 | -74/+74 | |
2014-12-20 | BitField: Add an explicit Assign method. | Tony Wasserka | 1 | -1/+5 | |
This is useful when doing crazy stuff like inheriting from BitField. | |||||
2014-12-20 | Common: Add a clone of std::make_unique | Yuri Kunde Schlesner | 2 | -0/+17 | |
2014-12-18 | SaveData: Implemented the SystemSaveData archive. | Subv | 3 | -0/+4 | |
It will be stored in the /syssavedata folder. This archive is user by various Services and possibly games via the FS:U service. | |||||
2014-12-18 | Filesystem/Archives: Implemented the SaveData archive | Subv | 3 | -0/+4 | |
The savedata for each game is stored in /savedata/<ProgramID> for NCCH files. ELF files and 3DSX files use the folder 0 because they have no ID information Got rid of the code duplication in File and Directory Files that deal with the host machine's file system now live in DiskFile, similarly for directories and DiskDirectory and archives with DiskArchive. FS_U: Use the correct error code when a file wasn't found | |||||
2014-12-14 | Restore the original console color after logging a message. | Yuri Kunde Schlesner | 2 | -13/+25 | |
Fixes #277 | |||||
2014-12-13 | Remove old logging system | Yuri Kunde Schlesner | 6 | -850/+2 | |
2014-12-13 | Add configurable per-class log filtering | Yuri Kunde Schlesner | 5 | -3/+205 | |
2014-12-13 | Convert old logging calls to new logging macros | Yuri Kunde Schlesner | 8 | -71/+94 | |
2014-12-13 | Implement text path trimming for shorter paths. | Yuri Kunde Schlesner | 3 | -1/+53 | |
2014-12-13 | Re-add coloring to the console logging output. | Yuri Kunde Schlesner | 1 | -0/+50 | |
2014-12-13 | New logging system | Yuri Kunde Schlesner | 11 | -66/+716 | |
2014-12-13 | Add SCOPE_EXIT macro to conveniently execute cleanup actions | Yuri Kunde Schlesner | 2 | -0/+38 | |
2014-12-13 | Added missing include in common_funcs.h | Yuri Kunde Schlesner | 1 | -0/+1 | |
2014-12-13 | Remove redundant include from common_funcs.h | Yuri Kunde Schlesner | 1 | -2/+0 | |
2014-12-13 | APT_U: Added GetSharedFont service function. | bunnei | 1 | -0/+3 | |
2014-12-12 | Common: Add "sysdata" to GetUserPath and cleanup. | bunnei | 3 | -26/+3 | |
2014-12-10 | Explicitly specify LE strings to iconv, fixes paths in Steel Diver | archshift | 1 | -2/+2 | |
2014-12-09 | Remove unused NDMA module | Yuri Kunde Schlesner | 2 | -2/+0 | |
2014-12-09 | Some code cleanup. | Tony Wasserka | 1 | -0/+2 | |
2014-12-09 | Fix some headers to include their dependencies properly. | Tony Wasserka | 2 | -0/+7 | |
2014-12-07 | StringUtil: Perform some minimal cleanup. | Tony Wasserka | 1 | -3/+3 | |
2014-12-03 | Change NULLs to nullptrs. | Rohit Nirmal | 17 | -92/+92 | |
2014-11-29 | Fix MinGW build | darkf | 7 | -21/+34 | |
2014-11-25 | Remove unused includes to common/thread.h | Emmanuel Gil Peyrot | 1 | -1/+0 | |
2014-11-19 | Remove tabs in all files except in skyeye imports and in generated GL code | Emmanuel Gil Peyrot | 3 | -100/+100 | |
2014-11-19 | Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated | Emmanuel Gil Peyrot | 23 | -160/+160 | |
2014-11-18 | Remove extraneous semicolons | Lioncash | 2 | -2/+2 | |
2014-11-18 | EmuWindow: Add some explicit documentation and set proper minimal client area size. | Tony Wasserka | 1 | -2/+4 | |
2014-11-18 | EmuWindow: Add a TODO. | Tony Wasserka | 1 | -0/+1 | |
Implementing this function currently is not critical, as we don't perform any configuration changes, yet. However, the interface is a good starting point for adding this functionality. | |||||
2014-11-18 | MathUtil: Make Rectangle work with unsigned types. | Tony Wasserka | 1 | -4/+5 | |
2014-11-18 | EmuWindow: Better document the purpose of OnMinimalClientAreaChangeRequest. | Tony Wasserka | 1 | -0/+7 | |
2014-11-18 | EmuWindow: Remove window title getters/setters. | Tony Wasserka | 1 | -16/+1 | |
The window title is none of the emulation core's business. The GUI code is free to put whatever it wants there. Providing properly thread-safe window title getters and setters is a mess anyway. | |||||
2014-11-18 | EmuWindow: Add documentation. | Tony Wasserka | 1 | -18/+57 | |
2014-11-18 | EmuWindow: Add support for specifying minimal client area sizes. | Tony Wasserka | 1 | -8/+26 | |
2014-11-18 | Fixup EmuWindow interface and implementations thereof. | Tony Wasserka | 1 | -28/+33 | |
2014-11-18 | Viewport scaling and display density independence | Kevin Hartman | 1 | -2/+5 | |
The view is scaled to be as large as possible, without changing the aspect, within the bounds of the window. On "retina" displays, or other displays where window units != pixels, the view should no longer draw incorrectly. | |||||
2014-11-18 | Add a GUI logging channel. | Tony Wasserka | 2 | -0/+2 | |
Replace asserts with _dbg_assert_. | |||||
2014-11-17 | emu_window: Fix initializer list order. | Lioncash | 1 | -2/+2 | |
Gets rid of a warning on OSX. | |||||
2014-11-13 | Use std::u16string for conversion between UTF-8 and UTF-16, FS:USER functions | archshift | 2 | -51/+115 | |
2014-10-29 | Renamed souce files of services to match port names | Gareth Poole | 1 | -1/+1 | |
2014-10-26 | Add `override` keyword through the code. | Yuri Kunde Schlesner | 2 | -3/+3 | |
This was automated using `clang-modernize`. | |||||
2014-10-26 | Fix compile errors in Clang | Yuri Kunde Schlesner | 1 | -1/+0 | |
2014-10-25 | bit_field: Fix a typo in the sample usage. | Lioncash | 1 | -1/+1 | |
2014-10-24 | Removed uses of raw c-string manipulation functions. | archshift | 4 | -21/+10 | |
2014-10-23 | Use std sized types instead of platform specific typedefs | Yuri Kunde Schlesner | 2 | -32/+12 | |
2014-10-23 | Common: Return from CreateFullPath early if the directory creation fails | archshift | 1 | -2/+4 | |
2014-10-08 | Added configuration file system. | archshift | 6 | -69/+73 | |
Uses QSettings on citra-qt, and inih on citra-cli. | |||||
2014-10-06 | Common: Add a helper function to generate a 8.3 filename from a long one. | Emmanuel Gil Peyrot | 2 | -0/+53 | |
Core: Fix the SDMC Directory implementation to make blargSnes work. | |||||
2014-09-28 | Fix warnings in core and common | Lioncash | 3 | -15/+5 | |
2014-09-22 | chunk_file: General cleanup | Lioncash | 1 | -244/+0 | |
- Remove unnecessary ifdefs - Remove commented out code. Can be retrieved later if needed. | |||||
2014-09-21 | Use the citra user path for the sdmc directory | archshift | 3 | -0/+4 | |
2014-09-17 | Common: Rename the File namespace to FileUtil, to match the filename and prevent collisions. | Emmanuel Gil Peyrot | 4 | -25/+25 | |
2014-09-17 | Common: Return the number of items read/written in IOFile’s methods instead of a boolean. | Emmanuel Gil Peyrot | 1 | -8/+20 | |
2014-09-12 | Added support for multiple input device types for KeyMap and connected Qt. | Kevin Hartman | 5 | -40/+61 | |
2014-09-12 | Initial HID PAD work, with GLFW only. | Kevin Hartman | 4 | -0/+77 | |
2014-09-09 | Removed fixed_size_queue.h | archshift | 2 | -71/+0 | |
It's unused and doesn't look like it compiles anyway :/ | |||||
2014-09-09 | common: Prune all redundant includes | archshift | 10 | -34/+3 | |
2014-09-09 | Moved common_types::Rect from common to Common namespace | archshift | 1 | -1/+1 | |
2014-09-09 | Added string_util to common, small changes in loader.cpp | archshift | 11 | -32/+39 | |
2014-09-09 | loader.cpp: improved file extension checking, made Upper/LowerStr useful | archshift | 2 | -12/+9 | |
Instead of forcibly taking the last 4 characters, it now finds the last extension separator (the period) and takes a substr of its location. | |||||
2014-09-08 | Common: Remove HAVE_CXX11_SYNTAX define from Common.h | Lioncash | 1 | -6/+0 | |
2014-09-08 | Common: Fix a potential infinite loop in StringUtil's ReplaceAll | Lioncash | 1 | -3/+8 | |
2014-09-07 | Removed common/std_xyz, instead using the std header | archshift | 7 | -856/+6 | |
2014-09-03 | Removed common/atomic, instead using std::atomic | archshift | 4 | -198/+0 | |
2014-09-01 | Remove hand-crafted Visual Studio solution. | Yuri Kunde Schlesner | 4 | -453/+0 | |
2014-09-01 | Avoid LOGGING redefinition warnings. | Yuri Kunde Schlesner | 1 | -0/+2 | |
2014-09-01 | CMake cleanup | Yuri Kunde Schlesner | 1 | -7/+16 | |
Several cleanups to the buildsystem: - Do better factoring of common libs between platforms. - Add support to building on Windows. - Remove Qt4 support. - Re-sort file lists and add missing headers. | |||||
2014-08-19 | Common: Add a clamp function to math_utils.h | Lioncash | 1 | -0/+7 | |
2014-08-18 | Common: Get rid of an unnecessary forward declaration in symbols.h | Lioncash | 1 | -2/+0 | |
2014-08-18 | Common: Don't return a reference to a string when calling GetName in symbols.cpp | Lioncash | 2 | -2/+2 | |
Returning a copy of the string is what was likely meant to be done. | |||||
2014-08-17 | Common: Correctly set ptr to null if mmap fails in memory_util | Lioncash | 1 | -5/+8 | |
On POSIX systems mmap will return MAP_FAILED ((void*)-1) instead of a null pointer. | |||||
2014-08-17 | Common: Move remaining C header includes over to their C++ equivalent | Lioncash | 8 | -21/+20 | |
2014-08-17 | Common: Move header guards over to pragma once | Lioncash | 33 | -146/+41 | |
Also replaced C headers with the C++ equivalent ones | |||||
2014-08-16 | mem_arena: Replace insecure temporary file creation with devshm, importing Dolphin’s code. | Emmanuel Gil Peyrot | 1 | -24/+23 | |
2014-08-12 | Simplified if-tree in extended_trace.cpp | archshift | 1 | -13/+9 | |
2014-08-12 | break_points.cpp: return directly from conditionals | archshift | 1 | -6/+2 | |
2014-08-12 | break_points: cleaned up, added `find_if`s | archshift | 2 | -59/+51 | |
2014-08-12 | Changed iterators to use auto, some of which using range-based loops | archshift | 1 | -27/+28 | |
2014-08-12 | Remove the fancy RegisterSet class introduced in 4c2bff61e. | Tony Wasserka | 3 | -165/+0 | |
While it was some nice and fancy template usage, it ultimately had many practical issues regarding length of involved expressions under regular usage as well as common code completion tools not being able to handle the structures. Instead, we now use a more conventional approach which is a lot more clean to use. | |||||
2014-08-08 | Use pthread_set_name_np() on OpenBSD. | Anthony J. Bentley | 1 | -1/+3 | |
2014-07-23 | RegisterSet: Simplify code by using structs for register definition instead of unions. | Tony Wasserka | 1 | -6/+8 | |
2014-07-19 | [build] Search for the git binary in the default msysgit install dir | Yuri Kunde Schlesner | 1 | -1/+8 | |
The Git for Windows installer doesn't add the Git binaries to the path by default. (Due to risk of conflicts with built-in windows commands.) Unless you have configured your system specially this causes the scm_rev_gen.js script to fail to find Git. Added more paths to the script so that it searches in the default msysgit installation directory, eliminating the need to set the PATH for most environments. | |||||
2014-07-16 | BitField: Cast enum values to proper integer type. | Tony Wasserka | 1 | -1/+1 | |
2014-07-16 | BitField: Add a static_assert. | Tony Wasserka | 1 | -0/+1 | |
Being able to store BitField within unions requires BitField to be of standard layout, which in turn is only given if the underlying type is also has standard layout. | |||||
2014-07-16 | BitField: Delete copy assignment to prevent obscure bugs. | Tony Wasserka | 1 | -0/+16 | |
Cf. https://github.com/dolphin-emu/dolphin/pull/483 | |||||
2014-07-16 | BitField: Add an explicit evaluation method. | Tony Wasserka | 1 | -0/+5 | |
Sometimes it can be beneficial to use this in places where an explicit cast needs to happen otherwise. By using the evaluation method, it's not necessary anymore to explicitly write the underlying type in this case. | |||||
2014-06-12 | Removed definition of MAX_PATH, this is already defined in common_paths.h. | bunnei | 1 | -2/+0 | |
2014-06-12 | Preprocessor: #if's out OSX-specific GL changes on other platforms | archshift | 1 | -1/+1 | |
2014-06-12 | Common: Removed duplicate "LONG" and "MAX_PATH" definitions. | bunnei | 1 | -2/+0 | |
2014-06-12 | Pica: Use some template magic to define register structures efficiently. | Tony Wasserka | 3 | -3/+166 | |
2014-06-12 | Rename LCD to GPU. | Tony Wasserka | 2 | -2/+2 | |
2014-06-01 | log: updated MAX_LOGLEVEL to use correct log level enum type | bunnei | 3 | -5/+5 | |
2014-06-01 | log: updated GenericLog __attribute__ for newly added parameter | bunnei | 1 | -1/+1 | |
2014-05-30 | log: fixed to not print twice, enabled coloring, added OS print logging as its own type | bunnei | 4 | -37/+42 | |
2014-05-20 | common_types: Changed BasicRect back to Rect, in the common namespace | archshift | 1 | -4/+6 | |
Only Rect is in the namespace for now; the rest of common should be added in the future | |||||
2014-05-20 | Improved clarity and whitespace | archshift | 1 | -0/+1 | |
Changed QGL version to 3,2 in order to be less restrictive, yet it should still change up to 4,1 on OSX on Qt5. | |||||
2014-05-20 | CMakeLists: rename HEADS, improved comments | archshift | 1 | -2/+2 | |
Changes for clarity of comments, removed redundant compiler flags. | |||||
2014-05-17 | Updated cmakelists | archshift | 1 | -0/+1 | |
2014-05-17 | added MIN, MAX, and CLAMP macros to common_funcs | bunnei | 1 | -0/+5 | |
2014-05-16 | added ThreadQueueList class to common (taken from PPSSPP) | bunnei | 3 | -0/+218 | |
2014-05-10 | added kernel logger to common | bunnei | 2 | -3/+5 | |
2014-05-08 | removed incorrect dolphin copyright line | bunnei | 1 | -1/+0 | |
2014-05-08 | fixed include of common in bit_field.h | bunnei | 1 | -1/+1 | |
2014-05-08 | logger fix for linux | bunnei | 2 | -3/+3 | |
2014-05-08 | added GSP to loggers | bunnei | 2 | -2/+2 | |
2014-05-08 | added BitField to common | bunnei | 3 | -0/+175 | |
2014-05-06 | - added better SVC logging | bunnei | 2 | -5/+5 | |
- added stubs for GetResourceLimit and GetResourceLimitCurrentValues SVCs | |||||
2014-05-01 | Support for C++11 on OSX | archshift | 1 | -2/+2 | |
2014-05-01 | Fixed indents | archshift | 1 | -1/+1 | |
2014-04-30 | Some more experimentation | archshift | 1 | -3/+3 | |
2014-04-29 | IT'S ALIVE! | archshift | 1 | -1/+39 | |
2014-04-28 | Fix complaints about functions that could not be found | archshift | 1 | -1/+1 | |
2014-04-28 | Problematic class with no current implementation | archshift | 1 | -2/+2 | |
2014-04-28 | Rect to BasicRect | archshift | 1 | -4/+4 | |
Somewhere along the line an OSX header had already taken the name Rect. | |||||
2014-04-28 | add missing bswap functions | bunnei | 1 | -0/+44 | |
2014-04-28 | fix for issue Linux build #9, not sure why this is broken but its unused code I'm just getting rid of it | bunnei | 1 | -13/+0 | |
2014-04-28 | removed DISALLOW_COPY_AND_ASSIGN in favor of NonCopyable class | bunnei | 1 | -5/+0 | |
2014-04-25 | Resolved undefined Common::g_scm_branch error. | Thomas Edvalson | 1 | -1/+1 | |
2014-04-24 | made qt window title consistent | bunnei | 1 | -1/+1 | |
2014-04-24 | fixes to scm_rev generation to make it conistent with windows build | bunnei | 2 | -5/+5 | |
2014-04-24 | updated windows scm_rev code to use new style | ShizZy | 5 | -66/+53 | |
2014-04-24 | added scm rev generation on Linux/cmake | bunnei | 6 | -51/+37 | |
2014-04-23 | fixes to build on linux | bunnei | 2 | -14/+14 | |
2014-04-23 | removed duplicate rotl/rotr functions | ShizZy | 1 | -26/+0 | |
2014-04-23 | updated CMakeLists for missing files | ShizZy | 1 | -0/+1 | |
2014-04-18 | added NDMA hardware interface | bunnei | 2 | -2/+2 | |
2014-04-15 | added helper functions for upper/lowercase strings | bunnei | 2 | -0/+22 | |
2014-04-13 | Add symbols map | Mathieu Vaillancourt | 4 | -0/+100 | |
2014-04-11 | added logger for generic HLE | bunnei | 2 | -3/+3 | |
2014-04-11 | removed scm_rev.h from version control | bunnei | 1 | -4/+0 | |
2014-04-11 | added missing const to GetWindowTitle | bunnei | 1 | -1/+1 | |
2014-04-10 | updated CMakeLists | bunnei | 1 | -16/+17 | |
2014-04-09 | - removed deprecated version.h | bunnei | 4 | -72/+52 | |
- cleaned up window title - cleaned up emu_window_glfw/emu_window | |||||
2014-04-09 | fixed scm_rev_gen | bunnei | 2 | -5/+5 | |
2014-04-09 | fixed project includes to use new directory structure | bunnei | 44 | -211/+201 | |
2014-04-09 | got rid of 'src' folders in each sub-project | bunnei | 54 | -0/+0 | |
2014-04-07 | added "citra" instead of "emu" to title bar | bunnei | 1 | -1/+1 | |
2014-04-06 | added logger option specifically for the renderer | bunnei | 2 | -2/+2 | |
2014-04-05 | added missing includes to common_types.h | bunnei | 1 | -0/+3 | |
2014-04-05 | Updated common_types.h to use Gekko's version w/ Rect and some useful unions | bunnei | 1 | -30/+102 | |
2014-04-05 | added DISALLOW_COPY_AND_ASSIGN macro | bunnei | 1 | -0/+5 | |
2014-04-05 | added LCD logger | bunnei | 2 | -2/+2 | |
2014-04-05 | added a HW option to logging | bunnei | 2 | -48/+48 | |
2014-04-02 | convert tabs to spaces | bunnei | 47 | -5298/+5298 | |
2014-04-01 | grabbed ppsspp's MemArena | bunnei | 2 | -221/+428 | |
2013-10-02 | added TIME logger for core timing | ShizZy | 2 | -2/+2 | |
2013-10-02 | renamed GC_ALIGNED* macros to MEMORY_ALIGNED* | ShizZy | 1 | -12/+12 | |
2013-09-27 | upgraded proj files to vs 2013 | ShizZy | 2 | -2/+16 | |
2013-09-26 | renamed from citrus to citra | ShizZy | 4 | -5/+5 | |
2013-09-26 | moved file_sys back to core | ShizZy | 5 | -973/+0 | |
2013-09-24 | removed <windows.h> include from common.h and added it only where needed | ShizZy | 2 | -5/+1 | |
2013-09-24 | moved file_sys to common | ShizZy | 5 | -0/+973 | |
2013-09-24 | added localtime_r for use on windows | ShizZy | 1 | -0/+8 | |
2013-09-24 | added utf8 to common module, utils for dealing with utf8 | ShizZy | 4 | -0/+534 | |
2013-09-20 | updated to chunk_file module from ppsspp | ShizZy | 1 | -133/+623 | |
2013-09-20 | added a module for loading bootable binaries | ShizZy | 2 | -4/+4 | |
2013-09-19 | added swap types to common | ShizZy | 4 | -0/+549 | |
2013-09-19 | removed CORE and LOADER from LogTypes | ShizZy | 1 | -2/+0 | |
2013-09-19 | added CORE and LOADER to LogTypes | ShizZy | 1 | -0/+2 | |
2013-09-18 | changed log CPU from PPC to ARM11 | ShizZy | 2 | -2/+3 | |
2013-09-18 | added default windows include | ShizZy | 1 | -0/+4 | |
2013-09-16 | added file platform.h | ShizZy | 4 | -0/+137 | |
2013-09-14 | renamed project to 'citrus' | ShizZy | 3 | -3/+3 | |
2013-09-13 | added scm_rev_gen project to automatically create a header with the git revision on build | ShizZy | 4 | -3/+162 | |
2013-09-09 | cleaned up VS project files | ShizZy | 1 | -11/+9 | |
2013-09-09 | fixed some code warnings | ShizZy | 1 | -1/+1 | |
2013-09-09 | removed unneeded dolphin paths code, fixed linker problems with common.lib | ShizZy | 3 | -132/+118 | |
2013-09-09 | re-enabled GetLastErrorMsg | ShizZy | 1 | -19/+23 | |
2013-09-08 | updated common paths | ShizZy | 2 | -4/+7 | |
2013-09-06 | start of 3DS memory map | ShizZy | 3 | -12/+3 | |
2013-09-05 | various fixes to be able to build project | ShizZy | 1 | -17/+13 | |
2013-09-05 | added emu_window.h to define interface to drawing to a window | ShizZy | 3 | -0/+108 | |
2013-09-05 | updated CMakeLists.txt file for new common files | ShizZy | 1 | -9/+16 | |
2013-09-05 | replaced common code with dolphin common | ShizZy | 51 | -107/+8640 | |
2013-09-04 | deleted gekko's common files | ShizZy | 28 | -4543/+0 | |
2013-08-30 | adding initial project layout | ShizZy | 31 | -0/+4777 | |