bunnei
0704b645df
common: logging: Add a logger for NVFlinger.
2022-03-24 18:13:32 -07:00
ameerj
866b7c20a8
general: Fix clang/gcc build errors
2022-03-20 02:25:09 -04:00
ameerj
923decae5a
common: Reduce unused includes
2022-03-19 15:01:31 -04:00
ameerj
8a8ea65fae
common: Reduce unused includes
2022-03-19 02:23:33 -04:00
bunnei
0fdf1d2a60
common: tree: Various updates.
2022-03-14 18:14:53 -07:00
bunnei
69c2faeb6a
common: intrusive_red_black_tree: Various updates.
2022-03-14 18:14:53 -07:00
Wunkolo
d248c1203e
cpu_detect: Add additional x86 flags and telemetry
...
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 10:27:00 -08:00
Wunkolo
29a7a61806
common/telemetry: Update AddField name type to string_view
...
Non-owning `string_view` is flexable and
avoids some of the many redundant copies made over `std::string`
2022-03-11 10:26:59 -08:00
Merry
22f50c6bc1
backend: Ensure backend_thread is destructed before message_queue
...
Ensures that stop_token signals that stop has been requested before destruction of conditional_variable
2022-03-10 10:49:15 +00:00
Wunkolo
d9b1199ffb
cpu_detect: Revert __cpuid{ex} array-type argument
...
Restores compatibility with MSVC's `__cpuid` intrinsic.
2022-03-09 19:50:01 -08:00
Wunkolo
873a9fa7e5
cpu_detect: Add missing lzcnt detection
2022-03-09 13:57:47 -08:00
Wunkolo
ec5f3351b6
cpu_detect: Refactor cpu/manufacturer identification
...
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 13:57:47 -08:00
Wunkolo
86e9e60f07
cpu_detect: Update array-types to span and array
...
Update some uses of `int` into some more explicitly sized types as well
2022-03-09 13:57:47 -08:00
Wunkolo
3c33ba7f18
cpu_detect: Utilize Bit<N> utility function
2022-03-09 13:57:47 -08:00
Wunkolo
d233de8194
cpu_detect: Compact capability fields
...
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 13:57:47 -08:00
Wunkolo
add2cfcb96
bit_util: Add bit utility function
...
Extracts a singular bit, as a bool, from the specified compile-time index.
2022-03-09 13:57:47 -08:00
Fernando S
5192c64991
Merge pull request #7973 from Morph1984/debug-crash
...
host_memory: Fix fastmem crashes in debug builds
2022-03-06 04:49:27 +01:00
bunnei
a31c195749
Merge pull request #7935 from Wunkolo/logging-join-fix
...
logging: Convert `backend_thread` into an `std::jthread`
2022-03-02 19:09:26 -08:00
Morph
b33f23cc46
host_memory: Fix fastmem crashes in debug builds
...
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-03-02 18:36:59 -05:00
Wunkolo
913c2bd2cb
logging: Convert backend_thread into an std::jthread
...
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 16:23:52 -08:00
merry
16784e5bb3
dynarmic: Inline exclusive memory accesses
...
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-27 19:40:05 +00:00
bunnei
70482e6b26
settings: Add a new "use_extended_memory_layout" setting.
...
- This will be used to enable emulation of a larger memory arrangement.
2022-02-21 13:07:19 -08:00
bunnei
92b2e92620
fixup! core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.
2022-02-19 00:14:27 -08:00
bunnei
1a16d055df
core: hle: kernel: KPageTable: Improve Un/MapPhysicalMemory.
...
- Improves the implementations of MapPhysicalMemory and UnmapPhysicalMemory to more closely reflect latest HOS.
2022-02-18 23:42:27 -08:00
Wunkolo
768fdb269e
common: Add NullVisitor default constructor
...
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-17 06:28:19 -08:00
bunnei
027ff7847c
Merge pull request #7878 from german77/mnpp
...
service/mnpp: Stub mnpp_app
2022-02-16 18:42:49 -07:00
Morph
4390370a19
common: fs_util: Add buffer to string view utility functions
...
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-13 18:53:21 -05:00
Narr the Reg
6705439cf3
service/mnpp: Stub mnpp_app
...
Used in Super Nintendo Entertainment System™ - Nintendo Switch Online
2022-02-10 21:55:28 -06:00
Morph
3799c820ca
common: uuid: Use sizeof(u64) instead of 8 in Hash()
2022-02-10 15:03:49 -05:00
Morph
ec4d7f71fe
common: uuid: Return an invalid UUID if conversion from string fails
...
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 13:56:21 -05:00
Morph
25db62ce15
general: Rename NewUUID to UUID, and remove the previous UUID impl
...
This completes the removal of the old UUID implementation.
2022-02-05 13:56:21 -05:00
Morph
d94dcaefa0
common: uuid: Add AsU128()
...
This copies the internal bytes of the UUID into a u128 for backwards compatibility. This should not be used.
2022-02-05 13:56:21 -05:00
Morph
cb30fe50cd
input/hid: Migrate to the new UUID implementation
2022-02-05 13:18:41 -05:00
Morph
3271099fea
common: Implement NewUUID
...
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-05 13:18:31 -05:00
Lioncash
ade44ac2ea
common_types: Remove NonCopyable struct
...
Now that we're moved over to the YUZU_ defines, we can get rid of this
struct.
2022-02-02 13:19:01 -05:00
Lioncash
f785f73e92
general: Replace NonCopyable struct with equivalents
2022-02-02 13:17:12 -05:00
bunnei
72add82ee9
Merge pull request #7807 from german77/moar-buttons
...
input_common: Add home and hard touch press buttons to UDP controllers
2022-02-01 22:37:13 -07:00
bunnei
50e9ba34b4
Merge pull request #7809 from Morph1984/clock-constants
...
common: wall_clock: Utilize constants for ms, us, and ns ratios
2022-02-01 18:34:31 -07:00
Lioncash
8f32bab4c9
common/file: Remove [[nodiscard]] from Open()
...
Since this has a void return value, there's nothing that can actually be
used.
2022-02-01 02:19:21 -05:00
Morph
6267110b69
common: wall_clock: Check precision against the emulated CPU and CNTFRQ
...
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 12:57:23 -05:00
Morph
4e766280c4
common: wall_clock: Utilize constants for ms, us, and ns ratios
2022-01-30 12:36:56 -05:00
german77
3d2d77eb3f
input_common: Add home and hard touch press buttons to UDP controllers
2022-01-30 09:17:22 -06:00
Morph
11099dda2e
Merge pull request #7791 from german77/wall_clock
...
wall_clock: Use standard wall clock if rtsc frequency is too low
2022-01-28 20:04:24 -05:00
german77
e4c63d432d
wall_clock: use standard wall clock if rtsc frequency is too low
2022-01-27 17:07:52 -06:00
Lioncash
f6a049337e
common/xbyak_api: Make BuildRegSet() constexpr
...
This allows us to eliminate any static constructors that would have been
emitted due to the function not being constexpr.
2022-01-26 16:29:15 -05:00
german77
b998aa5504
yuzu: Add setting to disable controller navigation
2022-01-23 21:08:49 -06:00
bunnei
ef7c50b276
Merge pull request #7695 from Morph1984/is-pow2
...
common: bit_util: Add IsPow2 helper function
2022-01-20 18:06:11 -08:00
bunnei
eceee8e5f4
Merge pull request #7725 from german77/mouse_in_motion
...
input_common: Reintroduce motion from mouse and use button names
2022-01-18 18:16:27 -08:00
german77
9eab07f863
input_common: Reintroduce motion from mouse and use button names
2022-01-16 20:37:34 -06:00
bunnei
f6de57c1a5
common: fiber: YieldTo: Avoid hard crash on nullptr previous_fiber.
...
- 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-14 16:17:19 -08:00