summaryrefslogtreecommitdiff
path: root/src/common (follow)
Commit message (Collapse)AuthorAgeFilesLines
* common: Replace lock_guard with scoped_lockGravatar Merry2022-04-073-5/+5
|
* Merge pull request #8143 from merryhime/rdtscGravatar Fernando S2022-04-071-14/+35
|\ | | | | native_clock: Use lfence with rdtsc
| * native_clock: Internal linkage for FencedRDTSCGravatar Merry2022-04-031-2/+4
| | | | | | | | __forceinline required on MSVC for function to be inlined
| * native_clock: Use lfence with rdtscGravatar merry2022-04-031-14/+33
| |
* | service: jit: stub JIT serviceGravatar Liam2022-04-062-0/+2
| |
* | Merge pull request #8089 from merryhime/paranoiaGravatar bunnei2022-04-041-1/+2
|\ \ | |/ |/| configuration: Add Paranoid CPU accuracy level
| * configuration: Add Paranoid CPU accuracy levelGravatar merry2022-03-261-1/+2
| | | | | | | | Disables most optimizations for the paranoid.
* | native_clock: Use writeback from CAS to avoid double-loadingGravatar merry2022-04-021-4/+6
| |
* | atomic_ops: Implement AtomicCompareAndSwap with writebackGravatar merry2022-04-021-0/+73
| |
* | native_clock: Use AtomicLoad128Gravatar Merry2022-04-021-2/+2
| |
* | atomic_ops: Implement AtomicLoad128Gravatar Merry2022-04-021-0/+17
|/
* hle: nvflinger: Merge Rect with Common::Rectangle.Gravatar bunnei2022-03-241-5/+45
|
* common: logging: Add a logger for NVFlinger.Gravatar bunnei2022-03-242-0/+2
|
* general: Fix clang/gcc build errorsGravatar ameerj2022-03-207-0/+9
|
* common: Reduce unused includesGravatar ameerj2022-03-1925-32/+1
|
* common: Reduce unused includesGravatar ameerj2022-03-198-12/+0
|
* common: tree: Various updates.Gravatar bunnei2022-03-141-284/+341
|
* common: intrusive_red_black_tree: Various updates.Gravatar bunnei2022-03-141-181/+210
|
* cpu_detect: Add additional x86 flags and telemetryGravatar Wunkolo2022-03-113-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.
* common/telemetry: Update `AddField` name type to `string_view`Gravatar Wunkolo2022-03-111-3/+4
| | | | | Non-owning `string_view` is flexable and avoids some of the many redundant copies made over `std::string`
* backend: Ensure backend_thread is destructed before message_queueGravatar Merry2022-03-101-1/+1
| | | | Ensures that stop_token signals that stop has been requested before destruction of conditional_variable
* cpu_detect: Revert `__cpuid{ex}` array-type argumentGravatar Wunkolo2022-03-091-6/+6
| | | | Restores compatibility with MSVC's `__cpuid` intrinsic.
* cpu_detect: Add missing `lzcnt` detectionGravatar Wunkolo2022-03-091-0/+1
|
* cpu_detect: Refactor cpu/manufacturer identificationGravatar Wunkolo2022-03-092-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(!)
* cpu_detect: Update array-types to `span` and `array`Gravatar Wunkolo2022-03-091-11/+13
| | | | Update some uses of `int` into some more explicitly sized types as well
* cpu_detect: Utilize `Bit<N>` utility functionGravatar Wunkolo2022-03-091-32/+20
|
* cpu_detect: Compact capability fieldsGravatar Wunkolo2022-03-091-20/+21
| | | | | As this structure gets more explicit, bools can be bitfields and small enums can use smaller types for their span of values.
* bit_util: Add `bit` utility functionGravatar Wunkolo2022-03-091-0/+7
| | | | Extracts a singular bit, as a bool, from the specified compile-time index.
* Merge pull request #7973 from Morph1984/debug-crashGravatar Fernando S2022-03-061-2/+2
|\ | | | | host_memory: Fix fastmem crashes in debug builds
| * host_memory: Fix fastmem crashes in debug buildsGravatar Morph2022-03-021-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>
* | Merge pull request #7935 from Wunkolo/logging-join-fixGravatar bunnei2022-03-021-13/+5
|\ \ | |/ |/| logging: Convert `backend_thread` into an `std::jthread`
| * logging: Convert `backend_thread` into an `std::jthread`Gravatar Wunkolo2022-02-271-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.
* | dynarmic: Inline exclusive memory accessesGravatar merry2022-02-272-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
* settings: Add a new "use_extended_memory_layout" setting.Gravatar bunnei2022-02-212-0/+2
| | | | - This will be used to enable emulation of a larger memory arrangement.
* fixup! core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.Gravatar bunnei2022-02-192-16/+16
|
* core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.Gravatar bunnei2022-02-182-6/+76
| | | | - Improves the implementations of MapPhysicalMemory and UnmapPhysicalMemory to more closely reflect latest HOS.
* common: Add NullVisitor default constructorGravatar Wunkolo2022-02-171-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.
* Merge pull request #7878 from german77/mnppGravatar bunnei2022-02-162-0/+2
|\ | | | | service/mnpp: Stub mnpp_app
| * service/mnpp: Stub mnpp_appGravatar Narr the Reg2022-02-102-0/+2
| | | | | | | | Used in Super Nintendo Entertainment Systemâ„¢ - Nintendo Switch Online
* | common: fs_util: Add buffer to string view utility functionsGravatar Morph2022-02-132-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.
* | common: uuid: Use sizeof(u64) instead of 8 in Hash()Gravatar Morph2022-02-101-5/+5
| |
* | common: uuid: Return an invalid UUID if conversion from string failsGravatar Morph2022-02-051-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.
* | general: Rename NewUUID to UUID, and remove the previous UUID implGravatar Morph2022-02-056-434/+256
| | | | | | | | This completes the removal of the old UUID implementation.
* | common: uuid: Add AsU128()Gravatar Morph2022-02-052-0/+9
| | | | | | | | This copies the internal bytes of the UUID into a u128 for backwards compatibility. This should not be used.
* | input/hid: Migrate to the new UUID implementationGravatar Morph2022-02-051-4/+4
| |
* | common: Implement NewUUIDGravatar Morph2022-02-053-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.
* common_types: Remove NonCopyable structGravatar Lioncash2022-02-021-10/+0
| | | | | Now that we're moved over to the YUZU_ defines, we can get rid of this struct.
* general: Replace NonCopyable struct with equivalentsGravatar Lioncash2022-02-021-9/+17
|
* Merge pull request #7807 from german77/moar-buttonsGravatar bunnei2022-02-011-0/+2
|\ | | | | input_common: Add home and hard touch press buttons to UDP controllers
| * input_common: Add home and hard touch press buttons to UDP controllersGravatar german772022-01-301-0/+2
| |