aboutsummaryrefslogtreecommitdiff
path: root/src/core/core_timing.cpp
AgeCommit message (Collapse)Author
2023-03-27core_timing: Make use of MicroSleep for x64 CPUsMorph
For CPUs that support tpause, this should result in significant CPU power savings over thread yield in this spin wait.
2023-03-07core: Promote CPU/GPU threads to time criticalMorph
And also demote Audren and CoreTiming to High thread priority.
2023-03-05core_timing: Use higher precision sleeps on WindowsMorph
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.
2023-02-14remove static from pointer sized or smaller types for aesthetics, change ↵arades79
constexpr static to static constexpr for consistency Signed-off-by: arades79 <scravers@protonmail.com>
2023-02-14add static lifetime to constexpr values to force compile time evaluation ↵arades79
where possible Signed-off-by: arades79 <scravers@protonmail.com>
2023-01-14timing: wait for completion on unregisterLiam
2022-10-18core: core_timing: Re-initialize if single/multicore state changes.bunnei
2022-10-18core: Partially persist emulation state across game boots.bunnei
2022-10-08core_timing: use high-precision sleeps on non-Windows targetsLiam
2022-10-03common: remove "yuzu:" prefix from thread namesLiam
2022-09-17Merge pull request #8650 from Kelebek1/vsyncbunnei
[Coretiming/NVNFlinger] Improve multi-core vsync timing, and core timing accuracy
2022-09-13Remove pause callbacks from coretimingKelebek1
2022-08-02core_timing: Sleep in discrete intervals, yield during spinMorph
2022-08-02Add missing looping event schedule signalKelebek1
2022-08-02Make coretiming waiting more accurateKelebek1
2022-07-27Revert Coretiming PRs 8531 and 7454 (#8591)Maide
2022-07-10Rework CoreTimingKelebek1
2022-07-02Core timing: use only one thread.Fernando Sahmkow
2022-06-30Adress Feedback.Fernando Sahmkow
2022-06-28Address feedback.Fernando Sahmkow
2022-06-28Core: Protect each event from race conditions within it.Fernando Sahmkow
2022-06-28Core/Common: Corrections to core timing and add critical priority.Fernando Sahmkow
2022-06-28Core: Reimplement Core Timing.Fernando Sahmkow
2022-04-23general: Convert source file copyright comments over to SPDXMorph
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.
2021-05-03core: Resolve misc cases of variable shadowingLioncash
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).
2021-01-11core: hle: Add missing calls to MicroProfileOnThreadExit.bunnei
2020-10-20Revert "core: Fix clang build"bunnei
2020-10-17core: Fix clang buildLioncash
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-08-22core_timing: Remove unused headerLioncash
2020-08-22core_timing: Move clock initializer into constructor initializer listLioncash
Same behavior, minus unnecessary zeroing out of the pointer.
2020-08-22core_timing: Resolve sign conversion warningLioncash
This constant is only ever assigned to downcount, which is a s64, not a u64.
2020-07-27core_timing: Make use of uintptr_t to represent user_dataLioncash
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.
2020-07-15core_timing: Make TimedCallback take std::chrono::nanosecondsLioncash
Enforces our desired time units directly with a concrete type.
2020-07-15core_timing: Make use of std::chrono with ScheduleEventLioncash
2020-06-28core_timing,scheduler: Use std::scoped_lock when possibleReinUsesLisp
Simplifies the cognitive load of procedures using locks and makes locks safe against exceptions.
2020-06-27Core/Common: Address Feedback.Fernando Sahmkow
2020-06-27CoreTiming: Correct rebase bugs and other miscellaneous things.Fernando Sahmkow
2020-06-27General: Tune the priority of main emulation threads so they have higher ↵Fernando Sahmkow
priority than less important helper threads.
2020-06-27CoreTiming/CycleTimer: Correct Idling.Fernando Sahmkow
2020-06-27SingleCore: Use Cycle Timing instead of Host Timing.Fernando Sahmkow
2020-06-27SingleCore: Move Host Timing from a sepparate thread to main cpu thread.Fernando Sahmkow
2020-06-27General: Fix Stop functionFernando Sahmkow
2020-06-27Kernel: Corrections to Scheduling.Fernando Sahmkow
2020-06-27HostTiming: Pause the hardware clock on pause.Fernando Sahmkow
2020-06-27General: Setup yuzu threads' microprofile, naming and registry.Fernando Sahmkow
2020-06-27General: Recover Prometheus project from harddrive failure Fernando Sahmkow
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.
2020-02-11Core: Set all hardware emulation constants in a single file.Fernando Sahmkow
2019-11-26core_timing: Use better reference tracking for EventType. (#3159)bunnei
* 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.
2019-10-12Core_Timing: Address Remaining feedback.Fernando Sahmkow
2019-10-11Core_Timing: Address Feedback and suppress warnings.Fernando Sahmkow