Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | core_timing: Fix SingleCore cycle timer | Morph | 2023-06-08 | 1 | -17/+9 |
| | |||||
* | (wall, native)_clock: Add GetGPUTick | Morph | 2023-06-08 | 1 | -0/+7 |
| | | | | Allows us to directly calculate the GPU tick without double conversion to and from the host clock tick. | ||||
* | core_timing: Use CNTPCT as the guest CPU tick | Morph | 2023-06-08 | 1 | -27/+8 |
| | | | | | Previously, we were mixing the raw CPU frequency and CNTFRQ. The raw CPU frequency (1020 MHz) should've never been used as CNTPCT (whose frequency is CNTFRQ) is the only counter available. | ||||
* | core_timing: Make use of MicroSleep for x64 CPUs | Morph | 2023-03-27 | 1 | -0/+8 |
| | | | | For CPUs that support tpause, this should result in significant CPU power savings over thread yield in this spin wait. | ||||
* | core: Promote CPU/GPU threads to time critical | Morph | 2023-03-08 | 1 | -1/+1 |
| | | | | And also demote Audren and CoreTiming to High thread priority. | ||||
* | core_timing: Use higher precision sleeps on Windows | Morph | 2023-03-05 | 1 | -22/+33 |
| | | | | | | The precision of sleep_for and wait_for is limited to 1-1.5ms on Windows. Using SleepForOneTick() allows us to sleep for exactly one interval of the current timer resolution. This allows us to take advantage of systems that have a timer resolution of 0.5ms to reduce CPU overhead in the event loop. | ||||
* | remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistency | arades79 | 2023-02-14 | 1 | -1/+1 |
| | | | | Signed-off-by: arades79 <scravers@protonmail.com> | ||||
* | add static lifetime to constexpr values to force compile time evaluation where possible | arades79 | 2023-02-14 | 1 | -1/+1 |
| | | | | Signed-off-by: arades79 <scravers@protonmail.com> | ||||
* | timing: wait for completion on unregister | Liam | 2023-01-14 | 1 | -24/+18 |
| | |||||
* | core: core_timing: Re-initialize if single/multicore state changes. | bunnei | 2022-10-19 | 1 | -9/+14 |
| | |||||
* | core: Partially persist emulation state across game boots. | bunnei | 2022-10-19 | 1 | -16/+13 |
| | |||||
* | core_timing: use high-precision sleeps on non-Windows targets | Liam | 2022-10-09 | 1 | -0/+4 |
| | |||||
* | common: remove "yuzu:" prefix from thread names | Liam | 2022-10-04 | 1 | -1/+1 |
| | |||||
* | Merge pull request #8650 from Kelebek1/vsync | bunnei | 2022-09-17 | 1 | -16/+37 |
|\ | | | | | [Coretiming/NVNFlinger] Improve multi-core vsync timing, and core timing accuracy | ||||
| * | core_timing: Sleep in discrete intervals, yield during spin | Morph | 2022-08-02 | 1 | -12/+13 |
| | | |||||
| * | Add missing looping event schedule signal | Kelebek1 | 2022-08-02 | 1 | -5/+9 |
| | | |||||
| * | Make coretiming waiting more accurate | Kelebek1 | 2022-08-02 | 1 | -11/+27 |
| | | |||||
* | | Remove pause callbacks from coretiming | Kelebek1 | 2022-09-13 | 1 | -14/+0 |
|/ | |||||
* | Revert Coretiming PRs 8531 and 7454 (#8591) | Maide | 2022-07-28 | 1 | -95/+56 |
| | |||||
* | Rework CoreTiming | Kelebek1 | 2022-07-10 | 1 | -8/+67 |
| | |||||
* | Core timing: use only one thread. | Fernando Sahmkow | 2022-07-02 | 1 | -10/+2 |
| | |||||
* | Adress Feedback. | Fernando Sahmkow | 2022-06-30 | 1 | -17/+26 |
| | |||||
* | Address feedback. | Fernando Sahmkow | 2022-06-28 | 1 | -13/+13 |
| | |||||
* | Core: Protect each event from race conditions within it. | Fernando Sahmkow | 2022-06-28 | 1 | -0/+1 |
| | |||||
* | Core/Common: Corrections to core timing and add critical priority. | Fernando Sahmkow | 2022-06-28 | 1 | -1/+1 |
| | |||||
* | Core: Reimplement Core Timing. | Fernando Sahmkow | 2022-06-28 | 1 | -44/+82 |
| | |||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 1 | -3/+2 |
| | | | | | 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. | ||||
* | core: Resolve misc cases of variable shadowing | Lioncash | 2021-05-03 | 1 | -2/+2 |
| | | | | | | | | | Resolves shadowing warnings that aren't in a particularly large subsection of core. Brings us closer to turning -Wshadow into an error. All that remains now is for cases in the kernel (left untouched for now since a big change by bunnei is pending), and a few left over in the service code (will be tackled next). | ||||
* | core: hle: Add missing calls to MicroProfileOnThreadExit. | bunnei | 2021-01-11 | 1 | -0/+1 |
| | |||||
* | Revert "core: Fix clang build" | bunnei | 2020-10-21 | 1 | -7/+6 |
| | |||||
* | core: Fix clang build | Lioncash | 2020-10-18 | 1 | -6/+7 |
| | | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795 | ||||
* | core_timing: Remove unused header | Lioncash | 2020-08-23 | 1 | -1/+1 |
| | |||||
* | core_timing: Move clock initializer into constructor initializer list | Lioncash | 2020-08-23 | 1 | -4/+2 |
| | | | | Same behavior, minus unnecessary zeroing out of the pointer. | ||||
* | core_timing: Resolve sign conversion warning | Lioncash | 2020-08-23 | 1 | -2/+2 |
| | | | | | This constant is only ever assigned to downcount, which is a s64, not a u64. | ||||
* | core_timing: Make use of uintptr_t to represent user_data | Lioncash | 2020-07-28 | 1 | -7/+9 |
| | | | | Makes the interface future-proofed for supporting other platforms in the event we ever support platforms with differing pointer sizes. This way, we have a type in place that is always guaranteed to be able to represent a pointer exactly. | ||||
* | core_timing: Make TimedCallback take std::chrono::nanoseconds | Lioncash | 2020-07-16 | 1 | -3/+4 |
| | | | | Enforces our desired time units directly with a concrete type. | ||||
* | core_timing: Make use of std::chrono with ScheduleEvent | Lioncash | 2020-07-16 | 1 | -4/+4 |
| | |||||
* | core_timing,scheduler: Use std::scoped_lock when possible | ReinUsesLisp | 2020-06-29 | 1 | -4/+2 |
| | | | | | Simplifies the cognitive load of procedures using locks and makes locks safe against exceptions. | ||||
* | Core/Common: Address Feedback. | Fernando Sahmkow | 2020-06-28 | 1 | -16/+12 |
| | |||||
* | CoreTiming: Correct rebase bugs and other miscellaneous things. | Fernando Sahmkow | 2020-06-27 | 1 | -0/+2 |
| | |||||
* | General: Tune the priority of main emulation threads so they have higher priority than less important helper threads. | Fernando Sahmkow | 2020-06-27 | 1 | -0/+1 |
| | |||||
* | CoreTiming/CycleTimer: Correct Idling. | Fernando Sahmkow | 2020-06-27 | 1 | -2/+5 |
| | |||||
* | SingleCore: Use Cycle Timing instead of Host Timing. | Fernando Sahmkow | 2020-06-27 | 1 | -8/+33 |
| | |||||
* | SingleCore: Move Host Timing from a sepparate thread to main cpu thread. | Fernando Sahmkow | 2020-06-27 | 1 | -7/+13 |
| | |||||
* | General: Fix Stop function | Fernando Sahmkow | 2020-06-27 | 1 | -0/+1 |
| | |||||
* | Kernel: Corrections to Scheduling. | Fernando Sahmkow | 2020-06-27 | 1 | -4/+7 |
| | |||||
* | HostTiming: Pause the hardware clock on pause. | Fernando Sahmkow | 2020-06-27 | 1 | -0/+6 |
| | |||||
* | General: Setup yuzu threads' microprofile, naming and registry. | Fernando Sahmkow | 2020-06-27 | 1 | -2/+3 |
| | |||||
* | General: Recover Prometheus project from harddrive failure | Fernando Sahmkow | 2020-06-27 | 1 | -112/+96 |
| | | | | | | | 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. | ||||
* | Core: Set all hardware emulation constants in a single file. | Fernando Sahmkow | 2020-02-12 | 1 | -1/+2 |
| | |||||
* | core_timing: Use better reference tracking for EventType. (#3159) | bunnei | 2019-11-27 | 1 | -31/+22 |
| | | | | | | | * core_timing: Use better reference tracking for EventType. - Moves ownership of the event to the caller, ensuring we don't fire events for destroyed objects. - Removes need for unique names - we won't be using this for save states anyways. | ||||
* | Core_Timing: Address Remaining feedback. | Fernando Sahmkow | 2019-10-12 | 1 | -5/+4 |
| | |||||
* | Core_Timing: Address Feedback and suppress warnings. | Fernando Sahmkow | 2019-10-11 | 1 | -8/+7 |
| | |||||
* | Core Timing: Correct Idle and remove lefting pragma | Fernando Sahmkow | 2019-10-09 | 1 | -2/+1 |
| | |||||
* | Core Timing: General corrections and added tests. | Fernando Sahmkow | 2019-10-09 | 1 | -4/+11 |
| | |||||
* | Core Timing: Rework Core Timing to run all cores evenly. | Fernando Sahmkow | 2019-10-09 | 1 | -16/+50 |
| | |||||
* | Core_Timing: Make core_timing threadsafe by default. | Fernando Sahmkow | 2019-06-16 | 1 | -27/+7 |
| | | | | | | The old implementation had faulty Threadsafe methods where events could be missing. This implementation unifies unsafe/safe methods and makes core timing thread safe overall. | ||||
* | core/core_timing: Make callback parameters consistent | Lioncash | 2019-03-24 | 1 | -1/+1 |
| | | | | | | | | | | | In some cases, our callbacks were using s64 as a parameter, and in other cases, they were using an int, which is inconsistent. To make all callbacks consistent, we can just use an s64 as the type for late cycles, given it gets rid of the need to cast internally. While we're at it, also resolve some signed/unsigned conversions that were occurring related to the callback registration. | ||||
* | core_timing: Convert core timing into a class | Lioncash | 2019-02-16 | 1 | -109/+80 |
| | | | | | | | | | | | Gets rid of the largest set of mutable global state within the core. This also paves a way for eliminating usages of GetInstance() on the System class as a follow-up. Note that no behavioral changes have been made, and this simply extracts the functionality into a class. This also has the benefit of making dependencies on the core timing functionality explicit within the relevant interfaces. | ||||
* | Merge pull request #2115 from lioncash/local | bunnei | 2019-02-14 | 1 | -3/+3 |
|\ | | | | | core_timing: Make EmptyTimedCallback a local variable | ||||
| * | core_timing: Make EmptyTimedCallback a local variable | Lioncash | 2019-02-13 | 1 | -3/+3 |
| | | | | | | | | | | Given this is only used in one place, it can be moved closest to its usage site. | ||||
* | | threadsafe_queue: Remove NeedSize template parameter | Lioncash | 2019-02-13 | 1 | -2/+2 |
|/ | | | | | | 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. | ||||
* | core_timing: Rename CoreTiming namespace to Core::Timing | Lioncash | 2019-02-12 | 1 | -2/+2 |
| | | | | | | Places all of the timing-related functionality under the existing Core namespace to keep things consistent, rather than having the timing utilities sitting in its own completely separate namespace. | ||||
* | Core::CoreTiming: add UnscheduleEventThreadsafe | B3n30 | 2018-08-13 | 1 | -0/+10 |
| | |||||
* | Kernel/Thread: Always use the threadsafe option when scheduling wakeups. | Subv | 2018-08-13 | 1 | -2/+0 |
| | | | | | | WakeAfterDelay might be called from any host thread, so err on the side of caution and use the thread-safe CoreTiming::ScheduleEventThreadsafe. Note that CoreTiming is still far from thread-safe, there may be more things we have to work on for it to be up to par with what we want. | ||||
* | Merge pull request #934 from lioncash/chrono | bunnei | 2018-08-07 | 1 | -2/+2 |
|\ | | | | | core_timing: Make GetGlobalTimeUs() return std::chrono::microseconds | ||||
| * | core_timing: Make GetGlobalTimeUs() return std::chrono::microseconds | Lioncash | 2018-08-06 | 1 | -2/+2 |
| | | | | | | | | | | Enforces the time unit being returned and also allows using the standard time utilities to manipulate it. | ||||
* | | core_timing: Use transparent functors where applicable | Lioncash | 2018-08-06 | 1 | -5/+5 |
|/ | | | | | | Gets rid of the need to hardcode the type in multiple places. This will now be deduced automatically, based off the elements in the container being provided to the algorithm. | ||||
* | core_timing: Split off utility functions into core_timing_util | MerryMage | 2018-07-24 | 1 | -52/+1 |
| | |||||
* | Rename logging macro back to LOG_* | James Rowe | 2018-07-03 | 1 | -8/+8 |
| | |||||
* | core_timing: Don't include the log header in core timing's header | Lioncash | 2018-05-03 | 1 | -1/+51 |
| | | | | | Avoids propagating logging macros and facilities to files that may not need them. This also allows hiding an internal constant. | ||||
* | general: Convert assertion macros over to be fmt-compatible | Lioncash | 2018-04-27 | 1 | -1/+1 |
| | |||||
* | Fixes some cast warnings, partial port of citra #3064 (#106) | River City Ransomware | 2018-01-20 | 1 | -2/+2 |
| | | | | | | | | * Fixes some cast warnings, partially fixes citra #3064 * Converted casts to uint32_t to u32 * Ran clang-format | ||||
* | CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119) | B3n30 | 2018-01-09 | 1 | -467/+143 |
| | | | | * CoreTiming: New CoreTiming; Add Test for CoreTiming | ||||
* | core_timing: Increase clock speed for Switch docked. | bunnei | 2018-01-07 | 1 | -1/+1 |
| | |||||
* | Moved down_count to CoreTiming | Huw Pascoe | 2017-09-30 | 1 | -13/+23 |
| | |||||
* | CoreTiming: use named constant for ARM11 clock rate | wwylele | 2017-01-16 | 1 | -1/+1 |
| | |||||
* | core: Replace "AppCore" nomenclature with just "CPU". | bunnei | 2016-12-22 | 1 | -13/+13 |
| | |||||
* | core: Consolidate core and system state, remove system module & cleanups. | bunnei | 2016-12-22 | 1 | -14/+13 |
| | |||||
* | Use negative priorities to avoid special-casing the self-include | Yuri Kunde Schlesner | 2016-09-21 | 1 | -1/+1 |
| | |||||
* | Remove empty newlines in #include blocks. | Emmanuel Gil Peyrot | 2016-09-21 | 1 | -3/+1 |
| | | | | | | | 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 | 1 | -4/+2 |
| | |||||
* | Sources: Run clang-format on everything. | Emmanuel Gil Peyrot | 2016-09-18 | 1 | -19/+16 |
| | |||||
* | general: Silence some warnings when using clang | Lioncash | 2015-09-16 | 1 | -1/+2 |
| | |||||
* | general: Replace 0 literals with nullptr where applicable | Lioncash | 2015-09-12 | 1 | -1/+1 |
| | |||||
* | Core : Fix Conversion Warnings | zawata | 2015-07-19 | 1 | -1/+1 |
| | |||||
* | Core: Cleanup core includes. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -2/+1 |
| | |||||
* | Common: Fix FileUtil includes, and everything relying on those. | Emmanuel Gil Peyrot | 2015-06-28 | 1 | -0/+1 |
| | |||||
* | Remove every trailing whitespace from the project (but externals). | Emmanuel Gil Peyrot | 2015-05-29 | 1 | -1/+1 |
| | |||||
* | CoreTiming: Initialize static variables at bootup. | bunnei | 2015-05-02 | 1 | -0/+10 |
| | |||||
* | Remove the useless msg_handler compilation unit that was left over from Dolphin | archshift | 2015-02-19 | 1 | -2/+2 |
| | |||||
* | core/video_core: Use in-place construction where possible | Lioncash | 2015-02-17 | 1 | -1/+1 |
| | |||||
* | Merge pull request #529 from Subv/master | bunnei | 2015-02-14 | 1 | -5/+5 |
|\ | | | | | Build: Fixed some warnings | ||||
| * | Build: Fixed some warnings | Subv | 2015-02-12 | 1 | -5/+5 |
| | | |||||
* | | core: Apply static to local functions | Lioncash | 2015-02-13 | 1 | -7/+7 |
|/ | |||||
* | Asserts: break/crash program, fit to style guide; log.h->assert.h | archshift | 2015-02-11 | 1 | -1/+1 |
| | | | | | | | 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. | ||||
* | core_timing: Mark several variables as static | Lioncash | 2015-01-20 | 1 | -14/+14 |
| | | | | These are only used in this translation unit. | ||||
* | Move ThreadContext to core/core.h and deal with the fallout | Yuri Kunde Schlesner | 2015-01-09 | 1 | -0/+2 |
| | |||||
* | CoreTiming: Ported the CoreTiming namespace from PPSSPP | Subv | 2015-01-07 | 1 | -394/+315 |
| | | | | | | Implemented the required calls to make it work. CoreTiming: Added a new logging class Core_Timing. | ||||
* | License change | purpasmart96 | 2014-12-21 | 1 | -2/+2 |
| | |||||
* | Convert old logging calls to new logging macros | Yuri Kunde Schlesner | 2014-12-13 | 1 | -4/+4 |
| | |||||
* | Change NULLs to nullptrs. | Rohit Nirmal | 2014-12-03 | 1 | -6/+6 |
| | |||||
* | Remove tabs in all files except in skyeye imports and in generated GL code | Emmanuel Gil Peyrot | 2014-11-19 | 1 | -24/+24 |
| | |||||
* | Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated | Emmanuel Gil Peyrot | 2014-11-19 | 1 | -2/+2 |
| | |||||
* | Core: Replace a sprintf in core_timing with StringFromFormat | Lioncash | 2014-09-13 | 1 | -5/+7 |
| | |||||
* | Removed common/std_xyz, instead using the std header | archshift | 2014-09-07 | 1 | -1/+1 |
| | |||||
* | Removed common/atomic, instead using std::atomic | archshift | 2014-09-03 | 1 | -4/+4 |
| | |||||
* | fixed project includes to use new directory structure | bunnei | 2014-04-09 | 1 | -6/+7 |
| | |||||
* | got rid of 'src' folders in each sub-project | bunnei | 2014-04-09 | 1 | -0/+623 |