Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | (wall, native)_clock: Add GetGPUTick | Morph | 2023-06-08 | 2 | -1/+9 |
| | | | | Allows us to directly calculate the GPU tick without double conversion to and from the host clock tick. | ||||
* | (wall, native)_clock: Rework NativeClock | Morph | 2023-06-08 | 2 | -181/+40 |
| | |||||
* | x64: Deduplicate RDTSC usage | Morph | 2023-06-08 | 4 | -19/+80 |
| | |||||
* | x64: Simplify RDTSC on non-MSVC compilers | Morph | 2023-03-27 | 2 | -16/+10 |
| | | | | Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com> | ||||
* | x64: Add MicroSleep | Morph | 2023-03-27 | 2 | -0/+82 |
| | | | | | | | MicroSleep allows the processor to pause for a "short" amount of time (in the microsecond range). This is useful for spin-waiting that does not require nanosecond precision. This uses the new TPAUSE instruction introduced on Intel's newest processors as part of the waitpkg instructions. For CPUs that do not support waitpkg instructions, this is equivalent to yield(). Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com> | ||||
* | x64: cpu_detect: Add detection of waitpkg instructions | Morph | 2023-03-27 | 2 | -0/+2 |
| | | | | waitpkg introduces 3 instructions, UMONITOR, UMWAIT and TPAUSE. | ||||
* | native_clock: Wait for 10 seconds instead of 30 | Morph | 2023-03-08 | 1 | -3/+3 |
| | | | | It was experimentally determined to be sufficient. | ||||
* | native_clock: Use RealTimeClock instead of SteadyClock | Morph | 2023-03-08 | 1 | -4/+4 |
| | | | | We want to synchronize RDTSC to real time. | ||||
* | native_clock: Re-adjust the RDTSC frequency | Morph | 2023-03-08 | 2 | -5/+34 |
| | | | | | The RDTSC frequency reported by CPUID is not accurate to its true frequency. We will spawn a separate thread to calculate the true RDTSC frequency after a measurement period of 30 seconds has elapsed. | ||||
* | native_clock: Round RDTSC frequency to the nearest 1000 | Morph | 2023-03-05 | 1 | -5/+12 |
| | |||||
* | Add CPU core count to log files | Matías Locatti | 2022-11-12 | 2 | -3/+60 |
| | |||||
* | Revert Coretiming PRs 8531 and 7454 (#8591) | Maide | 2022-07-28 | 1 | -1/+1 |
| | |||||
* | chore: make yuzu REUSE compliant | Andrea Pappacoda | 2022-07-27 | 2 | -6/+4 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254 | ||||
* | guard against div-by-zero | Marshall Mohror | 2022-07-06 | 1 | -2/+5 |
| | |||||
* | common/x64: Use TSC clock rate from CPUID when available | Marshall Mohror | 2022-07-06 | 2 | -0/+18 |
| | | | | The current method used to estimate the TSC is fairly accurate - within a few kHz - but the exact value can be extracted from CPUID if available. | ||||
* | Adress Feedback. | Fernando Sahmkow | 2022-06-30 | 1 | -1/+0 |
| | |||||
* | Native clock: Use atomic ops as before. | Fernando Sahmkow | 2022-06-28 | 2 | -24/+29 |
| | |||||
* | Native Clock: remove inaccuracy mask. | Fernando Sahmkow | 2022-06-28 | 2 | -6/+1 |
| | |||||
* | Core: Fix tests. | Fernando Sahmkow | 2022-06-28 | 1 | -0/+1 |
| | |||||
* | Common: improve native clock. | Fernando Sahmkow | 2022-06-28 | 2 | -29/+24 |
| | |||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 4 | -10/+10 |
| | | | | | 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. | ||||
* | native_clock: Internal linkage for FencedRDTSC | Merry | 2022-04-03 | 1 | -2/+4 |
| | | | | __forceinline required on MSVC for function to be inlined | ||||
* | native_clock: Use lfence with rdtsc | merry | 2022-04-03 | 1 | -14/+33 |
| | |||||
* | native_clock: Use writeback from CAS to avoid double-loading | merry | 2022-04-02 | 1 | -4/+6 |
| | |||||
* | native_clock: Use AtomicLoad128 | Merry | 2022-04-02 | 1 | -2/+2 |
| | |||||
* | common: Reduce unused includes | ameerj | 2022-03-19 | 3 | -5/+0 |
| | |||||
* | cpu_detect: Add additional x86 flags and telemetry | Wunkolo | 2022-03-11 | 2 | -11/+40 |
| | | | | | | | | | | | 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. | ||||
* | cpu_detect: Revert `__cpuid{ex}` array-type argument | Wunkolo | 2022-03-10 | 1 | -6/+6 |
| | | | | Restores compatibility with MSVC's `__cpuid` intrinsic. | ||||
* | cpu_detect: Add missing `lzcnt` detection | Wunkolo | 2022-03-09 | 1 | -0/+1 |
| | |||||
* | cpu_detect: Refactor cpu/manufacturer identification | Wunkolo | 2022-03-09 | 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(!) | ||||
* | cpu_detect: Update array-types to `span` and `array` | Wunkolo | 2022-03-09 | 1 | -11/+13 |
| | | | | Update some uses of `int` into some more explicitly sized types as well | ||||
* | cpu_detect: Utilize `Bit<N>` utility function | Wunkolo | 2022-03-09 | 1 | -32/+20 |
| | |||||
* | cpu_detect: Compact capability fields | Wunkolo | 2022-03-09 | 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. | ||||
* | common: wall_clock: Utilize constants for ms, us, and ns ratios | Morph | 2022-01-30 | 1 | -3/+3 |
| | |||||
* | common/xbyak_api: Make BuildRegSet() constexpr | Lioncash | 2022-01-26 | 1 | -8/+8 |
| | | | | | This allows us to eliminate any static constructors that would have been emitted due to the function not being constexpr. | ||||
* | common/cpu_detect: Remove CPU family and model | Morph | 2021-12-14 | 1 | -12/+0 |
| | | | | We currently do not make use of these fields, remove them for now. | ||||
* | native_clock: Wait for less time in EstimateRDTSCFrequency | Morph | 2021-12-04 | 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. | ||||
* | general: Replace high_resolution_clock with steady_clock | Morph | 2021-12-02 | 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. | ||||
* | xbyak: Update include path | Merry | 2021-08-15 | 2 | -2/+2 |
| | |||||
* | common: Merge uint128 to a single header file with inlines. | bunnei | 2021-02-15 | 1 | -58/+0 |
| | |||||
* | X86/NativeClock: Reimplement RTDSC access to be lock free. | Fernando Sahmkow | 2021-01-02 | 2 | -22/+41 |
| | |||||
* | X86/NativeClock: Improve performance of clock calculations on hot path. | Fernando Sahmkow | 2021-01-02 | 2 | -5/+71 |
| | |||||
* | xbyak_abi: Shorten std::size_t to size_t | Lioncash | 2020-12-05 | 1 | -8/+8 |
| | | | | Makes for less reading. | ||||
* | xbyak_abi: Avoid implicit sign conversions | Lioncash | 2020-12-05 | 1 | -2/+2 |
| | |||||
* | audio_core: Make shadowing and unused parameters errors | Lioncash | 2020-12-03 | 2 | -5/+6 |
| | | | | Moves the audio code closer to enabling warnings as errors in general. | ||||
* | common: Enable warnings as errors | Lioncash | 2020-11-02 | 1 | -1/+1 |
| | | | | Cleans up common so that we can enable warnings as errors. | ||||
* | common/wall_clock: Add virtual destructors | ReinUsesLisp | 2020-09-30 | 1 | -1/+1 |
| | | | | | | | | 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. | ||||
* | externals: Update Xbyak to 5.96 | Lioncash | 2020-08-30 | 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. | ||||
* | Core/Common: Address Feedback. | Fernando Sahmkow | 2020-06-28 | 1 | -2/+2 |
| | |||||
* | Common/NativeClockx86: Reduce native clock accuracy further. | Fernando Sahmkow | 2020-06-27 | 1 | -1/+1 |
| | |||||
* | X64 Clock: Reduce accuracy to be less or equal to guest accuracy. | Fernando Sahmkow | 2020-06-27 | 2 | -1/+7 |
| | |||||
* | HostTiming: Pause the hardware clock on pause. | Fernando Sahmkow | 2020-06-27 | 2 | -0/+9 |
| | |||||
* | Merge pull request #3396 from FernandoS27/prometheus-1 | David | 2020-06-27 | 4 | -0/+181 |
|\ | | | | | Implement SpinLocks, Fibers and a Host Timer | ||||
| * | Common: Refactor & Document Wall clock. | Fernando Sahmkow | 2020-06-18 | 1 | -40/+7 |
| | | |||||
| * | Common: Implement WallClock Interface and implement a native clock for x64 | Fernando Sahmkow | 2020-06-18 | 4 | -0/+214 |
| | | |||||
* | | common/cpu_detect: Add AVX512 detection | Morph | 2020-06-20 | 2 | -0/+6 |
|/ | |||||
* | xbyak_abi: Prefer returning a struct to using out parameters in ABI_CalculateFrameSize | MerryMage | 2020-06-15 | 1 | -17/+19 |
| | |||||
* | xbyak_abi: Register indexes should be unsigned | MerryMage | 2020-06-15 | 1 | -11/+12 |
| | |||||
* | xbyak_abi: Remove *GPS variants of stack manipulation functions | MerryMage | 2020-06-15 | 1 | -36/+0 |
| | |||||
* | xbyak_abi: Fix ABI_PushRegistersAndAdjustStack | MerryMage | 2020-06-15 | 1 | -6/+2 |
| | | | | Pushing GPRs twice. | ||||
* | Add xbyak external | David Marcec | 2020-05-30 | 2 | -0/+313 |
| | |||||
* | Remove unused CPU Vendor string and telemtry field | James Rowe | 2020-01-18 | 2 | -99/+0 |
| | | | | The information is duplicated in the brand string and the telemetry field is unused | ||||
* | common: Remove dependency on xbyak | Lioncash | 2018-11-21 | 2 | -269/+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). | ||||
* | Port #4182 from Citra: "Prefix all size_t with std::" | fearlessTobi | 2018-09-15 | 2 | -10/+13 |
| | |||||
* | common/xbyak_abi: Mark defined functions in header as inline | Lioncash | 2018-08-15 | 1 | -7/+7 |
| | | | | | Avoids potential One Definition Rule violations when these are used in the future. | ||||
* | common/xbyak: Use nested namespace specifiers where applicable | Lioncash | 2018-08-15 | 2 | -8/+4 |
| | |||||
* | common: Convert type traits templates over to variable template versions where applicable | Lioncash | 2018-08-08 | 1 | -1/+1 |
| | | | | Uses the C++17 inline variable variants | ||||
* | cpu_detect.cpp: Change comment from citra to yuzu | N00byKing | 2018-03-26 | 1 | -1/+1 |
| | |||||
* | Format: Run the new clang format on everything | James Rowe | 2018-01-21 | 1 | -13/+56 |
| | |||||
* | Common: Fix some out-of-style includes | Yuri Kunde Schlesner | 2017-05-28 | 1 | -1/+1 |
| | |||||
* | common/cpu_detect: Add missing include and fix namespace scope | Yuri Kunde Schlesner | 2017-03-13 | 1 | -5/+7 |
| | |||||
* | Common/x64: remove legacy emitter and abi (#2504) | Weiyi Wang | 2017-01-31 | 4 | -4197/+0 |
| | | | These are not used any more since we moved shader JIT to xbyak. | ||||
* | VideoCore: Convert x64 shader JIT to use Xbyak for assembly | Yuri Kunde Schlesner | 2016-12-15 | 2 | -0/+227 |
| | |||||
* | common: use system CPUID routine on DragonFly as well | Jan Beich | 2016-10-28 | 1 | -2/+2 |
| | |||||
* | common: some FreeBSD headers are incomplete to avoid namespace pollution | Jan Beich | 2016-10-28 | 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; ^ [...] | ||||
* | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 2016-09-21 | 2 | -3/+3 |
| | |||||
* | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 2016-09-21 | 3 | -9/+4 |
| | | | | | | | This makes clang-format useful on those. Also add a bunch of forgotten transitive includes, which otherwise prevented compilation. | ||||
* | Manually tweak source formatting and then re-run clang-format | Yuri Kunde Schlesner | 2016-09-19 | 2 | -5/+3 |
| | |||||
* | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 2016-09-18 | 5 | -1354/+2093 |
| | |||||
* | VideoCore: Run include-what-you-use and fix most includes. | Emmanuel Gil Peyrot | 2016-04-30 | 1 | -0/+2 |
| | |||||
* | emitter: Add CALL that can be fixed up. | bunnei | 2016-04-14 | 2 | -0/+13 |
| | |||||
* | emitter: Support arbitrary FixupBranch targets. | bunnei | 2016-04-14 | 2 | -0/+17 |
| | |||||
* | emitter: templatize ImmPtr | Lioncash | 2016-03-09 | 1 | -2/+6 |
| | |||||
* | emitter: constexpr-ify helper functions | Lioncash | 2016-03-09 | 1 | -19/+17 |
| | |||||
* | emitter: Get rid of CanDoOpWith | Lioncash | 2016-03-09 | 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. | ||||
* | emitter: constexpr-ify OpArg | Lioncash | 2016-03-09 | 1 | -30/+30 |
| | |||||
* | emitter: friend class OpArg with XEmitter | Lioncash | 2016-03-09 | 1 | -3/+4 |
| | |||||
* | emitter: Remove unimplemented prototype | Lioncash | 2016-03-09 | 1 | -1/+0 |
| | |||||
* | x64 Emitter: Fix L bit in VEX prefix | MerryMage | 2016-02-27 | 1 | -2/+2 |
| | |||||
* | x64: Proper stack alignment in shader JIT function calls | aroulin | 2015-09-01 | 3 | -424/+90 |
| | | | | | Import Dolphin stack handling and register saving routines Also removes the x86 parts from abi files | ||||
* | x64-emitter: add RCPSS SSE instruction | aroulin | 2015-08-23 | 2 | -0/+2 |
| | |||||
* | emitter: Remove pointer casts | Lioncash | 2015-08-21 | 2 | -4/+27 |
| | | | | This should also technically silence quite a few ubsan warnings. | ||||
* | emitter: Remove unnecessary defines | Lioncash | 2015-08-20 | 1 | -5/+1 |
| | |||||
* | emitter: Remove unnecessary else keywords | Lioncash | 2015-08-20 | 1 | -7/+7 |
| | |||||
* | emitter: Remove unused code | Lioncash | 2015-08-20 | 2 | -44/+0 |
| | |||||
* | emitter: Remove unimplemented JMP prototype | Lioncash | 2015-08-20 | 1 | -1/+0 |
| | |||||
* | emitter: Pass OpArg by reference where possible | Lioncash | 2015-08-20 | 2 | -763/+763 |
| | |||||
* | emitter: Remove unnecessary inline specifiers | Lioncash | 2015-08-20 | 1 | -33/+33 |
| | | | | Functions implemented in a class definition are already implicitly inline. | ||||
* | Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64. | bunnei | 2015-08-16 | 4 | -7/+7 |
| | |||||
* | Common: Cleanup CPU capability detection code. | bunnei | 2015-08-16 | 4 | -198/+141 |
| | |||||
* | Common: Move cpu_detect to x64 directory. | bunnei | 2015-08-16 | 3 | -1/+311 |
| | |||||
* | x64: Refactor to remove fake interfaces and general cleanups. | bunnei | 2015-08-16 | 4 | -0/+3814 |