merry
b8d8677ed1
native_clock: Use lfence with rdtsc
2022-04-03 22:38:10 +01:00
merry
7470fdd77c
native_clock: Use writeback from CAS to avoid double-loading
2022-04-02 22:22:48 +01:00
Merry
18ecb3053b
native_clock: Use AtomicLoad128
2022-04-02 20:55:36 +01:00
ameerj
e70b4f3fc5
common: Reduce unused includes
2022-03-19 15:01:31 -04:00
Wunkolo
c802f8fbd2
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](bcfe377aaa/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
7cb99ccf23
cpu_detect: Revert __cpuid{ex}
array-type argument
...
Restores compatibility with MSVC's `__cpuid` intrinsic.
2022-03-09 19:50:01 -08:00
Wunkolo
b603adb6ac
cpu_detect: Add missing lzcnt
detection
2022-03-09 13:57:47 -08:00
Wunkolo
4aa5b5779b
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
14618c0e98
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
609c64196b
cpu_detect: Utilize Bit<N>
utility function
2022-03-09 13:57:47 -08:00
Wunkolo
31f8d6f0cf
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
Morph
fe2ff6b8a1
common: wall_clock: Utilize constants for ms, us, and ns ratios
2022-01-30 12:36:56 -05:00
Lioncash
1d5b635601
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
Morph
2e4b0fa68c
common/cpu_detect: Remove CPU family and model
...
We currently do not make use of these fields, remove them for now.
2021-12-13 20:45:18 -05:00
Morph
875db1012b
native_clock: Wait for less time in EstimateRDTSCFrequency
...
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-03 19:55:59 -05:00
Morph
2b9afa4d56
general: Replace high_resolution_clock with steady_clock
...
On some OSes, high_resolution_clock is an alias to system_clock and is not monotonic in nature. Replace this with steady_clock.
2021-12-02 14:20:43 -05:00
Merry
891e19ef4c
xbyak: Update include path
2021-08-15 19:26:38 +01:00
bunnei
e6f71e15a1
common: Merge uint128 to a single header file with inlines.
2021-02-15 14:46:04 -08:00
Fernando Sahmkow
659fb51dd9
X86/NativeClock: Reimplement RTDSC access to be lock free.
2021-01-02 04:00:27 +01:00
Fernando Sahmkow
50dd9a423a
X86/NativeClock: Improve performance of clock calculations on hot path.
2021-01-02 00:43:47 +01:00
Lioncash
50516223e3
xbyak_abi: Shorten std::size_t to size_t
...
Makes for less reading.
2020-12-05 00:43:55 -05:00
Lioncash
65a52ab81a
xbyak_abi: Avoid implicit sign conversions
2020-12-05 00:43:41 -05:00
Lioncash
29db886722
audio_core: Make shadowing and unused parameters errors
...
Moves the audio code closer to enabling warnings as errors in general.
2020-12-03 00:54:31 -05:00
Lioncash
38ffaef6eb
common: Enable warnings as errors
...
Cleans up common so that we can enable warnings as errors.
2020-11-02 15:50:58 -05:00
ReinUsesLisp
a66d8bb49d
common/wall_clock: Add virtual destructors
...
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-30 02:53:34 -03:00
Lioncash
1233d14175
externals: Update Xbyak to 5.96
...
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-30 05:09:48 -04:00
Fernando Sahmkow
94a51e6b21
Core/Common: Address Feedback.
2020-06-27 18:20:06 -04:00
Fernando Sahmkow
74c9ad1976
Common/NativeClockx86: Reduce native clock accuracy further.
2020-06-27 11:36:18 -04:00
Fernando Sahmkow
1cc7c426df
X64 Clock: Reduce accuracy to be less or equal to guest accuracy.
2020-06-27 11:35:55 -04:00
Fernando Sahmkow
fb1d75a788
HostTiming: Pause the hardware clock on pause.
2020-06-27 11:35:10 -04:00
David
a83f0b607e
Merge pull request #3396 from FernandoS27/prometheus-1
...
Implement SpinLocks, Fibers and a Host Timer
2020-06-28 01:34:07 +10:00
Morph
d0a762a6a8
common/cpu_detect: Add AVX512 detection
2020-06-20 00:31:37 -04:00
Fernando Sahmkow
0c789667d9
Common: Refactor & Document Wall clock.
2020-06-18 16:29:18 -04:00
Fernando Sahmkow
ee32067b10
Common: Implement WallClock Interface and implement a native clock for x64
2020-06-18 16:29:17 -04:00
MerryMage
f0054fb284
xbyak_abi: Prefer returning a struct to using out parameters in ABI_CalculateFrameSize
2020-06-15 19:07:11 +01:00
MerryMage
10e9220ec6
xbyak_abi: Register indexes should be unsigned
2020-06-15 19:07:11 +01:00
MerryMage
f60ab4ab14
xbyak_abi: Remove *GPS variants of stack manipulation functions
2020-06-15 18:59:54 +01:00
MerryMage
c1f6eaf06b
xbyak_abi: Fix ABI_PushRegistersAndAdjustStack
...
Pushing GPRs twice.
2020-06-15 18:59:01 +01:00
David Marcec
4686c15c03
Add xbyak external
2020-05-30 10:55:27 +10:00
James Rowe
afd360f85d
Remove unused CPU Vendor string and telemtry field
...
The information is duplicated in the brand string and the telemetry field is unused
2020-01-17 18:41:18 -07:00
Lioncash
7a14d90f97
common: Remove dependency on xbyak
...
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 03:43:41 -05:00
fearlessTobi
1190ea6ddb
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-15 15:21:06 +02:00
Lioncash
c0f2f8a840
common/xbyak_abi: Mark defined functions in header as inline
...
Avoids potential One Definition Rule violations when these are used in
the future.
2018-08-14 18:29:56 -04:00
Lioncash
9b5b9205a5
common/xbyak: Use nested namespace specifiers where applicable
2018-08-14 18:27:27 -04:00
Lioncash
6b1e9244c0
common: Convert type traits templates over to variable template versions where applicable
...
Uses the C++17 inline variable variants
2018-08-07 19:34:47 -04:00
N00byKing
6b5f41b812
cpu_detect.cpp: Change comment from citra to yuzu
2018-03-26 21:43:39 +02:00
James Rowe
ea88c44eb8
Format: Run the new clang format on everything
2018-01-20 16:45:11 -07:00
Yuri Kunde Schlesner
8b55ffb74a
Common: Fix some out-of-style includes
2017-05-27 16:14:10 -07:00
Yuri Kunde Schlesner
bc3f65a0ee
common/cpu_detect: Add missing include and fix namespace scope
2017-03-12 21:55:15 -07:00
Weiyi Wang
6580180759
Common/x64: remove legacy emitter and abi ( #2504 )
...
These are not used any more since we moved shader JIT to xbyak.
2017-01-31 01:06:42 -08:00